[ https://issues.apache.org/jira/browse/HADOOP-4416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12642436#action_12642436 ]
Steve Loughran commented on HADOOP-4416: ---------------------------------------- Looking at the patch, 1. You need tests of the default handling. The get operations are all calling .trim() before checking for the result being null; as a result they will probably NPE rather than return defaults e.g, what happens on conf.getLong("undefined-key",23); public long getLong(String name, long defaultValue) { - String valueString = get(name); + String valueString = get(name).trim(); if (valueString == null) return defaultValue; 2. I'd recommend the trim operation is made a (protected?) method in Configuration protected String trim(String source) { return source==null?source:source.trim(); } One place to keep the logic, one test for null handling might suffice 3. the {{.toLowerCase()}} operation for getBoolean should be made locale neutral, by adding a locale parameter: {{toLowerCase(Locale.EN_US)}} 4. Also, getBoolean shouldn't do any toLowerCase() operations on null values. 5. The changes to getBoolean() change the semantics of the operation. Currently bool b=conf.getBoolean("something",false"); returns false if "something" is set to "TRUE" in the file. With the case change, it will evaluate to true. I don't know if this matters, but it isn't completely backwards compatible. > class names in Configuration are not resolved if the configuration value has > a white space > ------------------------------------------------------------------------------------------- > > Key: HADOOP-4416 > URL: https://issues.apache.org/jira/browse/HADOOP-4416 > Project: Hadoop Core > Issue Type: Bug > Environment: all > Reporter: Alejandro Abdelnur > Assignee: Abhijit Bagri > Attachments: HADOOP-4416-v2.patch, HADOOP-4416.patch > > > If an entry in the configuration used for a class contains spaces or enters > before or after the {{getClass}} and {{getClasses}} methods fail to resolve > the class. > For example: > {code} > <property> > <name>mapred.mapper.class</name> > <value> > com.foo.MyMapper > </value> > </property> > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.