2020import java .io .ByteArrayOutputStream ;
2121import java .io .InputStream ;
2222import java .io .ObjectOutputStream ;
23+ import java .io .Serializable ;
2324
2425import junit .framework .TestCase ;
2526
@@ -40,23 +41,93 @@ public ClassLoaderObjectInputStreamTest(final String name) {
4041 */
4142
4243
43- public void testExpected () throws Exception {
44+ public void xtestExpected () throws Exception {
4445
4546 final ByteArrayOutputStream baos = new ByteArrayOutputStream ();
4647 final ObjectOutputStream oos = new ObjectOutputStream (baos );
4748
48- oos .writeObject ( Boolean .FALSE );
49+ final Object input = Boolean .FALSE ;
50+ oos .writeObject ( input );
51+
52+ final InputStream bais = new ByteArrayInputStream (baos .toByteArray ());
53+ final ClassLoaderObjectInputStream clois =
54+ new ClassLoaderObjectInputStream (getClass ().getClassLoader (), bais );
55+ final Object result = clois .readObject ();
56+
57+ assertEquals (input , result );
58+ clois .close ();
59+ }
60+
61+ public void xtestLong () throws Exception {
62+
63+ final ByteArrayOutputStream baos = new ByteArrayOutputStream ();
64+ final ObjectOutputStream oos = new ObjectOutputStream (baos );
65+
66+ final Object input = Long .valueOf (123 );
67+ oos .writeObject (input );
68+
69+ final InputStream bais = new ByteArrayInputStream (baos .toByteArray ());
70+ final ClassLoaderObjectInputStream clois =
71+ new ClassLoaderObjectInputStream (getClass ().getClassLoader (), bais );
72+ final Object result = clois .readObject ();
73+
74+ assertEquals (input , result );
75+ clois .close ();
76+ }
77+
78+ public void xtestPrimitiveLong () throws Exception {
79+
80+ final ByteArrayOutputStream baos = new ByteArrayOutputStream ();
81+ final ObjectOutputStream oos = new ObjectOutputStream (baos );
82+
83+ final long input = 12345L ;
84+ oos .writeLong (input );
85+ oos .close ();
86+
87+ final InputStream bais = new ByteArrayInputStream (baos .toByteArray ());
88+ final ClassLoaderObjectInputStream clois =
89+ new ClassLoaderObjectInputStream (getClass ().getClassLoader (), bais );
90+ final long result = clois .readLong ();
91+
92+ assertEquals (input , result );
93+ clois .close ();
94+ }
95+
96+ private static class Test implements Serializable {
97+ private static final long serialVersionUID = 1L ;
98+ private int i ;
99+
100+ Test (int i ) {
101+ this .i = i ;
102+ }
103+ @ Override
104+ public boolean equals (Object other ) {
105+ return other instanceof Test & (this .i == ((Test )other ).i );
106+ }
107+ @ Override
108+ public int hashCode () {
109+ return super .hashCode ();
110+ }
111+ }
112+ public void testString () throws Exception {
113+
114+ final ByteArrayOutputStream baos = new ByteArrayOutputStream ();
115+ final ObjectOutputStream oos = new ObjectOutputStream (baos );
116+
117+ final Object input = new Test (123 );
118+ oos .writeObject (input );
119+ oos .close ();
49120
50121 final InputStream bais = new ByteArrayInputStream (baos .toByteArray ());
51122 final ClassLoaderObjectInputStream clois =
52123 new ClassLoaderObjectInputStream (getClass ().getClassLoader (), bais );
53- final Boolean result = ( Boolean ) clois .readObject ();
124+ final Object result = clois .readObject ();
54125
55- assertTrue ( ! result . booleanValue () );
126+ assertEquals ( input , result );
56127 clois .close ();
57128 }
58129
59- public void testResolveProxyClass () throws Exception {
130+ public void xtestResolveProxyClass () throws Exception {
60131
61132 final ByteArrayOutputStream baos = new ByteArrayOutputStream ();
62133 final ObjectOutputStream oos = new ObjectOutputStream (baos );
0 commit comments