Fix in Java: do not flush Threads dictionary when rebooting JVM
This could (and did) break assections in Java class>>removeThread:for: in case
a Smalltalk process (for which a java.lang.Thread has been lazily created) outlives
a JVM reboot and then dies. In that case, it is no longer in Threads dictonary (because
it was flushed) but it's exit action still calls #emoveThread:for:.
--- a/Java.st Thu Sep 18 11:56:27 2014 +0100
+++ b/Java.st Thu Sep 18 16:13:31 2014 +0100
@@ -307,7 +307,11 @@
SourceCache := CacheDictionary new: 32.
SourceArchiveCache := CacheDictionary new: 32.
- Threads := IdentityDictionary new.
+ "/ Sigh, check for the very first initialization...
+ Threads isNil ifTrue:[
+ ThreadsAccess := RecursionLock forMutualExclusion.
+ Threads := IdentityDictionary new.
+ ].
ClassPathBundle := JavaClassPathBundle new.
ClassPath isNil ifTrue:[ClassPath:= OrderedCollection new]. "/ for ad-hoc packages
@@ -335,7 +339,7 @@
"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: / 09-12-2011 / 13:16:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 19-02-2013 / 21:04:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-09-2014 / 13:47:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
initializePrettyPrintStyle
@@ -466,51 +470,54 @@
!
terminateAllThreads
+ "Terminates all pure Java threads (i.e., threads created by the JVM."
+
| myself threadsToKill semaphore |
- Threads isNil ifTrue: [ ^ self ].
+
+ Threads isEmptyOrNil ifTrue: [ ^ self ].
+
myself := Processor activeProcess.
threadsToKill := IdentitySet new.
- Threads do: [
- :aJavaThread |
- aJavaThread ~~ myself ifTrue: [
- (aJavaThread isNil or: [ aJavaThread == 0 ]) ifFalse: [
- (aJavaThread isMemberOf: JavaProcess) ifTrue: [
- aJavaThread isDead ifFalse: [ threadsToKill add: aJavaThread ]
- ]
- ]
- ]
+ ThreadsAccess critical:[
+ Threads do: [:aJavaThread |
+ aJavaThread ~~ myself ifTrue: [
+ "/ What's the aim of the check below? Looks like a check for weak corpse (object's gone)
+ "/ but Threads is not a weak dictionary!!
+ "/ (aJavaThread isNil or: [ aJavaThread == 0 ]) ifFalse: [
+ (aJavaThread isDead not and:[aJavaThread isMemberOf: JavaProcess]) ifTrue: [
+ threadsToKill add: aJavaThread
+ ]
+ "/ ]
+ ]
+ ].
].
- threadsToKill size > 0 ifTrue: [
- Logger
- log: 'Killing ' , threadsToKill size printString , ' java processes'
- severity: #info
- facility: #JVM.
- semaphore := Semaphore new: 1 - threadsToKill size.
- semaphore name: 'Java thread killer'.
- threadsToKill do: [
- :aThread |
- aThread == JavaVM javaScreenUpdaterThread ifTrue: [ self halt ].
- aThread == JavaVM javaEventQueueThread ifTrue: [ self halt ].
- aThread
- addExitAction: [
- Logger
- log: 'Java thread killed successfully'
- severity: #info
- facility: #JVM.
- semaphore signal
- ].
-
- aThread terminate
- ].
- semaphore wait.
+ threadsToKill notEmptyOrNil ifTrue: [
+ Logger
+ log: 'Killing ' , threadsToKill size printString , ' java processes'
+ severity: #info
+ facility: #JVM.
+ semaphore := Semaphore new: 1 - threadsToKill size.
+ semaphore name: 'Java thread killer'.
+ threadsToKill do: [ :aThread |
+ aThread == JavaVM javaScreenUpdaterThread ifTrue: [ self halt ].
+ aThread == JavaVM javaEventQueueThread ifTrue: [ self halt ].
+ aThread
+ addExitAction: [
+ Logger
+ log: 'Java thread killed successfully'
+ severity: #info
+ facility: #JVM.
+ semaphore signal
+ ].
+ aThread terminate
+ ].
+ semaphore wait.
].
JavaVM releaseAllMonitors.
Logger
- log: 'No Java threads running at this point'
- severity: #info
- facility: #JVM.
-
- Threads := nil.
+ log: 'No Java threads running at this point'
+ severity: #info
+ facility: #JVM.
"
Java terminateAllThreads"
@@ -518,6 +525,7 @@
"Created: / 26-08-1997 / 19:57:40 / cg"
"Modified: / 24-12-1999 / 02:34:53 / cg"
"Modified: / 17-11-2011 / 21:31:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 18-09-2014 / 13:55:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!Java class methodsFor:'debugging'!
@@ -1128,7 +1136,6 @@
InternedStrings := Dictionary new.
SourceCache := CacheDictionary new: 32.
SourceArchiveCache := CacheDictionary new: 32.
- ThreadsAccess := RecursionLock forMutualExclusion.
ClassPathPackages := nil.
JavaMonitor initialize.
Smalltalk garbageCollect.
@@ -1171,7 +1178,7 @@
"Modified: / 06-11-2001 / 09:49:37 / cg"
"Modified: / 02-11-2011 / 21:34:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 30-11-2013 / 06:59:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-09-2014 / 13:44:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
flushClasses
@@ -1557,23 +1564,14 @@
removeThread: jThread for: stProcess
ThreadsAccess critical: [
- "/ Following assertions should be true most of the time,
- "/ however, when shuting down Java (by means of
- "/ Java class>>flushAllJavaResources), Threads global
- "/ might be nilled out before all thread die.
- "/ I (JV would like to keep those assertions at least for
- "/ a while, so guard them no notEmptyOrNil test.
- Threads notEmptyOrNil ifTrue:[
- self assert: (Threads includesKey: jThread).
- self assert: (Threads at: jThread) == stProcess.
- ].
+ self assert: (Threads includesKey: jThread).
+ self assert: (Threads at: jThread) == stProcess.
Threads removeKey: jThread ifAbsent:nil.
]
"Created: / 26-08-1997 / 19:53:57 / cg"
"Created: / 09-12-2011 / 12:47:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified (format): / 14-08-2014 / 09:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-
+ "Modified: / 18-09-2014 / 13:57:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
threadForStProcess: stProcess
--- a/abbrev.stc Thu Sep 18 11:56:27 2014 +0100
+++ b/abbrev.stc Thu Sep 18 16:13:31 2014 +0100
@@ -3,7 +3,6 @@
# it provides information about a classes filename, category and especially namespace.
GroovyCompiler GroovyCompiler stx:libjava 'Languages-Groovy-Compiler' 0
GroovyEvaluator GroovyEvaluator stx:libjava 'Languages-Groovy-Compiler' 0
-GroovyEvaluatorTests GroovyEvaluatorTests stx:libjava 'Languages-Groovy-Tests' 1
GroovyLanguage GroovyLanguage stx:libjava 'Languages-Groovy-Support' 1
GroovySourceFileWriter GroovySourceFileWriter stx:libjava 'Languages-Groovy-Support' 0
JavaAnnotation JavaAnnotation stx:libjava 'Languages-Java-Reader-Support' 0
@@ -11,15 +10,12 @@
JavaAnnotationDefault JavaAnnotationDefault stx:libjava 'Languages-Java-Annotations' 1
JavaAnnotationDictionary JavaAnnotationDictionary stx:libjava 'Languages-Java-Annotations' 1
JavaAnnotationValue JavaAnnotationValue stx:libjava 'Languages-Java-Reader-Support' 0
-JavaAntProjectResource JavaAntProjectResource stx:libjava 'Languages-Java-Tests' 2
JavaArray JavaArray stx:libjava 'Languages-Java-Classes' 1
JavaBooleanArray JavaBooleanArray stx:libjava 'Languages-Java-Support' 0
JavaByte JavaByte stx:libjava 'Languages-Java-Support' 0
JavaByteCodeProcessor JavaByteCodeProcessor stx:libjava 'Languages-Java-Bytecode' 0
-JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
JavaClassAccessor JavaClassAccessor stx:libjava 'Languages-Java-Classes' 0
JavaClassEnvironment JavaClassEnvironment stx:libjava 'Languages-Java-Support' 0
-JavaClassLoadingTests JavaClassLoadingTests stx:libjava 'Languages-Java-Tests-ClassLoading' 1
JavaClassQuery JavaClassQuery stx:libjava 'Languages-Java-Classes' 1
JavaClassReloader JavaClassReloader stx:libjava 'Languages-Java-Support' 0
JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
@@ -32,26 +28,18 @@
JavaDescriptor JavaDescriptor stx:libjava 'Languages-Java-Support' 0
JavaError JavaError stx:libjava 'Languages-Java-Support' 1
JavaExceptionTable JavaExceptionTable stx:libjava 'Languages-Java-Support' 0
-JavaExceptionTests JavaExceptionTests stx:libjava 'Languages-Java-Tests' 1
JavaField JavaField stx:libjava 'Languages-Java-Reader-Support' 0
JavaFinalizationRegistry JavaFinalizationRegistry stx:libjava 'Languages-Java-Support' 0
-JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
JavaInnerClasses JavaInnerClasses stx:libjava 'Languages-Java-Support' 0
-JavaJUnitTests JavaJUnitTests stx:libjava 'Languages-Java-Tests-Libraries' 1
JavaLanguage JavaLanguage stx:libjava 'Languages-Java-Support' 1
JavaLibraries JavaLibraries stx:libjava 'Languages-Java-Support' 0
-JavaLibrariesResource JavaLibrariesResource stx:libjava 'Languages-Java-Tests' 1
JavaLocalVariableTable JavaLocalVariableTable stx:libjava 'Languages-Java-Support' 0
JavaLocalVariableTableEntry JavaLocalVariableTableEntry stx:libjava 'Languages-Java-Support' 0
JavaLookup JavaLookup stx:libjava 'Languages-Java-Interop' 0
-JavaLookupResolutionAlgorithmTests JavaLookupResolutionAlgorithmTests stx:libjava 'Languages-Java-Tests-Interop' 1
-JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
JavaMetaclass JavaMetaclass stx:libjava 'Languages-Java-Classes' 0
JavaMonitor JavaMonitor stx:libjava 'Languages-Java-Support' 0
-JavaMonitorsTests JavaMonitorsTests stx:libjava 'Languages-Java-Tests' 1
JavaNameAndType2 JavaNameAndType2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaNativeMemory JavaNativeMemory stx:libjava 'Languages-Java-Support' 0
-JavaNativeMemoryTests JavaNativeMemoryTests stx:libjava 'Languages-Java-Tests' 1
JavaNioSupport JavaNioSupport stx:libjava 'Languages-Java-Support-Native' 0
JavaObject JavaObject stx:libjava 'Languages-Java-Classes' 0
JavaObjectDictionary JavaObjectDictionary stx:libjava 'Languages-Java-Support' 0
@@ -59,20 +47,15 @@
JavaPopUpView JavaPopUpView stx:libjava 'Languages-Java-Views-Support' 2
JavaProcess JavaProcess stx:libjava 'Languages-Java-Classes' 0
JavaRef2 JavaRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaRelease JavaRelease stx:libjava 'Languages-Java-Support' 1
-JavaReleaseTests JavaReleaseTests stx:libjava 'Languages-Java-Tests' 1
JavaResolver JavaResolver stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaShort JavaShort stx:libjava 'Languages-Java-Support' 0
JavaSlotIndexCache JavaSlotIndexCache stx:libjava 'Languages-Java-Support' 0
JavaSocket JavaSocket stx:libjava 'Languages-Java-Support' 0
JavaSourceCodeCache JavaSourceCodeCache stx:libjava 'Languages-Java-Support' 1
JavaSourceFileWriter JavaSourceFileWriter stx:libjava 'Languages-Java-Support' 0
-JavaTestCaseProxy JavaTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
JavaTestsLoader JavaTestsLoader stx:libjava 'Languages-Java-Tests' 0
-JavaThreadingTests JavaThreadingTests stx:libjava 'Languages-Java-Tests' 1
JavaTopView JavaTopView stx:libjava 'Languages-Java-Views-Support' 2
-JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
JavaUnresolvedCompilationError JavaUnresolvedCompilationError stx:libjava 'Languages-Java-Support' 1
JavaUnresolvedConstant JavaUnresolvedConstant stx:libjava 'Languages-Java-Reader-Support' 0
JavaUtilities JavaUtilities stx:libjava 'Languages-Java-Utilities' 0
@@ -88,7 +71,6 @@
SmalltalkAppletStub SmalltalkAppletStub stx:libjava 'Languages-Java-Views-Support' 0
stx_libjava stx_libjava stx:libjava '* Projects & Packages *' 3
GroovyMetaclass GroovyMetaclass stx:libjava 'Languages-Groovy-Classes' 0
-JUnitTestCaseProxy JUnitTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
Java Java stx:libjava 'Languages-Java-Support' 0
JavaAnnotationArrayValue JavaAnnotationArrayValue stx:libjava 'Languages-Java-Reader-Support' 0
JavaAnnotationClassValue JavaAnnotationClassValue stx:libjava 'Languages-Java-Reader-Support' 0
@@ -97,15 +79,12 @@
JavaAnnotationPrimitiveValue JavaAnnotationPrimitiveValue stx:libjava 'Languages-Java-Reader-Support' 0
JavaBehavior JavaBehavior stx:libjava 'Languages-Java-Classes' 0
JavaByteCodeDisassembler JavaByteCodeDisassembler stx:libjava 'Languages-Java-Bytecode' 0
-JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
JavaByteCodeEnumerator JavaByteCodeEnumerator stx:libjava 'Languages-Java-Support-Decompiling' 0
JavaByteCodeProcessorAdapter JavaByteCodeProcessorAdapter stx:libjava 'Languages-Java-Bytecode' 0
JavaClassAnnotationContainer JavaClassAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
JavaClassMemberRef2 JavaClassMemberRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaClassReader JavaClassReader stx:libjava 'Languages-Java-Support' 0
-JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaClassRef2 JavaClassRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaClassRegistry JavaClassRegistry stx:libjava 'Languages-Java-Support' 0
JavaCodeBundle JavaCodeBundle stx:libjava 'Languages-Java-Support-Libraries' 0
JavaCodeLibrary JavaCodeLibrary stx:libjava 'Languages-Java-Support-Libraries' 0
@@ -113,23 +92,16 @@
JavaFieldAnnotationContainer JavaFieldAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
JavaFieldDescriptor JavaFieldDescriptor stx:libjava 'Languages-Java-Support' 0
JavaFieldDescriptorWithUnionType JavaFieldDescriptorWithUnionType stx:libjava 'Languages-Java-Support' 0
-JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
-JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
-JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaInvalidRefError JavaInvalidRefError stx:libjava 'Languages-Java-Support' 1
JavaInvokeDynamic2 JavaInvokeDynamic2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaMethod JavaMethod stx:libjava 'Languages-Java-Classes' 0
JavaMethodAnnotationContainer JavaMethodAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
JavaMethodDescriptor JavaMethodDescriptor stx:libjava 'Languages-Java-Support' 0
JavaMethodHandle2 JavaMethodHandle2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaMethodType2 JavaMethodType2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaMirror JavaMirror stx:libjava 'Languages-Java-Classes' 0
JavaNativeMethodImpl_OpenJDK6 JavaNativeMethodImpl_OpenJDK6 stx:libjava 'Languages-Java-Support-Java 6' 0
-JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
-JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaStringRef2 JavaStringRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
JavaUnhandledExceptionError JavaUnhandledExceptionError stx:libjava 'Languages-Java-Support' 1
JavaUnhandledThreadDeathError JavaUnhandledThreadDeathError stx:libjava 'Languages-Java-Support' 1
JavaUnresolvedClassConstant JavaUnresolvedClassConstant stx:libjava 'Languages-Java-Reader-Support' 0
@@ -139,7 +111,6 @@
ProxyMethodGuardNode ProxyMethodGuardNode stx:libjava 'System-Compiler-Interop' 0
ProxyMethodInvocationNode ProxyMethodInvocationNode stx:libjava 'System-Compiler-Interop' 0
ProxyMethodJavaFieldAccessor ProxyMethodJavaFieldAccessor stx:libjava 'Languages-Java-Interop' 0
-TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
JavaAlienMirror JavaAlienMirror stx:libjava 'Languages-Java-Classes' 0
JavaArrayMirror JavaArrayMirror stx:libjava 'Languages-Java-Classes' 0
JavaByteCodePreresolver JavaByteCodePreresolver stx:libjava 'Languages-Java-Bytecode' 0
@@ -169,3 +140,32 @@
ProxyMethodJavaTypeCheckNode ProxyMethodJavaTypeCheckNode stx:libjava 'Languages-Java-Interop' 0
JavaNativeMethod JavaNativeMethod stx:libjava 'Languages-Java-Classes' 0
JavaNativeMethodImpl_OracleJDK8 JavaNativeMethodImpl_OracleJDK8 stx:libjava 'Languages-Java-Support-Java 8' 0
+GroovyEvaluatorTests GroovyEvaluatorTests stx:libjava 'Languages-Groovy-Tests' 1
+JUnitTestCaseProxy JUnitTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
+JavaAntProjectResource JavaAntProjectResource stx:libjava 'Languages-Java-Tests' 2
+JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
+JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
+JavaClassLoadingTests JavaClassLoadingTests stx:libjava 'Languages-Java-Tests-ClassLoading' 1
+JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaExceptionTests JavaExceptionTests stx:libjava 'Languages-Java-Tests' 1
+JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
+JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
+JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaJUnitTests JavaJUnitTests stx:libjava 'Languages-Java-Tests-Libraries' 1
+JavaLibrariesResource JavaLibrariesResource stx:libjava 'Languages-Java-Tests' 1
+JavaLookupResolutionAlgorithmTests JavaLookupResolutionAlgorithmTests stx:libjava 'Languages-Java-Tests-Interop' 1
+JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
+JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaMonitorsTests JavaMonitorsTests stx:libjava 'Languages-Java-Tests' 1
+JavaNativeMemoryTests JavaNativeMemoryTests stx:libjava 'Languages-Java-Tests' 1
+JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
+JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaReleaseTests JavaReleaseTests stx:libjava 'Languages-Java-Tests' 1
+JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaTestCaseProxy JavaTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
+JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
+JavaThreadingTests JavaThreadingTests stx:libjava 'Languages-Java-Tests' 1
+JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
+TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
--- a/experiments/Make.proto Thu Sep 18 11:56:27 2014 +0100
+++ b/experiments/Make.proto Thu Sep 18 16:13:31 2014 +0100
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/libjava/tools
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libjava
# if you need any additional defines for embedded C code,
--- a/experiments/abbrev.stc Thu Sep 18 11:56:27 2014 +0100
+++ b/experiments/abbrev.stc Thu Sep 18 16:13:31 2014 +0100
@@ -1,10 +1,7 @@
# automagically generated by the project definition
# this file is needed for stc to be able to compile modules independently.
# it provides information about a classes filename, category and especially namespace.
-Benchmarks::JavaLookup Benchmarks__JavaLookup stx:libjava/experiments 'benchmarks-Misc' 0
JavaByteCodeInterpreter JavaByteCodeInterpreter stx:libjava/experiments 'Languages-Java-Bytecode' 0
-JavaByteCodeInterpreterTests JavaByteCodeInterpreterTests stx:libjava/experiments 'Languages-Java-Tests' 1
-JavaClassReloaderTests JavaClassReloaderTests stx:libjava/experiments 'Languages-Java-Tests-ClassReloading' 1
JavaMethodWrapperCompiler JavaMethodWrapperCompiler stx:libjava/experiments 'Languages-Java-Experiments-Lookup' 0
NoReflectionObject NoReflectionObject stx:libjava/experiments 'Languages-Java-Experiments-Lookup' 0
PersonSample PersonSample stx:libjava/experiments 'Languages-Java-Experiments-Tests' 0
@@ -12,3 +9,6 @@
SetSample SetSample stx:libjava/experiments 'Languages-Java-Experiments-Tests' 0
stx_libjava_experiments stx_libjava_experiments stx:libjava/experiments '* Projects & Packages *' 3
JavaByteCodeSteppableInterpreter JavaByteCodeSteppableInterpreter stx:libjava/experiments 'Languages-Java-Bytecode' 0
+Benchmarks::JavaLookup Benchmarks__JavaLookup stx:libjava/experiments 'benchmarks-Misc' 0
+JavaByteCodeInterpreterTests JavaByteCodeInterpreterTests stx:libjava/experiments 'Languages-Java-Tests' 1
+JavaClassReloaderTests JavaClassReloaderTests stx:libjava/experiments 'Languages-Java-Tests-ClassReloading' 1
--- a/experiments/bc.mak Thu Sep 18 11:56:27 2014 +0100
+++ b/experiments/bc.mak Thu Sep 18 16:13:31 2014 +0100
@@ -34,7 +34,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libjava\tools
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libjava
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
--- a/experiments/experiments.rc Thu Sep 18 11:56:27 2014 +0100
+++ b/experiments/experiments.rc Thu Sep 18 16:13:31 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Mon, 11 Aug 2014 08:34:44 GMT\0"
+ VALUE "ProductDate", "Thu, 18 Sep 2014 14:58:34 GMT\0"
END
END
--- a/experiments/stx_libjava_experiments.st Thu Sep 18 11:56:27 2014 +0100
+++ b/experiments/stx_libjava_experiments.st Thu Sep 18 16:13:31 2014 +0100
@@ -87,7 +87,7 @@
by searching along the inheritance chain of all of my classes."
^ #(
- #'stx:libbasic' "Collection - superclass of SetSample"
+ #'stx:libbasic' "Autoload - superclass of Benchmarks::JavaLookup"
#'stx:libjava' "Java - superclass of JavaMethodWrapperCompiler"
)
!
@@ -118,7 +118,6 @@
by searching all classes (and their packages) which are referenced by my classes."
^ #(
- #'stx:libjava/tools' "JavaCompiler - referenced by JavaClassReloaderTests>>callerClass"
)
!
@@ -191,10 +190,7 @@
^ #(
"<className> or (<className> attributes...) in load order"
- (#'Benchmarks::JavaLookup' autoload)
JavaByteCodeInterpreter
- (JavaByteCodeInterpreterTests autoload)
- (JavaClassReloaderTests autoload)
JavaMethodWrapperCompiler
NoReflectionObject
PersonSample
@@ -202,6 +198,9 @@
SetSample
#'stx_libjava_experiments'
JavaByteCodeSteppableInterpreter
+ (#'Benchmarks::JavaLookup' autoload)
+ (JavaByteCodeInterpreterTests autoload)
+ (JavaClassReloaderTests autoload)
)
!
--- a/libjava.rc Thu Sep 18 11:56:27 2014 +0100
+++ b/libjava.rc Thu Sep 18 16:13:31 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\n SWING Research Group, Czech Technical University In Prague\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Tue, 12 Aug 2014 21:37:10 GMT\0"
+ VALUE "ProductDate", "Thu, 18 Sep 2014 14:58:30 GMT\0"
END
END
--- a/stx_libjava.st Thu Sep 18 11:56:27 2014 +0100
+++ b/stx_libjava.st Thu Sep 18 16:13:31 2014 +0100
@@ -315,7 +315,6 @@
JavaAnnotationDefault
JavaAnnotationDictionary
JavaAnnotationValue
- (JavaAntProjectResource autoload)
JavaArray
JavaBooleanArray
JavaByte
@@ -398,7 +397,6 @@
JavaFieldAnnotationContainer
JavaFieldDescriptor
JavaFieldDescriptorWithUnionType
- (JavaInitializedResource autoload)
JavaInvalidRefError
JavaInvokeDynamic2
JavaMethod
@@ -449,6 +447,7 @@
#'JavaNativeMethodImpl_OracleJDK8'
(GroovyEvaluatorTests autoload)
(JUnitTestCaseProxy autoload)
+ (JavaAntProjectResource autoload)
(JavaByteCodeDisassemblerTests autoload)
(JavaByteCodeProcessorTests autoload)
(JavaClassLoadingTests autoload)
@@ -457,6 +456,7 @@
(JavaExceptionTests autoload)
(JavaFieldRefTests autoload)
(JavaFreshlyInitializedResource autoload)
+ (JavaInitializedResource autoload)
(JavaInterfaceMethodRefTests autoload)
(JavaJUnitTests autoload)
(JavaLibrariesResource autoload)
--- a/tools/tools.rc Thu Sep 18 11:56:27 2014 +0100
+++ b/tools/tools.rc Thu Sep 18 16:13:31 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Tue, 12 Aug 2014 21:37:17 GMT\0"
+ VALUE "ProductDate", "Thu, 18 Sep 2014 14:58:37 GMT\0"
END
END