a little background.

I am working on an Apache MyFaces project, were we have our own
ObjectInputStream class ([1]).
Now when we update to the latest version of one of our dependencies
(JSF 2.0, Sun Mojarra), we
got this exception:
java.lang.ClassNotFoundException: void
...

I filed a bug against them, b/c of that (see [2] for more). They said
the reason why we see it is that with the new version one of their
helper class stores null values as
Void.TYPE(s). Therefore they suggested to do what the JDK does.

The did a very simple patch ([3]), which I think is code from the Sun
JDK 1.6.x of the "standard" ObjectInputStream.
In order to avoid any license issues, by looking into Sun's JDK, I
opened Harmony can "borrowed" code.

So I am wondering if the void has been forgotten..., since I suspect
(as of [3]) that the Sun JDK's ObjectInputStream does
register void/void.class....

BTW. I changed our custom ObjectInputStream patch (see [4]) and the
error (java.lang.ClassNotFoundException: void) is now gone

Greetings,
Matthias

[1] 
https://issues.apache.org/jira/secure/attachment/12439193/1.2.12.2_compressviewstate.patch
[2] https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1607
[3] 
https://javaserverfaces.dev.java.net/nonav/issues/showattachment.cgi/1241/1607.txt
[4] 
https://issues.apache.org/jira/secure/attachment/12451648/TRINIDAD-1747_August10.patch


On Wed, Aug 11, 2010 at 10:21 AM, Jimmy,Jing Lv <firep...@gmail.com> wrote:
> Hi Matthias,
>
>     I suppose ObjectInputStream is mainly use to serialize Object but void
> is not a kind of Class to be serialized. Please tell me if I am wrong.
>
> 2010/8/10 Mark Hindess <mark.hind...@googlemail.com>
>
>>
>> In message <aanlktinn_kks+rklzfxup2tghbaor-9fvb8om3mci...@mail.gmail.com>,
>> Matthias Wessendorf writes:
>> >
>> > Hello,
>> >
>> > looking at ObjectInputStream.java,
>> >
>> >     static {
>> >         PRIMITIVE_CLASSES.put("byte", byte.class); //$NON-NLS-1$
>> >         PRIMITIVE_CLASSES.put("short", short.class); //$NON-NLS-1$
>> >         PRIMITIVE_CLASSES.put("int", int.class); //$NON-NLS-1$
>> >         PRIMITIVE_CLASSES.put("long", long.class); //$NON-NLS-1$
>> >         PRIMITIVE_CLASSES.put("boolean", boolean.class); //$NON-NLS-1$
>> >         PRIMITIVE_CLASSES.put("char", char.class); //$NON-NLS-1$
>> >         PRIMITIVE_CLASSES.put("float", float.class); //$NON-NLS-1$
>> >         PRIMITIVE_CLASSES.put("double", double.class); //$NON-NLS-1$
>> >     }
>> >
>> > I am wondering why there is no "void", void.class key-value pair?
>>
>> I see you've raised a JIRA bug for this.  I'm struggling to understand
>> in what context this would be needed.  Can you provide a test case that
>> shows why it is needed?
>>
>> Regards,
>>  Mark.
>>
>>
>>
>
>
> --
>
> Best Regards!
>
> Jimmy, Jing Lv
>



-- 
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf

Reply via email to