From: Richa Khurana
Sent: Wednesday, February 10, 2010 3:56 PM
To: 'users@servicemix.apache.org'
Subject: Unable to port file poller component to Fuse ESB 3.4

Hi,

 

I have a file poller which polls for PDF and TIFF Files. These files once polled are marshaled using CustomFileMarshaler extending from BinaryFileMarshaller which has the following overridden APIs-

 

 

    @Override public void readMessage(MessageExchange messageExchange, NormalizedMessage normalizedMessage,

        InputStream inputStream, String path) throws IOException, JBIException {

 

        try {

            super.readMessage(messageExchange, normalizedMessage, inputStream, path);

 

            String tempFilePathFull = storeUploadedFileInFS(normalizedMessage, path,

                    path.substring(path.lastIndexOf(".")));

            normalizedMessage.setContent(new StringSource(

                    UtilConstants.FILE_POLLER_CUSTOM_TAG_START + tempFilePathFull +

                    UtilConstants.FILE_POLLER_CUSTOM_TAG_END));

        } catch (IOException exception) {

            exception.printStackTrace();

            throw exception;

        }

    }

 

storeUploadedFileInFS(.. creates temp copy of the file being polled)

This works completely fine with SMX3.2.x but fails once ported to FuseESB3.4 throwing the below stack trace. Kindly help.

 

WARN  - FileComponent                  - Message in file C:\inbox\Cred_Appr_BCA1.pdf could not be handled successfully: java.io.IOException:

 Stream closed

org.apache.servicemix.soap.api.Fault: java.io.IOException: Stream closed

        at org.apache.servicemix.soap.interceptors.mime.AttachmentsOutInterceptor.handleMessage(AttachmentsOutInterceptor.java:71)

        at org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85)

        at org.apache.servicemix.jms.endpoints.DefaultProviderMarshaler.createMessage(DefaultProviderMarshaler.java:79)

        at org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnlyInSession(JmsProviderEndpoint.java:561)

        at org.apache.servicemix.jms.endpoints.JmsProviderEndpoint$1.doInJms(JmsProviderEndpoint.java:531)

        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)

        at org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOnly(JmsProviderEndpoint.java:542)

        at org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.process(JmsProviderEndpoint.java:499)

        at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)

        at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)

        at org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)

        at org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)

        at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)

        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:886)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

        at java.lang.Thread.run(Thread.java:619)

Caused by: java.io.IOException: Stream closed

        at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)

        at java.io.BufferedInputStream.read(BufferedInputStream.java:308)

        at java.io.FilterInputStream.read(FilterInputStream.java:90)

        at javax.activation.DataHandler.writeTo(DataHandler.java:293)

        at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350)

        at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:845)

        at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:361)

        at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:85)

        at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:869)

        at javax.activation.DataHandler.writeTo(DataHandler.java:302)

        at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350)

        at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683)

        at org.apache.servicemix.soap.interceptors.mime.AttachmentsOutInterceptor.writeMultipartMessage(AttachmentsOutInterceptor.java:130)

        at org.apache.servicemix.soap.interceptors.mime.AttachmentsOutInterceptor.handleMessage(AttachmentsOutInterceptor.java:67)

 

Richa Khurana| Associate Consultant - Engineering| GlobalLogic Inc.
USA | INDIA | UKRAINE | CHINA
Office: +91.120.406.2681 

www.globallogic.com
InfoWorld Award Winner for Agile Innovation


Disclaimer: http://www.globallogic.com/email_disclaimer.txt