--- a/src/JavaClassReader.st Fri Oct 28 18:58:45 2011 +0000
+++ b/src/JavaClassReader.st Fri Oct 28 20:15:40 2011 +0000
@@ -244,10 +244,7 @@
classPath: Java release classPath.
class notNil ifTrue:[ ^ class ].
- class := self
- readClass: className ignoring: classesBeingLoadedOrNil
- classPath: Java classPath.
- class notNil ifTrue:[
+ class isNil ifTrue:[
JavaVM booted ifFalse:[
self breakPoint:#jv info: 'Should not happen!!'.
].
@@ -255,7 +252,14 @@
(scl := java_lang_ClassLoader instVarNamed:#scl) isNil ifTrue:[
scl := java_lang_ClassLoader perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'
].
- class classLoader: scl.
+ JavaClassReader classLoaderQuerySignal answer: scl do:[
+ class := self
+ readClass: className ignoring: classesBeingLoadedOrNil
+ classPath: Java classPath.
+ ].
+ class notNil ifTrue:[
+ self assert: class classLoader == scl.
+ ].
].
^class
@@ -263,7 +267,7 @@
"Created: / 15-04-1996 / 14:58:53 / cg"
"Modified: / 20-10-1998 / 17:24:54 / cg"
"Modified: / 21-10-2011 / 13:39:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 23-10-2011 / 22:07:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-10-2011 / 21:56:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
readClass: className ignoring: classesBeingLoadedOrNil classPath: classPath
@@ -612,6 +616,7 @@
] ifFalse: [
"/ a java class
classBeingLoaded := JavaClass fullName: thisClassName numStatic: nStatic.
+ classBeingLoaded classLoader: self class classLoaderQuerySignal query.
fields := fields select: [:f | f isStatic not ].
JavaClass setInstanceVariableStringFromFields: staticFields
in: classBeingLoaded class.
@@ -636,7 +641,7 @@
classBeingLoaded fields do: [:each | self updateOwnerInField: each ].
classBeingLoaded staticFields do: [:each | self updateOwnerInField: each ].
- JavaVM classRegistry registerClass: classBeingLoaded.
+ "/JavaVM classRegistry registerClass: classBeingLoaded.
classesbeingLoaded remove: classBeingLoaded name ifAbsent:[].
^ classBeingLoaded.
@@ -654,7 +659,7 @@
"Modified: / 15-10-2010 / 17:37:38 / Jan Kurs <kurs.jan@post.cz>"
"Modified: / 28-01-2011 / 15:09:48 / Marcel Hlopko <hlopik@gmail.com>"
"Modified: / 18-05-2011 / 15:30:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 23-10-2011 / 15:23:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-10-2011 / 21:58:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
readStream:aStream ignoring:classesBeingLoaded