[
https://issues.apache.org/activemq/browse/SM-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jean-Baptiste Onofré resolved SM-1809.
--------------------------------------
Resolution: Fixed
I have reviewed and commited your patch on the servicemix-file trunk. It will
be included in the next 2009.01 components release.
> NullPointerException when somebody uses external marshaller which will throw
> some exception
> -------------------------------------------------------------------------------------------
>
> Key: SM-1809
> URL: https://issues.apache.org/activemq/browse/SM-1809
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-file
> Affects Versions: 3.3
> Reporter: Arkadiusz Burdach
> Assignee: Jean-Baptiste Onofré
> Attachments: nullPointerInSdrEndpoint.diff
>
>
> Stack:
> java.lang.NullPointerException
> at
> org.apache.servicemix.file.FileSenderEndpoint.processInOnly(FileSenderEndpoint.java:98)
> at
> org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:102)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> This is piece of code from SenderEndpoint:
> try {
> String name = marshaler.getOutputName(exchange, in);
> if (name == null) {
> newFile = File.createTempFile(tempFilePrefix, tempFileSuffix,
> directory);
> } else {
> newFile = new File(directory, name);
> }
> (...)
> } finally {
> if (out != null) {
> try {
> out.close();
> } catch (IOException e) {
> logger.error("Caught exception while closing stream on
> error: " + e, e);
> }
> }
> //cleaning up incomplete files after things went wrong
> if (!success) {
> logger.debug("An error occurred while writing file " +
> newFile.getCanonicalPath() + ", deleting the invalid file");
> if (!newFile.delete()) {
> logger.warn("Unable to delete the file " +
> newFile.getCanonicalPath() + " after an error had occurred");
> }
> }
> How you can see, if there is exception in getOutputName() or in
> File.createTempFile(), which is very possible, user will see only NullPointer
> in logs caused by this line (Exception will not be rethrowed):
> logger.debug("An error occurred while writing file " +
> newFile.getCanonicalPath() + ", deleting the invalid file");
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.