Buggy code:
public class MeanShiftCanopyDriver extends AbstractJob { private static final Logger log = LoggerFactory . getLogger ( MeanShiftCanopyDriver . class ) ; public static final String INPUT_IS_CANOPIES_OPTION = "inputIsCanopies" ; public static final String STATE_IN_KEY = "org.apache.mahout.clustering.meanshift.stateInKey" ; private static final String CONTROL_CONVERGED = "control//converged" ; public static void main ( String [ ] args ) throws Exception { } @ Override public int run ( String [ ] args ) throws Exception { } public void run ( Configuration conf , Path input , Path output , DistanceMeasure measure , double t1 , double t2 , double convergenceDelta , int maxIterations , boolean inputIsCanopies , boolean runClustering , boolean runSequential ) throws IOException , ClassNotFoundException , InterruptedException { } public static void createCanopyFromVectors ( Configuration conf , Path input , Path output , DistanceMeasure measure , boolean runSequential ) throws IOException , ClassNotFoundException , InterruptedException { } private static void createCanopyFromVectorsSeq ( Path input , Path output , DistanceMeasure measure ) throws IOException { Configuration conf = new Configuration ( ) ; FileSystem fs = FileSystem . get ( input . toUri ( ) , conf ) ; FileStatus [ ] status = fs . listStatus ( input , PathFilters . logsCRCFilter ( ) ) ; int part = 0 ; int id = 0 ; for ( FileStatus s : status ) { SequenceFile . Writer writer = new SequenceFile . Writer ( fs , conf , new Path ( output , ( "part-m-" + ( part ++ ) ) ) , Text . class , MeanShiftCanopy . class ) ; try { for ( VectorWritable value : new org . apache . mahout . common . iterator . sequencefile . SequenceFileValueIterable < VectorWritable > ( s . getPath ( ) , conf ) ) { <START_BUG> writer . append ( new Text ( ) , new MeanShiftCanopy ( value . get ( ) , ( id ++ ) , measure ) ) ; <END_BUG> } } finally { writer . close ( ) ; } } } private static void createCanopyFromVectorsMR ( Configuration conf , Path input , Path output , DistanceMeasure measure ) throws IOException , ClassNotFoundException , InterruptedException { } public Path buildClusters ( Configuration conf , Path clustersIn , Path output , DistanceMeasure measure , double t1 , double t2 , double convergenceDelta , int maxIterations , boolean runSequential ) throws IOException , ClassNotFoundException , InterruptedException { } private static Path buildClustersSeq ( Path clustersIn , Path output , DistanceMeasure measure , double t1 , double t2 , double convergenceDelta , int maxIterations ) throws IOException { } private static Path buildClustersMR ( Configuration conf , Path clustersIn , Path output , DistanceMeasure measure , double t1 , double t2 , double convergenceDelta , int maxIterations ) throws IOException , ClassNotFoundException , InterruptedException { } private static void runIterationMR ( Configuration conf , Path input , Path output , Path control , String measureClassName , double t1 , double t2 , double convergenceDelta ) throws IOException , ClassNotFoundException , InterruptedException { } public static void clusterData ( Path input , Path clustersIn , Path output , boolean runSequential ) throws IOException , ClassNotFoundException , InterruptedException { } private static void clusterDataSeq ( Path input , Path clustersIn , Path output ) throws IOException { } private static void clusterDataMR ( Path input , Path clustersIn , Path output ) throws IOException , ClassNotFoundException , InterruptedException { } }

Fix:
writer . append ( new Text ( ) , MeanShiftCanopy . initialCanopy ( value . get ( ) , ( id ++ ) , measure ) ) ;