mauve-libgcj: Activated serialization tests.

* mauve-libgcj: Activated serialization tests.
	* gcj/field.h (getModifiers): Mask off unknown flags.
	* gnu/java/security/provider/SHA.java (munch): Reset buffer to 0 so
	spurious bits don't cause discrepancies.
	* java/io/ObjectOutputStream.java: Fixed typo in comment.
	* java/io/ObjectStreamClass.java: Fixed typos in comments.
	(lookup): Applied patch from Brian Jones <cbj@gnu.org> to optimize.
	(hasClassInitializer): Call getDeclaredMethod instead of getMethod.
	* java/lang/Throwable.java (serialVersionUID): New field.
	* java/lang/reflect/Modifier.java (ALL_FLAGS): Preserve STRICT if used.
	* java/lang/reflect/natConstructor.cc (getModifiers): Mask off
	unknown flags.
	* java/lang/reflect/natMethod.cc: Ditto.
	* java/security/Key.java (serialVersionUID): Removed field for now.
	* java/security/interfaces/DSAPrivateKey.java (serialVersionUID): Ditto.
	* java/security/interfaces/DSAPublicKey.java (serialVersionUID): Ditto.

Serialization mods.

From-SVN: r35302
This commit is contained in:
Warren Levy 2000-07-27 23:57:07 +00:00 committed by Warren Levy
parent b2244c65f5
commit 7db51521a0
13 changed files with 50 additions and 20 deletions

View file

@ -1,3 +1,22 @@
2000-07-27 Warren Levy <warrenl@cygnus.com>
* mauve-libgcj: Activated serialization tests.
* gcj/field.h (getModifiers): Mask off unknown flags.
* gnu/java/security/provider/SHA.java (munch): Reset buffer to 0 so
spurious bits don't cause discrepancies.
* java/io/ObjectOutputStream.java: Fixed typo in comment.
* java/io/ObjectStreamClass.java: Fixed typos in comments.
(lookup): Applied patch from Brian Jones <cbj@gnu.org> to optimize.
(hasClassInitializer): Call getDeclaredMethod instead of getMethod.
* java/lang/Throwable.java (serialVersionUID): New field.
* java/lang/reflect/Modifier.java (ALL_FLAGS): Preserve STRICT if used.
* java/lang/reflect/natConstructor.cc (getModifiers): Mask off
unknown flags.
* java/lang/reflect/natMethod.cc: Ditto.
* java/security/Key.java (serialVersionUID): Removed field for now.
* java/security/interfaces/DSAPrivateKey.java (serialVersionUID): Ditto.
* java/security/interfaces/DSAPublicKey.java (serialVersionUID): Ditto.
2000-07-22 Tom Tromey <tromey@cygnus.com> 2000-07-22 Tom Tromey <tromey@cygnus.com>
* java/awt/geom/RectangularShape.java (getPathIterator): * java/awt/geom/RectangularShape.java (getPathIterator):

View file

@ -13,6 +13,7 @@ details. */
#include <java/lang/Class.h> #include <java/lang/Class.h>
#include <java/lang/reflect/Field.h> #include <java/lang/reflect/Field.h>
#include <java/lang/reflect/Modifier.h>
#define _Jv_FIELD_UNRESOLVED_FLAG 0x8000 #define _Jv_FIELD_UNRESOLVED_FLAG 0x8000
#define _Jv_FIELD_CONSTANT_VALUE 0x4000 #define _Jv_FIELD_CONSTANT_VALUE 0x4000
@ -74,8 +75,11 @@ struct _Jv_Field
return type; return type;
} }
// FIXME - may need to mask off internal flags. // Need to mask off all unknown/internal flags before returning.
int getModifiers() { return flags; } int getModifiers()
{
return flags & java::lang::reflect::Modifier::ALL_FLAGS;
}
#ifdef COMPACT_FIELDS #ifdef COMPACT_FIELDS
_Jv_Utf8Const * getNameUtf8Const (jclass cls) _Jv_Utf8Const * getNameUtf8Const (jclass cls)

View file

@ -1,5 +1,5 @@
/* SHA.java -- Class implementing the SHA-1 algorithm as specified in [1]. /* SHA.java -- Class implementing the SHA-1 algorithm as specified in [1].
Copyright (C) 1999 Free Software Foundation, Inc. Copyright (C) 1999, 2000 Free Software Foundation, Inc.
This file is part of GNU Classpath. This file is part of GNU Classpath.
@ -198,6 +198,10 @@ public class SHA extends MessageDigest implements Cloneable
H2 += C; H2 += C;
H3 += D; H3 += D;
H4 += E; H4 += E;
// Reset W by clearing it.
for (int t = 0; t < 80; ++ t)
W[t] = 0;
} }
public Object clone () public Object clone ()

View file

@ -54,7 +54,7 @@ import gnu.java.lang.reflect.TypeSignature;
Using default serialization, information about the class of an Using default serialization, information about the class of an
object is written, all of the non-transient, non-static fields of object is written, all of the non-transient, non-static fields of
the object are written, if any of these fields are objects, the are the object are written, if any of these fields are objects, they are
written out in the same manner. written out in the same manner.
An object is only written out the first time it is encountered. If An object is only written out the first time it is encountered. If

View file

@ -1,6 +1,6 @@
/* ObjectStreamClass.java -- Class used to write class information /* ObjectStreamClass.java -- Class used to write class information
about serialized objects. about serialized objects.
Copyright (C) 1998, 1999 Free Software Foundation, Inc. Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of GNU Classpath. This file is part of GNU Classpath.
@ -51,7 +51,7 @@ public class ObjectStreamClass implements Serializable
/** /**
Returns the <code>ObjectStreamClass</code> for <code>cl</code>. Returns the <code>ObjectStreamClass</code> for <code>cl</code>.
If <code>cl</code> is null, or is not <code>Serializable</code>, If <code>cl</code> is null, or is not <code>Serializable</code>,
null is returned. <code>ObjectStreamClass</code>'s are memoized; null is returned. <code>ObjectStreamClass</code>'s are memorized;
later calls to this method with the same class will return the later calls to this method with the same class will return the
same <code>ObjectStreamClass</code> object and no recalculation same <code>ObjectStreamClass</code> object and no recalculation
will be done. will be done.
@ -62,13 +62,13 @@ public class ObjectStreamClass implements Serializable
{ {
if (cl == null) if (cl == null)
return null; return null;
if (! (Serializable.class).isAssignableFrom (cl))
return null;
ObjectStreamClass osc = (ObjectStreamClass)classLookupTable.get (cl); ObjectStreamClass osc = (ObjectStreamClass)classLookupTable.get (cl);
if (osc != null) if (osc != null)
return osc; return osc;
else if (! (Serializable.class).isAssignableFrom (cl))
return null;
else else
{ {
osc = new ObjectStreamClass (cl); osc = new ObjectStreamClass (cl);
@ -161,7 +161,7 @@ public class ObjectStreamClass implements Serializable
// private void writeObject (ObjectOutputStream) // private void writeObject (ObjectOutputStream)
// //
// This method is used by the class to override default // This method is used by the class to override default
// serialization behaivior. // serialization behavior.
boolean hasWriteMethod () boolean hasWriteMethod ()
{ {
return (flags & ObjectStreamConstants.SC_WRITE_METHOD) != 0; return (flags & ObjectStreamConstants.SC_WRITE_METHOD) != 0;
@ -396,7 +396,7 @@ public class ObjectStreamClass implements Serializable
calculateOffsets (); calculateOffsets ();
} }
// Sets uid be serial version UID defined by class, or if that // Sets uid to be serial version UID defined by class, or if that
// isn't present, calculates value of serial version UID. // isn't present, calculates value of serial version UID.
private void setUID (Class cl) private void setUID (Class cl)
{ {
@ -603,7 +603,7 @@ public class ObjectStreamClass implements Serializable
try try
{ {
Class classArgs[] = {}; Class classArgs[] = {};
m = clazz.getMethod ("<clinit>", classArgs); m = clazz.getDeclaredMethod ("<clinit>", classArgs);
} }
catch (java.lang.NoSuchMethodException e) catch (java.lang.NoSuchMethodException e)
{ {

View file

@ -165,4 +165,5 @@ public class Throwable implements Serializable
private String detailMessage; private String detailMessage;
private transient byte stackTrace[]; private transient byte stackTrace[];
private static final long serialVersionUID = -3042686055658047285L;
} }

View file

@ -37,7 +37,7 @@ public class Modifier
public static final int STRICT = 0x800; public static final int STRICT = 0x800;
// This is only used by the C++ code, so it is not public. // This is only used by the C++ code, so it is not public.
static final int ALL_FLAGS = 0x7ff; static final int ALL_FLAGS = 0xfff;
public static boolean isAbstract (int mod) public static boolean isAbstract (int mod)
{ {

View file

@ -23,7 +23,8 @@ details. */
jint jint
java::lang::reflect::Constructor::getModifiers () java::lang::reflect::Constructor::getModifiers ()
{ {
return _Jv_FromReflectedConstructor (this)->accflags; // Ignore all unknown flags.
return _Jv_FromReflectedConstructor (this)->accflags & Modifier::ALL_FLAGS;
} }
void void

View file

@ -182,7 +182,8 @@ java::lang::reflect::Method::invoke (jobject obj, jobjectArray args)
jint jint
java::lang::reflect::Method::getModifiers () java::lang::reflect::Method::getModifiers ()
{ {
return _Jv_FromReflectedMethod (this)->accflags; // Ignore all unknown flags.
return _Jv_FromReflectedMethod (this)->accflags & Modifier::ALL_FLAGS;
} }
jstring jstring

View file

@ -21,7 +21,7 @@ import java.io.Serializable;
public interface Key extends Serializable public interface Key extends Serializable
{ {
// FIXME: need to set this at some point when serialization is implemented. // FIXME: need to set this at some point when serialization is implemented.
public static final long serialVersionUID = 0; // public static final long serialVersionUID = 0L;
public String getAlgorithm(); public String getAlgorithm();
public String getFormat(); public String getFormat();

View file

@ -22,7 +22,7 @@ import java.math.BigInteger;
public interface DSAPrivateKey extends DSAKey, PrivateKey public interface DSAPrivateKey extends DSAKey, PrivateKey
{ {
// FIXME: need to set this at some point when serialization is implemented. // FIXME: need to set this at some point when serialization is implemented.
public static final long serialVersionUID = 0; // public static final long serialVersionUID = 0L;
public BigInteger getX(); public BigInteger getX();
} }

View file

@ -22,7 +22,7 @@ import java.math.BigInteger;
public interface DSAPublicKey extends DSAKey, PublicKey public interface DSAPublicKey extends DSAKey, PublicKey
{ {
// FIXME: need to set this at some point when serialization is implemented. // FIXME: need to set this at some point when serialization is implemented.
public static final long serialVersionUID = 0; // public static final long serialVersionUID = 0L;
public BigInteger getY(); public BigInteger getY();
} }

View file

@ -8,9 +8,9 @@ java.lang.Character.classify12
java.lang.String.hash java.lang.String.hash
# We support 1.2 for these 3 tests. # We support 1.2 for these 3 tests.
java.lang.reflect.Modifier.toString12 java.lang.reflect.Modifier.toString12
!java.io.ObjectInputOutput.InputTest java.io.ObjectInputOutput.InputTest
!java.io.ObjectInputOutput.OutputTest java.io.ObjectInputOutput.OutputTest
!java.io.ObjectStreamClass.Test java.io.ObjectStreamClass.Test
java.math java.math
!java.rmi !java.rmi
java.security java.security