KB Article #178080

java.lang.NullPointerException: key attribute value not set

Problem

Error log messages written for "key attribute value not set" during data absorption.

Example

Failed delivery for (MessageId: ID-worldbank-65386-1469962968737-38-1039 on ExchangeId: ID-worldbank-65386-1469962968737-38-1040). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException: key attribute value not set

Message History

---------------------------------------------------------------------------------------------------------------------------------------

RouteId ProcessorId Processor Elapsed (ms)

[route1 ] [route1 ] [file://C:/ADI/FlightControl/FlightDetails ] [ 63]

[route1 ] [setBody1 ] [setBody[{

}] ] [ 0]

[route1 ] [to1 ] [tnd-absorption:Load_FlightDetails ] [ 0]

Exchange

---------------------------------------------------------------------------------------------------------------------------------------

Exchange[

Id ID-worldbank-65386-1469962968737-38-1040

ExchangePattern InOnly

Headers {breadcrumbId=ID-worldbank-65386-1469962968737-38-969, CamelFileAbsolute=true, CamelFileAbsolutePath=C:\ADI\FlightControl\FlightDetails\FlightDetails.csv, CamelFileContentType=null, CamelFileLastModified=1471040312479, CamelFileLength=1262, CamelFileName=FlightDetails.csv, CamelFileNameConsumed=FlightDetails.csv, CamelFileNameOnly=FlightDetails.csv, CamelFileParent=C:\ADI\FlightControl\FlightDetails, CamelFilePath=C:\ADI\FlightControl\FlightDetails\FlightDetails.csv, CamelFileRelativePath=FlightDetails.csv, CamelRedelivered=false, CamelRedeliveryCounter=0}

BodyType java.util.HashMap

Body {=1758, Destination=Phoenix, Origination=Chicago}

]

Stacktrace

---------------------------------------------------------------------------------------------------------------------------------------

java.lang.NullPointerException: key attribute value not set

at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:228)

at com.systar.calcium.impl.absorption.request.InstanceKeyImpl.addKeyAttributeValue(InstanceKeyImpl.java:83)

at com.systar.aluminium.connector.impl.mapping.execution.KeyAttributeValue.apply(KeyAttributeValue.java:30)

at com.systar.aluminium.connector.impl.mapping.execution.ResolveByKey.apply(ResolveByKey.java:49)

at com.systar.aluminium.connector.impl.mapping.execution.InstanceOperation.apply(InstanceOperation.java:50)

at com.systar.aluminium.connector.impl.mapping.execution.MappingRequestBuilderImpl.apply(MappingRequestBuilderImpl.java:55)

at com.systar.aluminium.engine.impl.component.absorption.AbsorptionDefinition.apply(AbsorptionDefinition.java:32)

at com.systar.aluminium.engine.impl.component.absorption.AbsorptionProducer.processSingleExchange(AbsorptionProducer.java:89)

at com.systar.aluminium.engine.impl.component.absorption.AbsorptionProducer.process(AbsorptionProducer.java:70)

at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)

at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)

at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)

at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)

at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)

at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)

at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)

at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:668)

at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:596)

at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:237)

at org.apache.camel.processor.Splitter.process(Splitter.java:104)

at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)

at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)

at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)

at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)

at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:442)

at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:214)

at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:178)

at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)

at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)


Resolution

1. Check your route for any blank fields like example below.

<u:map-entry key="">

2. Check the Input data headers against your field names in the Route. Some times there might be a blank or space that will read wrong.

3. The other possibility be that wrong file or wrong file type or wrong file column might could also cause the same error. For example, in the route you might be looking for csv file but you would have supplied the data as xlsx file.