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

Reply via email to