Issue #39: Fix interop access to public fields.
both instance and static. Reading of static fields has been
supported for while, however, writing not.
https://swing.fit.cvut.cz/projects/stx-libjava/ticket/39
--- a/JavaClass.st Tue Jul 26 10:21:31 2016 +0100
+++ b/JavaClass.st Tue Jul 26 18:01:16 2016 +0100
@@ -2173,17 +2173,14 @@
"Modified: / 21-03-2016 / 00:59:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-lookupFieldFor:fname static: searchStatic onlyPublic: publicOnly
+lookupFieldFor:fname static: searchStatic
"Lookup a field with given name in class and all
its subclasses, return an instance of JavaField
or nil, if none is found.
If searchStatic is true, static fields are searched,
otherwise it searches inst and interface fields.
-
- If publicOnly is true, only public field are searched"
-
-
+ "
| cls field |
cls := self.
@@ -2198,17 +2195,13 @@
field := cls findInstFieldByName: fname
].
field notNil ifTrue:[
- (publicOnly and:[field isPublic not]) ifTrue:[
- ^ nil
- ] ifFalse:[
- ^ field
- ]
+ ^ field
].
cls := cls superclass.
].
^nil.
- "Created: / 17-03-2012 / 16:41:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 26-07-2016 / 20:31:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
lookupMethodFor:selector
--- a/JavaLookup.st Tue Jul 26 10:21:31 2016 +0100
+++ b/JavaLookup.st Tue Jul 26 18:01:16 2016 +0100
@@ -550,8 +550,11 @@
| field |
field := initialSearchClass theNonMetaclass
lookupFieldFor: name
- static: initialSearchClass isMetaclass
- onlyPublic: true.
+ static: initialSearchClass isMetaclass.
+ "/ Disallow interop access to non-public fields.
+ (field notNil and:[field isPublic not]) ifTrue:[
+ field := nil
+ ].
field notNil ifTrue: [
method := self
compileProxyWithSelector: selector
@@ -577,7 +580,7 @@
"Modified (comment): / 02-01-2012 / 10:35:25 / kursjan <kursjan@fit.cvut.cz>"
"Modified: / 18-11-2012 / 18:17:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-12-2012 / 13:59:55 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
- "Modified: / 27-03-2016 / 23:57:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 20:48:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
lookupMethodsForSelector: selector in: initialSearchClass static: static
--- a/JavaLookupTests.st Tue Jul 26 10:21:31 2016 +0100
+++ b/JavaLookupTests.st Tue Jul 26 18:01:16 2016 +0100
@@ -486,10 +486,36 @@
!JavaLookupTests methodsFor:'tests - java lookup - fields'!
test_field_static_01
+ self javaTestClass instVarNamed:#ICONST1 put: 1.
self assert: (self javaTestClass ICONST1 == 1).
self assert: (self javaTestClass ICONST_2 == 2).
+ "/ It should not be possible to modify a final field
+ self should: [self javaTestClass ICONST1: 10] raise: NoModificationError
+
"Created: / 25-07-2016 / 23:33:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 20:48:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_field_static_02
+ self javaTestClass instVarNamed: #CHR put: $C codePoint.
+ self assert: (self javaTestClass CHR == $C).
+ self javaTestClass CHR: $X.
+ self assert: (self javaTestClass CHR == $X).
+
+ "Created: / 26-07-2016 / 08:23:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 17:21:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_field_static_03
+ | obj |
+
+ obj := self javaTestClass new.
+ self assert: (obj chr == Character null).
+ obj chr: $X.
+ self assert: (obj chr == $X).
+
+ "Created: / 26-07-2016 / 18:02:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaLookupTests methodsFor:'tests - obsolete'!
--- a/ProxyMethodJavaFieldAccessor.st Tue Jul 26 10:21:31 2016 +0100
+++ b/ProxyMethodJavaFieldAccessor.st Tue Jul 26 18:01:16 2016 +0100
@@ -20,6 +20,8 @@
"
"{ Package: 'stx:libjava' }"
+"{ NameSpace: Smalltalk }"
+
ProxyMethodNode subclass:#ProxyMethodJavaFieldAccessor
instanceVariableNames:'field'
classVariableNames:''
@@ -61,6 +63,11 @@
field:something
field := something.
+!
+
+fieldType
+ ^ (JavaDescriptor fromString:field descriptor)
+ javaClassUsingClassLoader:field javaClass classLoader
! !
!ProxyMethodJavaFieldAccessor class methodsFor:'documentation'!
--- a/ProxyMethodJavaFieldGetter.st Tue Jul 26 10:21:31 2016 +0100
+++ b/ProxyMethodJavaFieldGetter.st Tue Jul 26 18:01:16 2016 +0100
@@ -20,6 +20,8 @@
"
"{ Package: 'stx:libjava' }"
+"{ NameSpace: Smalltalk }"
+
ProxyMethodJavaFieldAccessor subclass:#ProxyMethodJavaFieldGetter
instanceVariableNames:''
classVariableNames:''
@@ -55,22 +57,28 @@
!ProxyMethodJavaFieldGetter methodsFor:'evaluating'!
-evaluateWithReceiver: receiver arguments: arguments
+evaluateWithReceiver:receiver arguments:arguments
+ | value |
- self assert: arguments size == 0.
- ^receiver instVarAt: field index
+ self assert:arguments isEmpty.
+ value := receiver instVarAt:field index.
+ ^ self fieldType javaUnwrap:value
- "Modified: / 17-03-2012 / 16:56:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 11:44:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProxyMethodJavaFieldGetter methodsFor:'generating'!
generate:compiler
+ | valueNode |
- ^(VariableNode type: #InstanceVariable name: field name)
- index: field index.
+ valueNode := (VariableNode type: #InstanceVariable name: field name)
+ index: field index.
+ ^ MessageNode receiver: (VariableNode globalNamed: self fieldType name)
+ selector: #javaUnwrap:
+ arg: valueNode
- "Modified: / 17-03-2012 / 16:59:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 11:43:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProxyMethodJavaFieldGetter class methodsFor:'documentation'!
--- a/ProxyMethodJavaFieldSetter.st Tue Jul 26 10:21:31 2016 +0100
+++ b/ProxyMethodJavaFieldSetter.st Tue Jul 26 18:01:16 2016 +0100
@@ -20,6 +20,8 @@
"
"{ Package: 'stx:libjava' }"
+"{ NameSpace: Smalltalk }"
+
ProxyMethodJavaFieldAccessor subclass:#ProxyMethodJavaFieldSetter
instanceVariableNames:''
classVariableNames:''
@@ -56,11 +58,13 @@
!ProxyMethodJavaFieldSetter methodsFor:'evaluating'!
evaluateWithReceiver:receiver arguments:arguments
-
+ field isFinal ifTrue:[
+ NoModificationError raiseErrorString:'Field ', field name , ' is final'.
+ ].
self assert: arguments size == 1.
^receiver instVarAt: field index put: arguments first.
- "Modified: / 17-03-2012 / 16:57:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 20:50:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProxyMethodJavaFieldSetter methodsFor:'generating'!
@@ -69,7 +73,22 @@
"Generate a ParseNode that evaluate myself. Used for
byte-compiling the proxies"
- ^ self shouldImplement
+ | valueNode |
+
+ field isFinal ifTrue:[
+ ^ MessageNode receiver: (VariableNode globalNamed: NoModificationError name)
+ selector: #raiseErrorString:
+ arg: (ConstantNode value: 'Field ', field name , ' is final')
+ ].
+ valueNode := MessageNode receiver: (VariableNode globalNamed: self fieldType name)
+ selector: #javaWrap:
+ arg: (compiler args at: 1).
+ ^ AssignmentNode
+ variable: ((VariableNode type: #InstanceVariable name: field name)
+ index: field index)
+ expression: valueNode
+
+ "Modified: / 26-07-2016 / 20:51:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProxyMethodJavaFieldSetter class methodsFor:'documentation'!
--- a/abbrev.stc Tue Jul 26 10:21:31 2016 +0100
+++ b/abbrev.stc Tue Jul 26 18:01:16 2016 +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,18 +10,14 @@
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
-JavaClassReloaderTests JavaClassReloaderTests stx:libjava 'Languages-Java-Tests-ClassReloading' 1
JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
JavaCompilerForSmalltalkExtensionsOnly JavaCompilerForSmalltalkExtensionsOnly stx:libjava 'Languages-Java-Support-Compiling' 0
JavaCompiler_Eclipse JavaCompiler_Eclipse stx:libjava 'Languages-Java-Tools-Eclipse' 0
@@ -33,16 +28,11 @@
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
-JavaInitializedResource JavaInitializedResource 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
@@ -50,30 +40,23 @@
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
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
@@ -89,7 +72,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
@@ -98,15 +80,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
@@ -114,22 +93,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
-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 +112,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 +141,31 @@
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
+JavaClassReloaderTests JavaClassReloaderTests stx:libjava 'Languages-Java-Tests-ClassReloading' 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' 1
+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
+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/stx_libjava.st Tue Jul 26 10:21:31 2016 +0100
+++ b/stx_libjava.st Tue Jul 26 18:01:16 2016 +0100
@@ -153,7 +153,7 @@
by searching all classes (and their packages) which are referenced by my classes."
^ #(
- #'stx:libcomp' "BlockNode - referenced by JavaNativeMethod>>numberOfArgs:"
+ #'stx:libcomp' "AssignmentNode - referenced by ProxyMethodJavaFieldSetter>>generate:"
#'stx:libhtml' "URL - referenced by JavaEmbeddedFrameView>>setupAppletFrameIn:initializeJava:"
#'stx:libtool' "DebugView - referenced by Java class>>flushClasses"
#'stx:libview2' "GIFReader - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_GifImageDecoder_parseImage:"
@@ -301,7 +301,6 @@
"<className> or (<className> attributes...) in load order"
GroovyCompiler
GroovyEvaluator
- (GroovyEvaluatorTests autoload)
GroovyLanguage
GroovySourceFileWriter
JavaAnnotation
@@ -309,18 +308,14 @@
JavaAnnotationDefault
JavaAnnotationDictionary
JavaAnnotationValue
- (JavaAntProjectResource autoload)
JavaArray
JavaBooleanArray
JavaByte
JavaByteCodeProcessor
- (JavaByteCodeProcessorTests autoload)
JavaClassAccessor
JavaClassEnvironment
- (JavaClassLoadingTests autoload)
JavaClassQuery
JavaClassReloader
- (JavaClassReloaderTests autoload)
JavaCodeLibraryOrBundle
JavaCompilerForSmalltalkExtensionsOnly
#'JavaCompiler_Eclipse'
@@ -331,16 +326,11 @@
JavaDescriptor
JavaError
JavaExceptionTable
- (JavaExceptionTests autoload)
JavaField
JavaFinalizationRegistry
- (JavaFreshlyInitializedResource autoload)
- (JavaInitializedResource autoload)
JavaInnerClasses
- (JavaJUnitTests autoload)
JavaLanguage
JavaLibraries
- (JavaLibrariesResource autoload)
JavaLocalVariableTable
JavaLocalVariableTableEntry
JavaLookup
@@ -348,30 +338,23 @@
(JavaLookupTests autoload)
JavaMetaclass
JavaMonitor
- (JavaMonitorsTests autoload)
JavaNameAndType2
JavaNativeMemory
- (JavaNativeMemoryTests autoload)
JavaNioSupport
JavaObject
JavaObjectDictionary
JavaPopUpView
JavaProcess
JavaRef2
- (JavaRefsAndConstantPoolTestCase autoload)
JavaRelease
- (JavaReleaseTests autoload)
JavaResolver
JavaShort
JavaSlotIndexCache
JavaSocket
JavaSourceCodeCache
JavaSourceFileWriter
- (JavaTestCaseProxy autoload)
JavaTestsLoader
- (JavaThreadingTests autoload)
JavaTopView
- (JavaUTF8Tests autoload)
JavaUnresolvedCompilationError
JavaUnresolvedConstant
JavaUtilities
@@ -387,7 +370,6 @@
SmalltalkAppletStub
#'stx_libjava'
GroovyMetaclass
- (JUnitTestCaseProxy autoload)
Java
JavaAnnotationArrayValue
JavaAnnotationClassValue
@@ -396,15 +378,12 @@
JavaAnnotationPrimitiveValue
JavaBehavior
JavaByteCodeDisassembler
- (JavaByteCodeDisassemblerTests autoload)
JavaByteCodeEnumerator
JavaByteCodeProcessorAdapter
JavaClassAnnotationContainer
JavaClassMemberRef2
JavaClassReader
- (JavaClassReaderTests autoload)
JavaClassRef2
- (JavaClassRefTests autoload)
JavaClassRegistry
JavaCodeBundle
JavaCodeLibrary
@@ -412,22 +391,16 @@
JavaFieldAnnotationContainer
JavaFieldDescriptor
JavaFieldDescriptorWithUnionType
- (JavaFieldRefTests autoload)
- (JavaInterfaceMethodRefTests autoload)
JavaInvalidRefError
JavaInvokeDynamic2
JavaMethod
JavaMethodAnnotationContainer
JavaMethodDescriptor
JavaMethodHandle2
- (JavaMethodRefTests autoload)
JavaMethodType2
JavaMirror
#'JavaNativeMethodImpl_OpenJDK6'
- (JavaRefMock autoload)
- (JavaRuntimeConstantPoolTests autoload)
JavaStringRef2
- (JavaTestsResource autoload)
JavaUnhandledExceptionError
JavaUnhandledThreadDeathError
JavaUnresolvedClassConstant
@@ -437,7 +410,6 @@
ProxyMethodGuardNode
ProxyMethodInvocationNode
ProxyMethodJavaFieldAccessor
- (TestletTestCaseProxy autoload)
JavaAlienMirror
JavaArrayMirror
JavaByteCodePreresolver
@@ -467,6 +439,34 @@
ProxyMethodJavaTypeCheckNode
JavaNativeMethod
#'JavaNativeMethodImpl_OracleJDK8'
+ (GroovyEvaluatorTests autoload)
+ (JUnitTestCaseProxy autoload)
+ (JavaAntProjectResource autoload)
+ (JavaByteCodeDisassemblerTests autoload)
+ (JavaByteCodeProcessorTests autoload)
+ (JavaClassLoadingTests autoload)
+ (JavaClassReaderTests autoload)
+ (JavaClassRefTests autoload)
+ (JavaClassReloaderTests autoload)
+ (JavaExceptionTests autoload)
+ (JavaFieldRefTests autoload)
+ (JavaFreshlyInitializedResource autoload)
+ (JavaInitializedResource autoload)
+ (JavaInterfaceMethodRefTests autoload)
+ (JavaJUnitTests autoload)
+ (JavaLibrariesResource autoload)
+ (JavaMethodRefTests autoload)
+ (JavaMonitorsTests autoload)
+ (JavaNativeMemoryTests autoload)
+ (JavaRefMock autoload)
+ (JavaRefsAndConstantPoolTestCase autoload)
+ (JavaReleaseTests autoload)
+ (JavaRuntimeConstantPoolTests autoload)
+ (JavaTestCaseProxy autoload)
+ (JavaTestsResource autoload)
+ (JavaThreadingTests autoload)
+ (JavaUTF8Tests autoload)
+ (TestletTestCaseProxy autoload)
)
!
@@ -672,6 +672,8 @@
'ProjectDefinition class' postLoadJavaHook
UserPreferences javaHome
UserPreferences javaHome:
+ 'Character class' javaUnwrap:
+ 'Character class' javaWrap:
)
! !
--- a/tests/java/src/stx/libjava/tests/mocks/interop/Object.java Tue Jul 26 10:21:31 2016 +0100
+++ b/tests/java/src/stx/libjava/tests/mocks/interop/Object.java Tue Jul 26 18:01:16 2016 +0100
@@ -3,6 +3,12 @@
@stx.libjava.annotation.Package("stx:libjava/tests")
public class Object implements TooGeneralInterface
{
+ public static final int ICONST1 = 1;
+ public static final int ICONST_2 = 2;
+
+ public static char CHR = 'C';
+ public char chr = '\0';
+
public char[][] events = new char[100][];
public int eventsTally = 0;