You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sm...@apache.org on 2014/03/18 01:12:17 UTC

svn commit: r1578677 - in /mahout/trunk: CHANGELOG core/src/main/java/org/apache/mahout/clustering/classify/ClusterClassifier.java

Author: smarthi
Date: Tue Mar 18 00:12:16 2014
New Revision: 1578677

URL: http://svn.apache.org/r1578677
Log:
MAHOUT-1467:ClusterClassifier readPolicy leaks file handles

Modified:
    mahout/trunk/CHANGELOG
    mahout/trunk/core/src/main/java/org/apache/mahout/clustering/classify/ClusterClassifier.java

Modified: mahout/trunk/CHANGELOG
URL: http://svn.apache.org/viewvc/mahout/trunk/CHANGELOG?rev=1578677&r1=1578676&r2=1578677&view=diff
==============================================================================
--- mahout/trunk/CHANGELOG (original)
+++ mahout/trunk/CHANGELOG Tue Mar 18 00:12:16 2014
@@ -2,6 +2,8 @@ Mahout Change Log
 
 Release 1.0 - unreleased
 
+  MAHOUT-1467: ClusterClassifier readPolicy leaks file handles (Avi Shinnar, smarthi)
+
   MAHOUT-1466: Cluster visualization fails to execute (ssc)
   
   MAHOUT-1465: Clean up README (akm)

Modified: mahout/trunk/core/src/main/java/org/apache/mahout/clustering/classify/ClusterClassifier.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/classify/ClusterClassifier.java?rev=1578677&r1=1578676&r2=1578677&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/clustering/classify/ClusterClassifier.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/clustering/classify/ClusterClassifier.java Tue Mar 18 00:12:16 2014
@@ -55,7 +55,7 @@ import com.google.common.io.Closeables;
  * causes all the models to computeParameters.
  * 
  * Because a ClusterClassifier implements Writable, it can be written-to and
- * read-from a sequence file as a single entity. For sequential and mapreduce
+ * read-from a sequence file as a single entity. For sequential and MapReduce
  * clustering in conjunction with a ClusterIterator; however, it utilizes an
  * exploded file format. In this format, the iterator writes the policy to a
  * single POLICY_FILE_NAME file in the clustersOut directory and the models are
@@ -86,7 +86,7 @@ public class ClusterClassifier extends A
     this.policy = policy;
   }
   
-  // needed for serialization/deserialization
+  // needed for serialization/De-serialization
   public ClusterClassifier() {}
   
   // only used by MR ClusterIterator
@@ -224,6 +224,7 @@ public class ClusterClassifier extends A
     Text key = new Text();
     ClusteringPolicyWritable cpw = new ClusteringPolicyWritable();
     reader.next(key, cpw);
+    Closeables.close(reader, true);
     return cpw.getValue();
   }
   
@@ -234,6 +235,6 @@ public class ClusterClassifier extends A
     SequenceFile.Writer writer = new SequenceFile.Writer(fs, config, policyPath, Text.class,
         ClusteringPolicyWritable.class);
     writer.append(new Text(), new ClusteringPolicyWritable(policy));
-    writer.close();
+    Closeables.close(writer, false);
   }
 }