src/Java.st
branchjk_new_structure
changeset 1368 5f502e712403
parent 1321 dc6b9bf7bfea
child 1374 82d8ffc58498
--- a/src/Java.st	Wed Feb 15 11:35:01 2012 +0000
+++ b/src/Java.st	Sat Feb 18 23:18:47 2012 +0000
@@ -537,7 +537,9 @@
     ExcludedClassPath := OrderedCollection new.
     SourceCache := CacheDictionary new: 32.
     SourceArchiveCache := CacheDictionary new: 32.
+    SourceDirectories := OrderedCollection new.
     Threads := IdentityDictionary new.
+
     ThreadsAccess := RecursionLock forMutualExclusion.
     self initializeRelease. "lazy initialization of Release"
     self initializePrettyPrintStyle.
@@ -552,8 +554,8 @@
     "Modified: / 06-11-2001 / 09:24:12 / cg"
     "Created: / 03-10-2010 / 15:54:02 / Jan Kurs <kurs.jan@post.cz>"
     "Modified: / 15-10-2010 / 17:37:20 / Jan Kurs <kurs.jan@post.cz>"
-    "Modified: / 31-08-2011 / 22:50:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 09-12-2011 / 13:16:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 18-02-2012 / 22:36:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 initializePrettyPrintStyle
@@ -1038,7 +1040,8 @@
                 ]
             ].
         ].
-    JavaEvaluator flushWorkspaceBinding .
+    GroovyEvaluator flushWorkspaceBinding .
+    GroovyCompiler  flushGroovyClassLoader.
     JavaClass flushClassesInitOrder.
     self flushClasses
 
@@ -1047,7 +1050,7 @@
 
     "Modified: / 06-11-2001 / 09:49:37 / cg"
     "Modified: / 02-11-2011 / 21:34:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
-    "Modified: / 02-12-2011 / 23:24:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 18-02-2012 / 22:25:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 flushClasses
@@ -1102,7 +1105,7 @@
 removeClass:aJavaClass
     "/ remove it from myself
 
-    |javaName sym nm cls p ns|
+    |javaName sym cls p ns|
 
     self breakPoint: #jv.
     self breakPoint: #mh.    
@@ -1111,23 +1114,9 @@
 
     sym := javaName asSymbolIfInterned.
     sym notNil ifTrue:[
-        cls := Classes at:sym ifAbsent:nil.
-    ].
-    cls isNil ifTrue:[
-        nm := javaName.
-        (nm includes:$.) ifTrue:[
-            "/
-            "/ try pckg/.../name
-            "/
-            nm := (nm asString copyReplaceAll:$. with:$/).
-            sym := nm asSymbolIfInterned.
-            sym notNil ifTrue:[
-                cls := Classes at:sym ifAbsent:nil.
-            ].
-        ].
+        cls := JavaVM classForName: sym definedBy: aJavaClass classLoader.
     ].
     (cls notNil and:[cls == aJavaClass]) ifTrue:[
-        Classes removeKey:sym.
         self updateClassRefsFrom:aJavaClass to:nil.
     ].
     Smalltalk removeKey:('JAVA::' , javaName) asSymbol.
@@ -1146,7 +1135,7 @@
     ].
 
     "Modified: / 19-10-1998 / 20:58:49 / cg"
-    "Modified (format): / 23-10-2011 / 20:18:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 18-02-2012 / 19:40:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 unresolvedClassRefFor:aClassName
@@ -1310,14 +1299,15 @@
 
     (sourceFile isNil or:[sourceFile exists not]) ifTrue:[
         sourceFile := aClass sourceFile.
-        package := aClass javaPackageAsDirname.
-        self effectiveSourceDirectories do:[:dir|
-            src := self classSource: sourceFile package: package in: dir.
-            src ifNotNil:[^src]
+        sourceFile notNil ifTrue:[
+            package := aClass javaPackageAsDirname.
+            self effectiveSourceDirectories do:[:dir|
+                src := self classSource: sourceFile package: package in: dir.
+                src ifNotNil:[^src]
+            ]
         ]
-
+    ].
 
-    ].
     sourceFile isFilename ifFalse:[^nil].
     ^ (sourceFile contentsOfEntireFile).
 
@@ -1326,7 +1316,7 @@
     "
 
     "Modified: / 27-01-1999 / 20:40:30 / cg"
-    "Modified: / 10-02-2011 / 23:10:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 18-02-2012 / 15:02:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Java class methodsFor:'starting apps'!