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