2012-06-12 129 views
0

通過更改兩個域模型的包解決了上面的錯誤,我已經發布在我的早期鏈接 Apache camel processing two csv files simultaneously阿帕奇駱駝同時讀取兩個.csv文件

但是,它給出了另一個錯誤並回滾了兩個.csv文件的處理。 這兩個.csv文件都有兩個處理交換的獨立處理器。

ERROR: [#|2012-06-12T10:23:54.651+1000|SEVERE|glassfish3.0.1|org.apache.camel.processor.DefaultErrorHandler|_ThreadID=35;_ThreadName=Thread-1;|Failed delivery for (MessageId: ID-GEPC7848-52123-1339460612530-0-651 on ExchangeId: ID-GEPC7848-52123-1339460612530-0-658). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException

+0

抓住:java.lang.NullPointerException。 我會調試這個,並通過處理器,看看有什麼不對。當然,它可能是別的。你有任何線程依賴?共享變量?你可以發佈代碼嗎? –

+0

我調試了這個問題。問題是當第二個文件在綁定中得到處理時(BindyCsvFactory.java類中列出令牌,Map model,int line)方法,模型映射同時具有模型model1和model2,因此當第二個文件文件正在處理的代碼行field.set(modelField,value)它將它設置爲兩個模型,而不是隻有一個。但是,該字段應根據代碼映射到只有一個數據格式模型。如何修復這個? –

+0

問題是,有一個單線程處理兩個文件,所以它會導致問題。我將它分成兩個不同的線程,並希望這將工作。因爲BindyCsvDataFormat方法應該以同步方式執行任何其他數據格式類將被執行。 –

回答

0

Nullpointer異常總是一個錯誤的候選人。你可以用DEBUG日誌來試試這個,並檢查你是否得到一個完整的堆棧跟蹤?如果你可以用堆棧跟蹤和描述如何在駱駝吉拉中重現這個問題,可以創建一個jira問題,這將是非常好的。