[
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.