Index: src/test/api/java/org/apache/harmony/rmi/MarshalledObjectTest.java =================================================================== --- src/test/api/java/org/apache/harmony/rmi/MarshalledObjectTest.java (revision 567599) +++ src/test/api/java/org/apache/harmony/rmi/MarshalledObjectTest.java (working copy) @@ -56,6 +56,36 @@ public MarshalledObjectTest(String name) { super(name); } + + /** + * @tests java.rmi.MarshalledObject#MarshalledObject(T) + */ + public void test_Constructor() throws Exception { + MarshalledObject marObject = + new MarshalledObject(new Integer(100)); + assertNotNull(marObject); + + Object object = null; + marObject = new MarshalledObject(object); + assertNotNull(marObject); + } + + /** + * @tests java.rmi.MarshalledObject#get() + */ + public void test_get() throws Exception { + Hashtable object = new Hashtable(); + object.put(new Integer(1), "One"); + MarshalledObject marObject = + new MarshalledObject(object); + assertEquals(object, marObject.get()); + object.put(new Integer(2), "Two"); + assertFalse(marObject.get().equals(object)); + + object = null; + marObject = new MarshalledObject(object); + assertNull(marObject.get()); + } /** * Tests {@link MarshalledObject#equals(Object)} method. Index: src/main/java/java/rmi/MarshalledObject.java =================================================================== --- src/main/java/java/rmi/MarshalledObject.java (revision 567599) +++ src/main/java/java/rmi/MarshalledObject.java (working copy) @@ -26,7 +26,7 @@ import org.apache.harmony.rmi.MarshalledObjectInputStream; import org.apache.harmony.rmi.MarshalledObjectOutputStream; -public final class MarshalledObject implements Serializable { +public final class MarshalledObject implements Serializable { private static final long serialVersionUID = 8988374069173025854L; private final byte[] objBytes; @@ -35,7 +35,7 @@ private final int hash; - public MarshalledObject(Object obj) throws IOException { + public MarshalledObject(T obj) throws IOException { ByteArrayOutputStream objStream = new ByteArrayOutputStream(); MarshalledObjectOutputStream moStream = new MarshalledObjectOutputStream(objStream); moStream.writeObject(obj); @@ -61,12 +61,12 @@ return (hash == anotherObj.hash) || (Arrays.equals(objBytes, anotherObj.objBytes)); } - public Object get() throws IOException, ClassNotFoundException { + public T get() throws IOException, ClassNotFoundException { if (objBytes == null) { return null; } MarshalledObjectInputStream moin = new MarshalledObjectInputStream(objBytes, locBytes); - return moin.readObject(); + return (T) moin.readObject(); } @Override