Hello All (Niklas, John).

Firstly I would like to thank you for your ongoing help.


I have taken John's advise and implemented my own
FTPFileSystemFactory, View and file.

I have implemented my FtpFile createInputStream to read the data from
the database and return a new ByteArrayOutputStream containing the
byte[] data read from the database.

This has not solved the problem, BUT it has allowed me to view a stack
trace which might be helpful in diagnosing the problem. See stack
trace and some wire shark trace as well.  From looking at this and the
code, it would appear that something has set the inputstream inside
the BufferedInputStream to null.

-- STACK TRACE --
11:21:23,515 WARN  [IODataConnection] Exception during data transfer,
closing data connection socket
java.io.IOException: Stream closed
        at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:134)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
        at java.io.FilterInputStream.read(FilterInputStream.java:90)
        at 
org.apache.ftpserver.impl.IODataConnection.transfer(IODataConnection.java:243)
        at 
org.apache.ftpserver.impl.IODataConnection.transferToClient(IODataConnection.java:161)
        at org.apache.ftpserver.command.impl.RETR.execute(RETR.java:166)
        at 
org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:210)
        at 
org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:61)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:721)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
        at 
org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:136)
        at 
org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:375)
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:229)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
        at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:801)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:793)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:735)
        at java.lang.Thread.run(Thread.java:595)
11:21:23,609 INFO  [FtpLoggingFilter] SENT: 150 File status okay;
about to open data connection.

11:21:23,609 INFO  [FtpLoggingFilter] SENT: 551 <FILENAME>: Error on input file.


--- WIRESHARK ----
TYPE I
200 Command TYPE okay.
CWD
250 Ok
PASV
227 Entering Passive Mode (10,20,0,111,17,163)
RETR <FILENAME>
150 File status okay; about to open data connection.
551 <FILENAME>: Error on input file.

Reply via email to