[ 
https://issues.apache.org/jira/browse/HADOOP-7425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13064633#comment-13064633
 ] 

steven zhuang commented on HADOOP-7425:
---------------------------------------

hi Sudharsan, 
    I think the KeyFieldHelper has done its job, it is the setConf method of 
ReflectionUtils makes the partitioner configured twice.
    I wonder why the logic in ReflectionUtils.setConf first call setConf() then 
call configure() on the same object? can we write it as:


      if (theObject instanceof Configurable) {

        ((Configurable) theObject).setConf(conf);

      }
      else { 
        
        setJobConf(theObject, conf);

      }    
can we do this?


> ReflectionUtils.setConf would configure anything Configurable twice
> -------------------------------------------------------------------
>
>                 Key: HADOOP-7425
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7425
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: util
>    Affects Versions: 0.21.0, 0.23.0
>            Reporter: steven zhuang
>         Attachments: test.tar
>
>
> In  the setConf method of org.apache.hadoop.util.ReflectionUtils, any 
> instance of Configurable would be configured twice.
> In 0.21.0, KeyFieldBasedPartitioner implements the Configurable interface. 
> When configured twice, it get two KeyDescription and gives out wrong 
> partition number. 
> public static void setConf(Object theObject, Configuration conf) {
>     if (conf != null) {
>       if (theObject instanceof Configurable) {
>         ((Configurable) theObject).setConf(conf);
>       }
>       setJobConf(theObject, conf);
>     }
>   }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to