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

He Yongqiang commented on HADOOP-5596:
--------------------------------------

>> adding the type information to EnumSetWritable like the EnumSet 
>> implemention? like private Class<E> elementType;
Yeah, it will solve the problem. But the other problem is that users may does 
not know the elementType before deserialized it.

>>we don't really need EnumSetWritable. We may convert the EnumSet to an array 
>>and serialize the array in RPC
That is what i initally does in ObjectWritable. The i moved the code to 
EnumSetWritable. It is more clean now since ObjectWritable is a core class.

Btw,the only problem now is that we can not serialize a none enumset, is that 
not acceptable? even if we convert the EnumSet to an array and serialize it, we 
can not sovle the none enumset problem.

> Make ObjectWritable support EnumSet
> -----------------------------------
>
>                 Key: HADOOP-5596
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5596
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: io
>            Reporter: He Yongqiang
>            Assignee: He Yongqiang
>         Attachments: Hadoop-5596-2009-03-31.patch, 
> Hadoop-5596-2009-04-03.patch, Hadoop-5596-2009-04-15-2.patch, 
> Hadoop-5596-2009-04-15.patch, Hadoop-5596-2009-04-24.patch
>
>
> This is a demand for Hadoop-5438. 
> Also another small improvement is that i saw that in the beginning of 
> readObject, it tries to get the class from PRIMITIVE_NAMES and then conf. 
> Maybe it is better to add a direct load after them if the delaredClass is 
> still null. Like this:
> {code}
> String className = UTF8.readString(in);
>     Class<?> declaredClass = PRIMITIVE_NAMES.get(className);
>     if (declaredClass == null) {
>       try {
>         declaredClass = conf.getClassByName(className);
>       } catch (Exception e) {
>       }
>     }
>     
>     if(declaredClass == null) {
>       try {
>         declaredClass = Class.forName(className);
>       } catch (ClassNotFoundException e) {
>         throw new RuntimeException("readObject can't find class " + 
> className, e);
>       }
>     }
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to