src/JavaVM.st
branchjk_new_structure
changeset 1649 0af82006c0b2
parent 1648 ba54c818827d
child 1656 c6fee8f3a640
--- a/src/JavaVM.st	Wed Aug 22 11:30:10 2012 +0000
+++ b/src/JavaVM.st	Wed Aug 22 12:32:32 2012 +0000
@@ -48,10 +48,11 @@
 		StdinReplacementFileQuerySignal AssertionsEnabled
 		SimulatedNativeMemory Reflection ZipCache ZipEntryCache
 		ZipLastModTimesCache ZipInflaters JavaPrivilegedAccessQuery
-		ClassRegistry SystemClassLoader ExtClassLoader StartupTime
-		FinalizationEnabled FinalizationLobby ParkUnparkSemaphores
-		ThreadInterrupts EagerResolvingEnabled OldspaceIncreased
-		PerfCounters AboutToSnapshotAction SnapshotFinishedAction'
+		ClassRegistry SystemClassLoader ExtClassLoader
+		SmalltalkClassLoader StartupTime FinalizationEnabled
+		FinalizationLobby ParkUnparkSemaphores ThreadInterrupts
+		EagerResolvingEnabled OldspaceIncreased PerfCounters
+		AboutToSnapshotAction SnapshotFinishedAction'
 	poolDictionaries:'JavaConstants'
 	category:'Languages-Java-Support'
 !
@@ -1743,13 +1744,18 @@
 
 initializeSystemClassLoader
 
-    | java_lang_ClassLoader |
+    | java_lang_ClassLoader stx_libjava_ClassLoader |
     
     java_lang_ClassLoader := JavaVM classForName: 'java.lang.ClassLoader'.
     (SystemClassLoader := java_lang_ClassLoader instVarNamed:#scl) isNil ifTrue:[
         SystemClassLoader := java_lang_ClassLoader perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'
     ].
 
+    stx_libjava_ClassLoader := JavaVM classForName: 'stx.libjava.ClassLoader'.
+    (SmalltalkClassLoader := stx_libjava_ClassLoader instVarNamed:#scl) isNil ifTrue:[
+        SmalltalkClassLoader := stx_libjava_ClassLoader perform: #'getSmalltalkClassLoader()Ljava/lang/ClassLoader;'
+    ].
+
     "Created: / 30-10-2011 / 12:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
@@ -2397,6 +2403,13 @@
     "Modified (format): / 21-10-2011 / 11:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+smalltalkClassLoader
+
+    ^SmalltalkClassLoader
+
+    "Created: / 22-08-2012 / 13:00:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 systemClassLoader
 
     ^SystemClassLoader
@@ -2658,10 +2671,11 @@
                 perform: #'loadClassInternal(Ljava/lang/String;)Ljava/lang/Class;'
                 with: (Java as_String: (className asDottedJavaClassName)).
     class := self classForJavaClassObject: classObject.
-    class classLoader ifNil: [self breakPoint:#mh].
+    class javaMirror getClassLoader isNil ifTrue: [self breakPoint:#mh].
     ^ class.
 
     "Created: / 02-11-2011 / 16:20:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 22-08-2012 / 12:57:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaVM class methodsFor:'debugging support'!
@@ -2714,6 +2728,7 @@
     ExceptionDebugPatterns add: 'org/xml/sax/SAXParseException'.
     ExceptionDebugPatterns add: 'org/apache/xerces/xni/parser/XMLParseException'.
     ExceptionDebugPatterns add: 'java/lang/InstantiationException'.
+    ExceptionDebugPatterns add: 'java/lang/RuntimeException'.
 
     ExceptionDebug := true.
     "
@@ -7111,10 +7126,9 @@
 
     <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
 
-    ^(self reflection classForJavaClassObject: nativeContext receiver)
-        protectionDomain
-
-    "Modified: / 10-08-2011 / 15:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    ^(self reflection classForJavaClassObject: nativeContext receiver) javaMirror getProtectionDomain
+
+    "Modified: / 22-08-2012 / 12:55:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 _java_lang_Class_getRawAnnotations: aJavaContext