--- a/JUnitTestCaseProxy.st Sun Feb 09 17:15:54 2014 +0100
+++ b/JUnitTestCaseProxy.st Mon Feb 10 00:12:30 2014 +0100
@@ -208,13 +208,14 @@
TestResult failure
sunitSignalWith: 'Expected ' , expectedException name , ' but '
, ex class name , ' was raised, message: '
- , ex getMessage.
+ , (ex getMessage isNil ifTrue: [ '.' ] ifFalse: [ ', message: ' , ex getMessage ]).
+
].
].
TestResult failure sunitSignalWith: ex getMessage.
"Created: / 08-02-2014 / 21:31:16 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
- "Modified: / 09-02-2014 / 16:45:54 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+ "Modified: / 09-02-2014 / 21:05:06 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
performTest
@@ -225,6 +226,7 @@
assertions := SignalSet
with: (Java classForName:'java.lang.RuntimeException')
+ with: (Java classForName:'java.lang.Error')
"/ JavaVM unimplementedNativeMethodSignal is Signal, not exception.
"/ Therefore it MUST be listed here!!!!!!
with: (JavaVM unimplementedNativeMethodSignal).
@@ -240,7 +242,7 @@
"Created: / 01-03-2011 / 14:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 22-01-2014 / 14:40:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 09-02-2014 / 16:23:40 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+ "Modified: / 09-02-2014 / 18:11:56 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
! !
!JUnitTestCaseProxy class methodsFor:'documentation'!
--- a/JavaClass.st Sun Feb 09 17:15:54 2014 +0100
+++ b/JavaClass.st Mon Feb 10 00:12:30 2014 +0100
@@ -1583,18 +1583,23 @@
classInit
"Perform the initialization of a class or interface. "
-
+
| m |
(accessFlags bitAnd: ACX_INITIALIZED) ~~ 0 ifTrue: [ ^ self ].
-
- self synchronized:[
- (((accessFlags bitAnd: ACX_INITIALIZED) == 0) and:[(accessFlags bitAnd: ACX_INITIALIZING) == 0]) ifTrue: [
- accessFlags := accessFlags bitOr: ACX_INITIALIZING.
- superclass ~~ JavaObject ifTrue: [ superclass classInit ].
- "JV@2011-12-03: Also call initializeStaticFields"
- self initializeStaticFields.
- m := self compiledMethodAt: #'<clinit>()V'.
- m notNil ifTrue: [
+
+ self synchronized: [
+ | exceptions |
+ exceptions := SignalSet
+ with: (Java classForName: 'java.lang.RuntimeException')
+ with: (JavaVM unimplementedNativeMethodSignal).
+ [ (((accessFlags bitAnd: ACX_INITIALIZED) == 0)
+ and: [ (accessFlags bitAnd: ACX_INITIALIZING) == 0 ]) ifTrue: [
+ accessFlags := accessFlags bitOr: ACX_INITIALIZING.
+ superclass ~~ JavaObject ifTrue: [ superclass classInit ].
+ "JV@2011-12-03: Also call initializeStaticFields"
+ self initializeStaticFields.
+ m := self compiledMethodAt: #'<clinit>()V'.
+ m notNil ifTrue: [
"/Logger log: ('calling <clinit>()V of %1' bindWith: self name) severity: #trace facility: 'JVM'.
OrderOfClassInits notNil ifTrue: [ OrderOfClassInits add: self. ].
m
@@ -1602,12 +1607,14 @@
arguments: #()
selector: #'<clinit>()V'
search: self class
- sender: nil.
- "/Logger log: ('calling <clinit>()V of %1 done' bindWith: self name) severity: #trace facility: 'JVM'.
+ sender: nil.
+
+ "/Logger log: ('calling <clinit>()V of %1 done' bindWith: self name) severity: #trace facility: 'JVM'.
+ ].
+ accessFlags := accessFlags bitOr: ACX_INITIALIZED.
+ accessFlags := accessFlags bitAnd: ACX_INITIALIZING bitInvert32.
].
- accessFlags := accessFlags bitOr: ACX_INITIALIZED.
- accessFlags := accessFlags bitAnd: ACX_INITIALIZING bitInvert32.
- ].
+ ] on: exceptions do: [ :ex | self breakPoint: #mh. JavaVM throwExceptionInInitializerError: self name cause: ex ].
].
"
@@ -1624,7 +1631,7 @@
"Modified: / 18-08-2011 / 19:37:33 / jv"
"Modified: / 08-12-2011 / 21:05:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 08-12-2013 / 22:28:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 08-02-2014 / 18:08:05 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+ "Modified: / 09-02-2014 / 23:21:59 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
classInitInternal
--- a/JavaResolver.st Sun Feb 09 17:15:54 2014 +0100
+++ b/JavaResolver.st Mon Feb 10 00:12:30 2014 +0100
@@ -324,6 +324,12 @@
"Modified: / 13-04-2011 / 14:07:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
!
+throwNoSuchFieldException: msg
+ exceptionThrower throwNoSuchFieldException: msg.
+
+ "Created: / 09-02-2014 / 23:09:37 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
throwNoSuchMethodError
exceptionThrower throwNoSuchMethodError.
@@ -341,7 +347,8 @@
class := aJavaFieldRef classRef resolve: false.
class ifNil: [ self error: 'should not happen - tell mh' ].
result := class lookupFieldByNameAndType: aJavaFieldRef nameAndType.
- result ifNil: [ self throwNoSuchFieldException ].
+ result ifNil: [ self throwNoSuchFieldException:
+ 'No field named ' , aJavaFieldRef nameAndType printString , ' in ' , class name ].
(self
checkPermissionsForField: result
from: aJavaFieldRef classRef owner
@@ -379,6 +386,7 @@
"Created: / 11-04-2011 / 21:15:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 01-12-2012 / 13:45:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 09-02-2014 / 23:10:22 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
resolveStaticFieldIndentifiedByRef: aJavaFieldRef
--- a/JavaVM.st Sun Feb 09 17:15:54 2014 +0100
+++ b/JavaVM.st Mon Feb 10 00:12:30 2014 +0100
@@ -3667,6 +3667,15 @@
"Created: / 24-11-2010 / 09:23:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+throwExceptionInInitializerError:className cause: ex
+ ^ self
+ throwExceptionClassName:'java.lang.ExceptionInInitializerError'
+ withMessage:'error when initializing class: ' , className
+ cause: ex.
+
+ "Created: / 09-02-2014 / 17:51:25 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
throwFileNotFoundException: message
^ self
throwExceptionClassName:'java.io.FileNotFoundException'
@@ -3795,6 +3804,13 @@
"Created: / 13-04-2011 / 12:16:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
!
+throwNoSuchFieldException:msg
+ ^ self throwExceptionClassName: 'java.lang.NoSuchFieldError'
+ withMessage: msg.
+
+ "Created: / 09-02-2014 / 23:10:15 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
throwNoSuchMethodError
^ self throwExceptionClassName: 'java.lang.NoSuchMethodError'
withMessage: 'looking up a method failed'.
@@ -6587,11 +6603,12 @@
^nil
].
- self assert: cls isJavaClassRef.
+ self assert: cls isJavaClass.
a1 := cls new: dim1.
^ a1.
"Created: / 28-01-2014 / 10:02:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 09-02-2014 / 23:53:05 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
_MULTIANEWARRAY1_R: clsRef _: dim1
--- a/abbrev.stc Sun Feb 09 17:15:54 2014 +0100
+++ b/abbrev.stc Mon Feb 10 00:12:30 2014 +0100
@@ -14,11 +14,14 @@
JavaArray JavaArray stx:libjava 'Languages-Java-Classes' 1
JavaBooleanArray JavaBooleanArray stx:libjava 'Languages-Java-Support' 0
JavaByte JavaByte stx:libjava 'Languages-Java-Support' 0
+JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
JavaByteCodeProcessor JavaByteCodeProcessor stx:libjava 'Languages-Java-Bytecode' 0
JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
JavaClassAccessor JavaClassAccessor stx:libjava 'Languages-Java-Classes' 0
JavaClassLoadingTests JavaClassLoadingTests stx:libjava 'Languages-Java-Tests-ClassLoading' 1
JavaClassQuery JavaClassQuery stx:libjava 'Languages-Java-Classes' 1
+JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaClassReloader JavaClassReloader stx:libjava 'Languages-Java-Support' 0
JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
JavaCompilerForSmalltalkExtensionsOnly JavaCompilerForSmalltalkExtensionsOnly stx:libjava 'Languages-Java-Support-Compiling' 0
@@ -32,9 +35,11 @@
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
+JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaFinalizationRegistry JavaFinalizationRegistry stx:libjava 'Languages-Java-Support' 0
JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
JavaInnerClasses JavaInnerClasses stx:libjava 'Languages-Java-Support' 0
+JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
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
@@ -46,6 +51,7 @@
JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
JavaLookupTestsResource JavaLookupTestsResource stx:libjava 'Languages-Java-Tests-Interop' 3
JavaMetaclass JavaMetaclass stx:libjava 'Languages-Java-Classes' 0
+JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
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
@@ -58,9 +64,11 @@
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
+JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaRelease JavaRelease stx:libjava 'Languages-Java-Support' 1
JavaResolver JavaResolver stx:libjava 'Languages-Java-Reader-Support-new' 0
+JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaShort JavaShort stx:libjava 'Languages-Java-Support' 0
JavaSlotIndexCache JavaSlotIndexCache stx:libjava 'Languages-Java-Support' 0
JavaSocket JavaSocket stx:libjava 'Languages-Java-Support' 0
@@ -81,6 +89,7 @@
ProxyMethodNode ProxyMethodNode stx:libjava 'System-Compiler-Interop' 0
SmalltalkAppletContext SmalltalkAppletContext stx:libjava 'Languages-Java-Views-Support' 0
SmalltalkAppletStub SmalltalkAppletStub stx:libjava 'Languages-Java-Views-Support' 0
+TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
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
@@ -92,15 +101,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
@@ -108,18 +114,13 @@
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
JavaMethod JavaMethod stx:libjava 'Languages-Java-Classes' 0
JavaMethodAnnotationContainer JavaMethodAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
JavaMethodDescriptor JavaMethodDescriptor stx:libjava 'Languages-Java-Support' 0
-JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaMirror JavaMirror stx:libjava 'Languages-Java-Classes' 0
JavaNativeMethodImpl_OpenJDK6 JavaNativeMethodImpl_OpenJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 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
@@ -130,7 +131,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
--- a/libjava.rc Sun Feb 09 17:15:54 2014 +0100
+++ b/libjava.rc Mon Feb 10 00:12:30 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.3.0\0"
- VALUE "ProductDate", "Sun, 09 Feb 2014 15:46:22 GMT\0"
+ VALUE "ProductDate", "Sun, 09 Feb 2014 23:09:36 GMT\0"
END
END
--- a/stx_libjava.st Sun Feb 09 17:15:54 2014 +0100
+++ b/stx_libjava.st Mon Feb 10 00:12:30 2014 +0100
@@ -320,11 +320,14 @@
JavaArray
JavaBooleanArray
JavaByte
+ (JavaByteCodeDisassemblerTests autoload)
JavaByteCodeProcessor
(JavaByteCodeProcessorTests autoload)
JavaClassAccessor
(JavaClassLoadingTests autoload)
JavaClassQuery
+ (JavaClassReaderTests autoload)
+ (JavaClassRefTests autoload)
JavaClassReloader
JavaCodeLibraryOrBundle
JavaCompilerForSmalltalkExtensionsOnly
@@ -338,9 +341,11 @@
JavaExceptionTable
(JavaExceptionTests autoload)
JavaField
+ (JavaFieldRefTests autoload)
JavaFinalizationRegistry
(JavaFreshlyInitializedResource autoload)
JavaInnerClasses
+ (JavaInterfaceMethodRefTests autoload)
(JavaJUnitTests autoload)
JavaLanguage
JavaLibraries
@@ -352,6 +357,7 @@
(JavaLookupTests autoload)
(JavaLookupTestsResource autoload)
JavaMetaclass
+ (JavaMethodRefTests autoload)
JavaMonitor
(JavaMonitorsTests autoload)
JavaNameAndType2
@@ -364,9 +370,11 @@
JavaPopUpView
JavaProcess
JavaRef2
+ (JavaRefMock autoload)
(JavaRefsAndConstantPoolTestCase autoload)
JavaRelease
JavaResolver
+ (JavaRuntimeConstantPoolTests autoload)
JavaShort
JavaSlotIndexCache
JavaSocket
@@ -387,6 +395,7 @@
ProxyMethodNode
SmalltalkAppletContext
SmalltalkAppletStub
+ (TestletTestCaseProxy autoload)
#'stx_libjava'
GroovyMetaclass
(JUnitTestCaseProxy autoload)
@@ -398,15 +407,12 @@
JavaAnnotationPrimitiveValue
JavaBehavior
JavaByteCodeDisassembler
- (JavaByteCodeDisassemblerTests autoload)
JavaByteCodeEnumerator
JavaByteCodeProcessorAdapter
JavaClassAnnotationContainer
JavaClassMemberRef2
JavaClassReader
- (JavaClassReaderTests autoload)
JavaClassRef2
- (JavaClassRefTests autoload)
JavaClassRegistry
JavaCodeBundle
JavaCodeLibrary
@@ -414,18 +420,13 @@
JavaFieldAnnotationContainer
JavaFieldDescriptor
JavaFieldDescriptorWithUnionType
- (JavaFieldRefTests autoload)
(JavaInitializedResource autoload)
- (JavaInterfaceMethodRefTests autoload)
JavaInvalidRefError
JavaMethod
JavaMethodAnnotationContainer
JavaMethodDescriptor
- (JavaMethodRefTests autoload)
JavaMirror
#'JavaNativeMethodImpl_OpenJDK6'
- (JavaRefMock autoload)
- (JavaRuntimeConstantPoolTests autoload)
JavaStringRef2
(JavaTestsResource autoload)
JavaUnhandledExceptionError
@@ -436,7 +437,6 @@
ProxyMethodGuardNode
ProxyMethodInvocationNode
ProxyMethodJavaFieldAccessor
- (TestletTestCaseProxy autoload)
JavaAlienMirror
JavaArrayMirror
JavaByteCodePreresolver