I'm wondering if the problem comes from our use of commons-vfs.
I recently discovered that commons-vfs has a per thread cache of
streams and this may be the cause of the failure.
Could you try changing your flow to st (just add the flowName="st"
attribute to the xml config for the container)
and let me know what happens ?
Guillaume
Pavan Kumar wrote:
Hi,
I was trying to use the vfs File Poller component along with vfs
FileWriter component from
ServiceMix2.0.2 binary and I also tried these components from
ServiceMix-2.1-SANPSHOT
as I have seen some of the bugs in FilePoller component were fixed
in this version.
The problem I am facing is with the FileWriter component. When there
is only one file in the
polling directory the process of getting the file and writing it to
the destination directory is
going on fine, but when there are a bunch of files (say 10 or 15), the
FileWriter component
is not able to write correctly and it is throwing exceptions.
Can somebody help me on this. The exception stack trace is attached
with this mail.
Thanks in advance,
Pavan Kumar
------------------------------------------------------------------------
INFO - DeliveryChannelImpl.createExchangeFactory(165) | default destination
serviceName for filePoller = {http://servicemix.org/demo/}receiver
INFO - DeliveryChannelImpl.createExchangeFactory(165) | default destination
serviceName for filePoller = {http://servicemix.org/demo/}receiver
INFO - DeliveryChannelImpl.createExchangeFactory(165) | default destination
serviceName for filePoller = {http://servicemix.org/demo/}receiver
INFO - DeliveryChannelImpl.createExchangeFactory(165) | default destination
serviceName for filePoller = {http://servicemix.org/demo/}receiver
INFO - DeliveryChannelImpl.createExchangeFactory(165) | default destination
serviceName for filePoller = {http://servicemix.org/demo/}receiver
INFO - DeliveryChannelImpl.createExchangeFactory(165) | default destination
serviceName for filePoller = {http://servicemix.org/demo/}receiver
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
ERROR - FileWriter.process(142) | Caught exception while closing stream on error:
org.apache.commons.vfs.FileSystemException: Could not close the output stream for file
"ftp://mysys:[EMAIL
PROTECTED]/home/mysys/teststore/mododhl/testdir/sample_555-3483.xml".
org.apache.commons.vfs.FileSystemException: Could not close the output stream for file
"ftp://mysys:[EMAIL
PROTECTED]/home/mysys/teststore/mododhl/testdir/sample_555-3483.xml".
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:504)
at org.servicemix.components.vfs.FileWriter.process(FileWriter.java:139)
at
org.servicemix.components.util.OutBinding.onMessageExchange(OutBinding.java:51)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:590)
at
org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:182)
at org.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:140)
at org.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:124)
at org.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:289)
at
org.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:590)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:349)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:423)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:400)
at
org.servicemix.components.vfs.FilePoller.processFile(FilePoller.java:187)
at
org.servicemix.components.vfs.FilePoller.processFileAndDelete(FilePoller.java:158)
at org.servicemix.components.vfs.FilePoller$1.run(FilePoller.java:74)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.commons.vfs.FileSystemException: Could not close the output stream
for file "ftp://mysys:[EMAIL
PROTECTED]/home/mysys/teststore/mododhl/testdir/sample_555-3483.xml".
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.onClose(DefaultFileContent.java:519)
at
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:62)
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:500)
... 17 more
Caused by: java.lang.NullPointerException
at
org.apache.commons.net.SocketClient.getLocalAddress(SocketClient.java:442)
at
org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:475)
at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2390)
at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2364)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2090)
at
org.apache.commons.vfs.provider.ftp.FTPClientWrapper.listFiles(FTPClientWrapper.java:100)
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.doGetChildren(FtpFileObject.java:119)
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.getChildFile(FtpFileObject.java:88)
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.getInfo(FtpFileObject.java:164)
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.onChange(FtpFileObject.java:197)
at
org.apache.commons.vfs.provider.AbstractFileObject.handleCreate(AbstractFileObject.java:1253)
at
org.apache.commons.vfs.provider.AbstractFileObject.endOutput(AbstractFileObject.java:1227)
at
org.apache.commons.vfs.provider.DefaultFileContent.endOutput(DefaultFileContent.java:407)
at
org.apache.commons.vfs.provider.DefaultFileContent.access$300(DefaultFileContent.java:43)
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.onClose(DefaultFileContent.java:515)
... 19 more
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
ERROR - FilePoller.processFileAndDelete(166) | Failed to process file:
file:////home/svanamala/uday/softwares/servicemix-2.1-SNAPSHOT/examples/vfs-binding/samplefiles/sample_555-3489.xml.
Reason: java.lang.NullPointerException
java.lang.NullPointerException
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.FilterOutputStream.close(FilterOutputStream.java:140)
at
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:52)
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:500)
at org.servicemix.components.vfs.FileWriter.process(FileWriter.java:139)
at
org.servicemix.components.util.OutBinding.onMessageExchange(OutBinding.java:51)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:590)
at
org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:182)
at org.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:140)
at org.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:124)
at org.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:289)
at
org.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:590)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:349)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:423)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:400)
at
org.servicemix.components.vfs.FilePoller.processFile(FilePoller.java:187)
at
org.servicemix.components.vfs.FilePoller.processFileAndDelete(FilePoller.java:158)
at org.servicemix.components.vfs.FilePoller$1.run(FilePoller.java:74)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
ERROR - FilePoller.processFileAndDelete(166) | Failed to process file:
file:////home/svanamala/uday/softwares/servicemix-2.1-SNAPSHOT/examples/vfs-binding/samplefiles/sample_555-3485.xml.
Reason: java.lang.NullPointerException
java.lang.NullPointerException
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.FilterOutputStream.close(FilterOutputStream.java:140)
at
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:52)
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:500)
at org.servicemix.components.vfs.FileWriter.process(FileWriter.java:139)
at
org.servicemix.components.util.OutBinding.onMessageExchange(OutBinding.java:51)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:590)
at
org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:182)
at org.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:140)
at org.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:124)
at org.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:289)
at
org.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:590)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:349)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:423)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:400)
at
org.servicemix.components.vfs.FilePoller.processFile(FilePoller.java:187)
at
org.servicemix.components.vfs.FilePoller.processFileAndDelete(FilePoller.java:158)
at org.servicemix.components.vfs.FilePoller$1.run(FilePoller.java:74)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
ERROR - FileWriter.process(142) | Caught exception while closing stream on error:
org.apache.commons.vfs.FileSystemException: Could not close the output stream for file
"ftp://mysys:[EMAIL
PROTECTED]/home/mysys/teststore/mododhl/testdir/sample_555-3488.xml".
org.apache.commons.vfs.FileSystemException: Could not close the output stream for file
"ftp://mysys:[EMAIL
PROTECTED]/home/mysys/teststore/mododhl/testdir/sample_555-3488.xml".
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:504)
at org.servicemix.components.vfs.FileWriter.process(FileWriter.java:139)
at
org.servicemix.components.util.OutBinding.onMessageExchange(OutBinding.java:51)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:590)
at
org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:182)
at org.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:140)
at org.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:124)
at org.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:289)
at
org.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:590)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:349)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:423)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:400)
at
org.servicemix.components.vfs.FilePoller.processFile(FilePoller.java:187)
at
org.servicemix.components.vfs.FilePoller.processFileAndDelete(FilePoller.java:158)
at org.servicemix.components.vfs.FilePoller$1.run(FilePoller.java:74)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.commons.vfs.FileSystemException: Could not close the output stream
for file "ftp://mysys:[EMAIL
PROTECTED]/home/mysys/teststore/mododhl/testdir/sample_555-3488.xml".
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.onClose(DefaultFileContent.java:519)
at
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:62)
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:500)
... 17 more
Caused by: java.lang.NullPointerException
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.doGetChildren(FtpFileObject.java:119)
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.getChildFile(FtpFileObject.java:88)
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.getInfo(FtpFileObject.java:164)
at
org.apache.commons.vfs.provider.ftp.FtpFileObject.onChange(FtpFileObject.java:197)
at
org.apache.commons.vfs.provider.AbstractFileObject.handleCreate(AbstractFileObject.java:1253)
at
org.apache.commons.vfs.provider.AbstractFileObject.endOutput(AbstractFileObject.java:1227)
at
org.apache.commons.vfs.provider.DefaultFileContent.endOutput(DefaultFileContent.java:407)
at
org.apache.commons.vfs.provider.DefaultFileContent.access$300(DefaultFileContent.java:43)
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.onClose(DefaultFileContent.java:515)
... 19 more
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
ERROR - FilePoller.processFileAndDelete(166) | Failed to process file:
file:////home/svanamala/uday/softwares/servicemix-2.1-SNAPSHOT/examples/vfs-binding/samplefiles/sample_555-3484.xml.
Reason: java.lang.NullPointerException
java.lang.NullPointerException
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.FilterOutputStream.close(FilterOutputStream.java:140)
at
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:52)
at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:500)
at org.servicemix.components.vfs.FileWriter.process(FileWriter.java:139)
at
org.servicemix.components.util.OutBinding.onMessageExchange(OutBinding.java:51)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:590)
at
org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:182)
at org.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:140)
at org.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:124)
at org.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:289)
at
org.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:590)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:349)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:423)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:400)
at
org.servicemix.components.vfs.FilePoller.processFile(FilePoller.java:187)
at
org.servicemix.components.vfs.FilePoller.processFileAndDelete(FilePoller.java:158)
at org.servicemix.components.vfs.FilePoller$1.run(FilePoller.java:74)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
DEBUG - AutoDeploymentService.monitorDirectory(465) | Monitoring directory
/home/svanamala/uday/softwares/servicemix-2.1-SNAPSHOT/examples/vfs-binding/./rootDir/defaultJBI/install
for new or modified archives
DEBUG - AutoDeploymentService.monitorDirectory(465) | Monitoring directory
/home/svanamala/uday/softwares/servicemix-2.1-SNAPSHOT/examples/vfs-binding/./rootDir/defaultJBI/deploy
for new or modified archives
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - Broker.resolveAddress(373) | Routing exchange [EMAIL PROTECTED] to:
ServiceEndpoint[service={http://servicemix.org/demo/}receiver,endpoint=fileSender]
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AbstractFlow.send(117) | Called Flow send
DEBUG - AbstractFlow.doRouting(175) | Called Flow doRouting
DEBUG - AutoDeploymentService.monitorDirectory(465) | Monitoring directory
/home/svanamala/uday/softwares/servicemix-2.1-SNAPSHOT/examples/vfs-binding/./rootDir/defaultJBI/install
for new or modified archives
DEBUG - AutoDeploymentService.monitorDirectory(465) | Monitoring directory
/home/svanamala/uday/softwares/servicemix-2.1-SNAPSHOT/examples/vfs-binding/./rootDir/defaultJBI/deploy
for new or modified archives