[ https://issues.apache.org/jira/browse/HADOOP-6512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12805203#action_12805203 ]
Owen O'Malley commented on HADOOP-6512: --------------------------------------- I agree with Todd too. Like the java.util Container classes, it is better for the calling context to enforce the proper level of locking. > Complex Writable classes are not thread safe > -------------------------------------------- > > Key: HADOOP-6512 > URL: https://issues.apache.org/jira/browse/HADOOP-6512 > Project: Hadoop Common > Issue Type: Bug > Components: io > Affects Versions: 0.20.1 > Environment: hadoop 20.1, java 1.6.0_17, fedora > Reporter: robert Cook > > While SequenceFile methods are properly "synchronized", the complex Writable > classes are not thread safe. > e.g. ArrayWritable, interleaved in... calls by different threads will > scramble input > public void readFields(DataInput in) throws IOException { > values = new Writable[in.readInt()]; // construct values > for (int i = 0; i < values.length; i++) { > Writable value = WritableFactories.newInstance(valueClass); > value.readFields(in); // read a value > values[i] = value; // store it in values > } > } > Please add synchronized prefixes. Not needed for simple types. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.