[ https://issues.apache.org/activemq/browse/SM-1012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39798 ]
Guillaume Nodet commented on SM-1012: ------------------------------------- URL: http://svn.apache.org/viewvc?view=rev&rev=561005 > 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.