Possible resource leak in FilePoller
------------------------------------

                 Key: SM-1012
                 URL: https://issues.apache.org/activemq/browse/SM-1012
             Project: ServiceMix
          Issue Type: Bug
          Components: servicemix-file
    Affects Versions: 3.1.1
         Environment: Windows XP, JDK 5.0
            Reporter: Artur Karazniewicz
            Priority: Minor


In the org.apache.servicemix.components.file.FilePoller#processFile(File) it is 
possible that allocated file would leak. Now, it goes like:

  protected void processFile(File aFile) throws Exception {
        String name = aFile.getCanonicalPath();
        InputStream in = new BufferedInputStream(new FileInputStream(aFile));
        InOnly exchange = getExchangeFactory().createInOnlyExchange();
        NormalizedMessage message = exchange.createMessage();
        exchange.setInMessage(message);
        marshaler.readMessage(exchange, message, in, name);
        getDeliveryChannel().sendSync(exchange);
        in.close();
    }

But, we should properly clean-up in the case of exception thrown before 
in.close(). Thus, should be:

  protected void processFile(File aFile) throws Exception {
                InputStream in = null;
                try {
                        String name = aFile.getCanonicalPath();
                        in = new BufferedInputStream(new 
FileInputStream(aFile));
                        InOnly exchange = 
getExchangeFactory().createInOnlyExchange();
                        NormalizedMessage message = exchange.createMessage();
                        exchange.setInMessage(message);
                        marshaler.readMessage(exchange, message, in, name);
                        getDeliveryChannel().sendSync(exchange);
                } 
                finally {
                        if (in != null) {
                                in.close();
                        }
                }
    }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to