--- 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'!