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 setMessage 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.