[ https://issues.apache.org/jira/browse/PIG-2645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13509101#comment-13509101 ]
Alex Levenson commented on PIG-2645: ------------------------------------ Style nitpicks: Don't use a javadoc, use a regular comment Comment probably not even needed No need for the else clause How about: {code} if (s == null) { throw new IllegalArgumentException("Could not find serializer for class " + wrappedSplits[0].getClass() + ". InputSplits should implement Writable."); } s.open((OutputStream) os); for (int i = 0; i < wrappedSplits.length; i++) {code} > PigSplit does not handle the case where SerializationFactory returns null > ------------------------------------------------------------------------- > > Key: PIG-2645 > URL: https://issues.apache.org/jira/browse/PIG-2645 > Project: Pig > Issue Type: Bug > Components: impl > Affects Versions: 0.10.0 > Reporter: Alex Levenson > Labels: patch > Attachments: PIG-2645.patch > > > In PigSplit.java, line 254: > {code} > SerializationFactory sf = new SerializationFactory(conf); > Serializer s = sf.getSerializer(wrappedSplits[0].getClass()); > s.open((OutputStream) os); > {code} > sf.getSerializer returns null when it cannot find a serializer for a given > object. Instead of handling this properly, a NPE is thrown when s.open() is > called. > This is easy to encounter when creating a custom InputSplit from the > mapreduce package which is an abstract class that DOES NOT implement Writable. > However it's easy to miss because InputSplit from the mapred package is an > interface that extends Writable, and InputSplits often both extend and > implement both the new and old InputSplit abstract class and interface > (thereby becoming Writable). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira