>>>>> "Mark" == Mark Wielaard <[EMAIL PROTECTED]> writes:
Mark> Hi,
Mark> As reported on the GNU Classpath mailinglist Eclipse (2) doesn't
Mark> start up anymore under kaffe since the URLClassLoader now calls
Mark> super.setSigners() for classes loaded from signed jar files.
Mark> For people that want to play with this anyway it would be nice
Mark> to change the exception into a warning message:
Mark> 2004-11-13 Mark Wielaard <[EMAIL PROTECTED]>
Mark> * libraries/javalib/java/lang/ClassLoader.java
Mark> (setSigners): Print warning.
Mark> With this Eclipse 2.1 starts again, but is not completely
Mark> usable, while printing lots of warning messages... (an
Mark> alternative would be to actually implement setSigners() by
Mark> adopting the GNU Classpath ClassLoader implementation).
Or, why not implement Class.getSigners and Class.setSigners?
--
Casey Marshall || [EMAIL PROTECTED]
Index: kaffe/kaffevm/classMethod.h
===================================================================
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/classMethod.h,v
retrieving revision 1.68
diff -u -b -B -r1.68 classMethod.h
--- kaffe/kaffevm/classMethod.h 19 Aug 2004 19:29:02 -0000 1.68
+++ kaffe/kaffevm/classMethod.h 14 Nov 2004 19:39:20 -0000
@@ -163,6 +163,9 @@
/** Stab type ID. */
int stab_id;
#endif
+
+ /** The array of 'signer' objects; usually Certificates. */
+ HArrayOfObject* signers;
};
#ifndef __DEFINED_CLASS
Index: libraries/clib/native/Class.c
===================================================================
RCS file: /cvs/kaffe/kaffe/libraries/clib/native/Class.c,v
retrieving revision 1.74
diff -u -b -B -r1.74 Class.c
--- libraries/clib/native/Class.c 5 Jul 2004 16:40:53 -0000 1.74
+++ libraries/clib/native/Class.c 14 Nov 2004 19:39:20 -0000
@@ -280,16 +280,16 @@
return (this->accflags & (ACC_MASK & ~ACC_SUPER));
}
-HArrayOfObject* NONRETURNING
-java_lang_Class_getSigners(struct Hjava_lang_Class* this UNUSED)
+HArrayOfObject*
+java_lang_Class_getSigners0(struct Hjava_lang_Class* this)
{
- unimp("java.lang.Class:getSigners unimplemented");
+ return this->signers;
}
-void NONRETURNING
-java_lang_Class_setSigners(struct Hjava_lang_Class* this UNUSED, HArrayOfObject* sigs UNUSED)
+void
+java_lang_Class_setSigners(struct Hjava_lang_Class* this, HArrayOfObject* sigs)
{
- unimp("java.lang.Class:setSigners unimplemented");
+ this->signers = sigs;
}
/*
Index: libraries/javalib/java/lang/Class.java
===================================================================
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/Class.java,v
retrieving revision 1.49
diff -u -b -B -r1.49 Class.java
--- libraries/javalib/java/lang/Class.java 22 Mar 2004 11:24:46 -0000 1.49
+++ libraries/javalib/java/lang/Class.java 14 Nov 2004 19:39:20 -0000
@@ -356,7 +356,14 @@
return loader.getResourceAsStream(name);
}
-native public Object[] getSigners();
+public Object[] getSigners()
+{
+ Object[] signers = getSigners0();
+ return signers == null ? null : (Object[]) signers.clone();
+}
+
+private native Object[] getSigners0();
+
native void setSigners(Object[] signers);
native public Class getSuperclass();
Index: libraries/javalib/java/lang/ClassLoader.java
===================================================================
RCS file: /cvs/kaffe/kaffe/libraries/javalib/java/lang/ClassLoader.java,v
retrieving revision 1.32
diff -u -b -B -r1.32 ClassLoader.java
--- libraries/javalib/java/lang/ClassLoader.java 22 Mar 2004 11:24:46 -0000 1.32
+++ libraries/javalib/java/lang/ClassLoader.java 14 Nov 2004 19:39:20 -0000
@@ -201,9 +201,8 @@
return parent;
}
-protected final void setSigners(Class cl, Object signers[]) {
- throw new kaffe.util.NotImplemented(getClass().getName()
- + ".setSigners()");
+protected final void setSigners(Class cl, Object[] signers) {
+ cl.setSigners (signers);
}
protected final Class findLoadedClass(String name) {
_______________________________________________
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe