--- a/JavaVM.st Tue Oct 20 15:04:31 1998 +0000
+++ b/JavaVM.st Tue Oct 20 16:45:42 1998 +0000
@@ -2489,9 +2489,20 @@
name := nativeContext argAt:1.
name := Java as_ST_String:name.
+ class := Java at:name.
+ class isNil ifTrue:[
"/ ('JAVA: findSystemClass0 for ' , name , ' loader is ' , loader displayString) infoPrintCR.
- loader class == (Java classForName:'java.util.SystemClassLoader') ifTrue:[
- Java classForName:name.
+ loader class == (Java classForName:'java.util.SystemClassLoader') ifTrue:[
+"/ Java classForName:name.
+"/ class := Java at:name.
+ class := JavaClassReader loadSystemClass:name.
+ ] ifFalse:[
+ "/ load using default (ST/X) loader
+ class := JavaClassReader loadSystemClass:name.
+"/ JavaClassReader classLoaderQuerySignal answer:nil do:[
+"/ Java classForName:name.
+"/ ]
+ ].
].
"/ JavaClassReader classLoaderQuerySignal answer:nil "loader"
@@ -2499,7 +2510,7 @@
"/ class := Java classForName:name.
"/ JavaClassReader postLoadActions:true.
"/ ].
- class := Java at:name.
+
(class isNil
"or:[class classLoader notNil]") ifTrue:[
"/ self halt:'class: ' , name , ' not found.'.
@@ -2507,7 +2518,7 @@
self
throwExceptionClassName:'java.lang.ClassNotFoundException'
- withMessage:'class: ' , name , ' not found.'.
+ withMessage:('class: ' , name , ' not found.').
^ nil
].
@@ -2516,7 +2527,7 @@
^ jClass
"Created: / 5.1.1998 / 02:53:04 / cg"
- "Modified: / 6.2.1998 / 02:16:50 / cg"
+ "Modified: / 20.10.1998 / 17:28:34 / cg"
!
_ClassLoader_getSystemResourceAsStream0:nativeContext
@@ -2558,7 +2569,7 @@
_ClassLoader_resolveClass0:nativeContext
"resolve a new class as previously created by defineClass0"
- |jClassLoader jCls cls loaderStub|
+ |jClassLoader jCls cls loaderStub anyUnresolved|
jClassLoader := nativeContext receiver.
jCls := nativeContext argAt:1.
@@ -2571,20 +2582,24 @@
self halt.
^ nil
].
- Transcript showCR:('resolving class ' , cls fullName , ' ...').
+ ('JavaVM [info]: resolving class ' , cls fullName , ' ...') infoPrintCR.
+(cls fullName endsWith:'Clock2') ifTrue:[self halt].
JavaClassReader classLoaderQuerySignal answer:jClassLoader
do:[
- JavaClassReader postLoadActions:true.
+ JavaClassReader resolveClass:cls.
+"/ JavaClassReader postLoadActions:true.
+ anyUnresolved := false.
cls constantPool do:[:entry |
(entry isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
self halt:'debugHalt'.
entry preResolve.
self halt:'debugHalt'.
+ anyUnresolved := true.
]
]
].
-
+anyUnresolved ifTrue:[
jClassLoader notNil ifTrue:[
"/ any unresolved left -> try resolving with standard loader
JavaClassReader classLoaderQuerySignal answer:nil
@@ -2599,9 +2614,10 @@
]
]
].
+].
"Created: / 7.1.1998 / 13:12:27 / cg"
- "Modified: / 8.1.1998 / 16:13:57 / cg"
+ "Modified: / 20.10.1998 / 17:54:57 / cg"
!
_Class_forName:nativeContext
@@ -8057,6 +8073,6 @@
!JavaVM class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaVM.st,v 1.45 1998/10/20 15:04:31 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaVM.st,v 1.46 1998/10/20 16:44:17 cg Exp $'
! !
JavaVM initialize!