hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gokul (JIRA)" <j...@apache.org>
Subject [jira] Created: (HADOOP-7090) Possible resource leaks in hadoop core code
Date Thu, 06 Jan 2011 06:20:48 GMT
Possible resource leaks in hadoop core code
-------------------------------------------

                 Key: HADOOP-7090
                 URL: https://issues.apache.org/jira/browse/HADOOP-7090
             Project: Hadoop Common
          Issue Type: Bug
    Affects Versions: 0.21.0
            Reporter: Gokul


It is always a good practice to close the IO streams in a finally block.. 

For example, look at the following piece of code in the Writer class of BloomMapFile 

{code:title=BloomMapFile .java|borderStyle=solid}
    public synchronized void close() throws IOException {
      super.close();
      DataOutputStream out = fs.create(new Path(dir, BLOOM_FILE_NAME), true);
      bloomFilter.write(out);
      out.flush();
      out.close();
    }
{code} 

If an exception occurs during fs.create or on any other line,  out.close() will not be executed..

The following can reduce the scope of resorce leaks..
{code:title=BloomMapFile .java|borderStyle=solid}
    public synchronized void close() throws IOException {
      super.close();
      DataOutputStream out = null;
      try{
          out = fs.create(new Path(dir, BLOOM_FILE_NAME), true);
          bloomFilter.write(out);
          out.flush();
      }finally{
	 IOUtils.closeStream(out);
    }
{code} 



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


Mime
View raw message