I modified my route to look like below: from("file:C:\\Users\\joe\\Desktop\\csv?noop=true").setHeader("isBuToPf", simple("true")). unmarshal().csv().process(new RefDataProcessor()).to("direct:Process");
from("file:C:\\Users\\joe\\Desktop\\csv2?noop=true").setHeader("isBuToPf", simple("true")). unmarshal().csv().process(new RefDataProcessor()).to("direct:Process"); from("direct:Process").aggregate(header("isBuToPf"), new RefDataAggregationStrategy()).completionTimeout(3000).to("direct:Processed"); Now I get a NullPointerException in my aggregator. My aggregator looks like: @Override public Exchange aggregate(Exchange exchange, Exchange exchange2) { final StringBuilder sb = new StringBuilder(); final Map < String, List < String > > buToPf = exchange.getIn().getBody(Map.class); // NullPointer here... final Map < String, List < String > > pfToUser = exchange2.getIn().getBody(Map.class); for (Map.Entry < String, List < String > > entry : buToPf.entrySet()) { for (String pf : entry.getValue()) { List < String > userList = pfToUser.get(pf); for (String user : userList) { sb.append(entry.getKey() + "," + pf + "," + user + "GO"); } } } System.out.println(sb); exchange.getIn().setBody(sb); return exchange; } What I do in my RefDataProcessor.java is the following: @Override public void process(Exchange exchange) throws Exception { final Map < String, List < String > > buToPfMap = new HashMap < String, List < String > > (); final List < List < String > > data = (List < List < String > > ) exchange.getIn().getBody(); for (List < String > line : data) { putToMap(line.get(0), line.get(1), buToPfMap); } System.out.println(buToPfMap); exchange.getIn().setBody(buToPfMap); } Why is there nothing in exchange? -- View this message in context: http://camel.465427.n5.nabble.com/Camel-Aggregator-Strategy-Question-tp5729337p5729555.html Sent from the Camel - Users mailing list archive at Nabble.com.