Hey Mark, thanks for fixing this. One more point. Wouldn't it make sense to directly create a map with capacity of nine ?
-Matthias On Wed, Aug 11, 2010 at 11:33 AM, Matthias Wessendorf <mat...@apache.org> wrote: > 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 > -- Matthias Wessendorf blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf twitter: http://twitter.com/mwessendorf