[vwnc] [ANN] JNIPort for VisualWorks 1.0

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] [ANN] JNIPort for VisualWorks 1.0

Niels Duineveld
Joachim,
I'm trying to get the new JNIPort working in a 64 bits VisualWorks 7.7 image.
Have you used JNIPort in a 64 bits environment yourself? Is it possible?
Currently I can start a 64 bits JVM only if I use 'Do not generate ghost classes'.
But I get errors if I try to find a java class.
Any ideas?

Regards,
Niels Duineveld

--
------------------------------
AG5
Timorplein 37
1094 CC Amsterdam
www.ag5.nl

Tel: 020-4630942
Fax: 020-4630946

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

Joachim Geidel
Niels,

Apparently my answer got lost in the intertubes, maybe a problem with the
webmailer I used.

Am 10.08.09 11:39 schrieb Niels Duineveld:
> I'm trying to get the new JNIPort working in a 64 bits VisualWorks 7.7 image.
> Have you used JNIPort in a 64 bits environment yourself? Is it possible?

No, I haven't tried this yet. As far as I understand the VW installer, 64
bit VW VMs are available for Linux and Solaris only (is this right?). I only
have a 32 bit Ubuntu installed so far.

> Currently I can start a 64 bits JVM only if I use 'Do not generate ghost
> classes'.
> But I get errors if I try to find a java class.
> Any ideas?

I have some questions, as I do not yet understand what the problem is:

- Do you have the same problem with a 32 bit VisualWorks, a 32 bit JVM and
the same configuration?

- What kind of errors do you get when trying to find a Java class:
VisualWorks exceptions, Java Exceptions, or VM crashes? Could you send a
stack trace (if possible)?

- What kinds of errors do you get when you activate ghost class generation?

- If it is a VM crash or a "class not found" exception: Is the classpath
correct? I have had (J)VM crashes when a Java VM loaded classes from a
different version of the JRE, e.g. a Java 6 VM loading classes from a JRE
1.5.

- Please check the pages on debugging and on monitoring a JVM at the JNIPort
wiki (http://jniport.wikispaces.com). If you experience "class not found"
errors or JVM crashes, monitor the class loading as described in the example
code for monitoring a JVM to make sure that the class path is correct.

Best regards,
Joachim Geidel


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

Andres Valloud-4
There are supported 64 bit VMs for Linux64/x86 and Solaris64/SPARC.  
There's also an unsupported Solaris64/x86 VM which should work on par
with the other two, reliability wise.


Joachim Geidel wrote:

> Niels,
>
> Apparently my answer got lost in the intertubes, maybe a problem with the
> webmailer I used.
>
> Am 10.08.09 11:39 schrieb Niels Duineveld:
>  
>> I'm trying to get the new JNIPort working in a 64 bits VisualWorks 7.7 image.
>> Have you used JNIPort in a 64 bits environment yourself? Is it possible?
>>    
>
> No, I haven't tried this yet. As far as I understand the VW installer, 64
> bit VW VMs are available for Linux and Solaris only (is this right?). I only
> have a 32 bit Ubuntu installed so far.
>
>  
>> Currently I can start a 64 bits JVM only if I use 'Do not generate ghost
>> classes'.
>> But I get errors if I try to find a java class.
>> Any ideas?
>>    
>
> I have some questions, as I do not yet understand what the problem is:
>
> - Do you have the same problem with a 32 bit VisualWorks, a 32 bit JVM and
> the same configuration?
>
> - What kind of errors do you get when trying to find a Java class:
> VisualWorks exceptions, Java Exceptions, or VM crashes? Could you send a
> stack trace (if possible)?
>
> - What kinds of errors do you get when you activate ghost class generation?
>
> - If it is a VM crash or a "class not found" exception: Is the classpath
> correct? I have had (J)VM crashes when a Java VM loaded classes from a
> different version of the JRE, e.g. a Java 6 VM loading classes from a JRE
> 1.5.
>
> - Please check the pages on debugging and on monitoring a JVM at the JNIPort
> wiki (http://jniport.wikispaces.com). If you experience "class not found"
> errors or JVM crashes, monitor the class loading as described in the example
> code for monitoring a JVM to make sure that the class path is correct.
>
> Best regards,
> Joachim Geidel
>
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
> .
>
>  
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

Boris Popov, DeepCove Labs (SNN)
In reply to this post by Niels Duineveld
Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

When is Windows due?

-Boris (via BlackBerry)

----- Original Message -----
From: [hidden email] <[hidden email]>
To: Visualworks Mailing List <[hidden email]>
Sent: Mon Aug 10 17:09:32 2009
Subject: Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

There are supported 64 bit VMs for Linux64/x86 and Solaris64/SPARC. 
There's also an unsupported Solaris64/x86 VM which should work on par
with the other two, reliability wise.


Joachim Geidel wrote:
> Niels,
>
> Apparently my answer got lost in the intertubes, maybe a problem with the
> webmailer I used.
>
> Am 10.08.09 11:39 schrieb Niels Duineveld:
>  
>> I'm trying to get the new JNIPort working in a 64 bits VisualWorks 7.7 image.
>> Have you used JNIPort in a 64 bits environment yourself? Is it possible?
>>    
>
> No, I haven't tried this yet. As far as I understand the VW installer, 64
> bit VW VMs are available for Linux and Solaris only (is this right?). I only
> have a 32 bit Ubuntu installed so far.
>
>  
>> Currently I can start a 64 bits JVM only if I use 'Do not generate ghost
>> classes'.
>> But I get errors if I try to find a java class.
>> Any ideas?
>>    
>
> I have some questions, as I do not yet understand what the problem is:
>
> - Do you have the same problem with a 32 bit VisualWorks, a 32 bit JVM and
> the same configuration?
>
> - What kind of errors do you get when trying to find a Java class:
> VisualWorks exceptions, Java Exceptions, or VM crashes? Could you send a
> stack trace (if possible)?
>
> - What kinds of errors do you get when you activate ghost class generation?
>
> - If it is a VM crash or a "class not found" exception: Is the classpath
> correct? I have had (J)VM crashes when a Java VM loaded classes from a
> different version of the JRE, e.g. a Java 6 VM loading classes from a JRE
> 1.5.
>
> - Please check the pages on debugging and on monitoring a JVM at the JNIPort
> wiki (http://jniport.wikispaces.com). If you experience "class not found"
> errors or JVM crashes, monitor the class loading as described in the example
> code for monitoring a JVM to make sure that the class path is correct.
>
> Best regards,
> Joachim Geidel
>
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
> .
>
>  
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

Niels Duineveld
In reply to this post by Joachim Geidel
Joachim,
Currently there are two problems.
First of all, the jvm is started, but without any arguments. No classpath, no runtime settings, etc. If I inspect the properties of java.lang.System, it shows none of my settings.
The other problem is with the way objectpointers are stored in the JNIValueArray. I included a stacktrace of this problem. If I modify objectAt:put: in JNIValueArray to use unsignedLongLongAt: put: instead of unsignedLongAt:put:, the exception no longer occurs, but I'm not entirely sure this is the correct solution.

I will try to set the classpath and other settings using environment variables, so I can at least verify if the rest of JNIPort works (hopefully with dynamic generated ghost classes, but otherwise with static predefined wrapper classes).

Niels


Unhandled exception: Improper store into indexable object (08/11/2009 8:44:46.441)
UninterpretedBytes(Object)>>improperStoreError
UninterpretedBytes(Object)>>basicAt:put:
UninterpretedBytes>>byteAt:put:
UninterpretedBytes>>unsignedLongAt:put:bigEndian:
UninterpretedBytes>>unsignedLongAt:put:
JNIPort.JNIValueArray>>objectAt:put:
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>identityHash:
JNIPort.JavaClassRegistry(JNIPort.JavaObjectRegistry)>>hashFor:
JNIPort.SetWithComparisonPolicy>>findElementOrNil:
JNIPort.SetWithComparisonPolicy(Set)>>findElementLike:ifAbsent:
JNIPort.SetWithComparisonPolicy(Set)>>findElement:ifAbsent:
JNIPort.JavaClassRegistry>>findOrRelease:ifAbsentPut:
JNIPort.StaticJavaLangClass>>wrapJNIObject:
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>wrapJNIClass:
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>findClassFor:
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>wrapJNIObject:
JNIPort.JavaLangClass(JNIPort.JavaClassInstance)>>callObjectMID:withArguments:wrapperFactory:
JNIPort.JavaLangClass(JNIPort.JavaObject)>>callObjectMID:withArguments:
JNIPort.JavaLangClass(JNIPort.JavaObject)>>callObjectMID:
JNIPort.JavaLangClass(JNIPort.JavaObject)>>callObjectMethod:signature:
JNIPort.JavaLangClass>>getDeclaredFields_null
JNIPort.JavaLangClass>>declaredFields
java.lang.Exception.static(JNIPort.JavaStatic)>>fields
java.lang.Exception.static(JNIPort.JavaStatic)>>fieldsPlusInterfaceFields
java.lang.Exception.static(JNIPort.JavaStatic)>>allFields
JNIPort.JavaStaticWrapperGenerator>>getters
JNIPort.JavaStaticWrapperGenerator(JNIPort.JavaClassWrapperGenerator)>>memberMethodGenerators
JNIPort.JavaStaticWrapperGenerator(JNIPort.JavaClassWrapperGenerator)>>methodGenerators
JNIPort.JavaGhostClassInstaller(JNIPort.JavaClassWrapperInstaller)>>methodGenerators
optimized [] in JNIPort.JavaClassWrapperInstaller>>install
BlockClosure>>ensure:
JNIPort.JavaGhostClassInstaller(JNIPort.JavaClassWrapperInstaller)>>install
java.lang.Exception.static(JNIPort.JavaStatic)>>useGhostClasses
JNIPort.JVMGhostClassMaker>>enghost:
optimized [] in JNIPort.JVMGhostClassMaker>>enghostAll:
OrderedCollection>>do:
JNIPort.JVMGhostClassMaker>>enghostAll:
JNIPort.JVMGhostClassMaker>>onJmvInitialized:
optimized [] in JNIPort.JVM>>notifyLive
OrderedCollection>>do:
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>notifyLive
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>initializeFromSettings:
JNIPort.JVM class>>newWithSettings:
JNIPort.JVM class>>newWithSettingsNamed:
FX.Aspose class>>jvm
UndefinedObject>>unboundMethod
UndefinedObject(Object)>>performMethod:arguments:
UndefinedObject(Object)>>performMethod:
HighlightingTextEditorController(ParagraphEditor)>>evaluateCompiled:
optimized [] in ParagraphEditor>>evaluateSelection
BlockClosure>>ensure:
Cursor>>showWhile:doDebug:
Cursor>>showWhile:
HighlightingTextEditorController(ParagraphEditor)>>evaluateSelection
optimized [] in ParagraphEditor>>doIt
BlockClosure>>on:do:
HighlightingTextEditorController(ParagraphEditor)>>doIt
HighlightingTextEditorController(ParagraphEditor)>>performCommand:
HighlightingTextEditorController(ParagraphEditor)>>doItKey:
HighlightingTextEditorController(ParagraphEditor)>>doItOrDisplayDateKey:
optimized [] in TextEditorController>>processKeyboardEvent:
DispatchTable>>add:do:
HighlightingTextEditorController(TextEditorController)>>processKeyboardEvent:
HighlightingTextEditorController(Controller)>>keyPressedEvent:
KeyPressedEvent>>dispatchTo:
HighlightingTextEditorController(ControllerWithMenu)>>handleEvent:
[] in [] in KeyboardProcessor>>processKeyboardEvent:
BlockClosure>>cull:
HighlightingTextEditorController(Object)>>ifNotNil:
[] in KeyboardProcessor>>processKeyboardEvent:
BlockClosure>>cull:
HighlightingTextEditorController(Object)>>ifNotNil:
KeyboardProcessor>>processKeyboardEvent:
KeyboardProcessor>>processKeyboardEvent:for:
EventDispatcher>>dispatchEvent:
KeyPressedEvent(Event)>>dispatch
KeyPressedEvent(Event)>>dispatchForWindowManager:
optimized [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>on:do:
WindowManager>>safelyDispatchForWindowManager:
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
UninterpretedBytes(Object)>>improperStoreError
Receiver:
    an UninterpretedBytes
Context PC = 9

----------------------------------------------------------------------
UninterpretedBytes(Object)>>basicAt:put:
Receiver:
    an UninterpretedBytes
Arguments:
    t1 = 4
    t2 = 8384956
Context PC = 31

----------------------------------------------------------------------
UninterpretedBytes>>byteAt:put:
Receiver:
    an UninterpretedBytes
Arguments:
    t1 = 4
    t2 = 8384956
Context PC = 6

----------------------------------------------------------------------
UninterpretedBytes>>unsignedLongAt:put:bigEndian:
Receiver:
    an UninterpretedBytes
Arguments:
    t1 = 1
    t2 = 140676218006344
    t3 = false
Temporaries:
    t4 = 8384956
    t5 = 0
    t6 = 171
    t7 = 72
Context PC = 76

----------------------------------------------------------------------
UninterpretedBytes>>unsignedLongAt:put:
Receiver:
    an UninterpretedBytes
Arguments:
    t1 = 1
    t2 = 140676218006344
Context PC = 14

----------------------------------------------------------------------
JNIPort.JNIValueArray>>objectAt:put:
Receiver:
    a JNIPort.JNIValueArray
Instance Variables:
    bytes = an UninterpretedBytes
Arguments:
    anIndex = 1
    aJNIObjectOrNil = a CCompositePointer {7FF1BC00AB48} (jclass)
Context PC = 16

----------------------------------------------------------------------
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>identityHash:
Receiver:
    a JNIPort.JVMWithoutCallbacks
Instance Variables:
    name = 'Aspose JVM'
    status = #Running
    javaVM = a JNIPort.JavaVM <a CPointer {7FF20E935520} (const struct JNIInvokeInterface_ * * )>
    jniEnv = a JNIPort.JNIEnv <a CPointer {013DB5E0} (const struct JNINativeInterface_ * * )>
    library = a JNIPort.JNIInterface
    jniHelper = nil
    sharedMutex = a RecursionLock
    settings = a JNIPort.JVMSettings('Aspose JVM')
    classRegistry = a JNIPort.JavaClassRegistry
    classIndex = a JNIPort.JavaClassIndex
    rawJavaLangSystem = a JNIPort.JNIClass <a CCompositePointer {130DD768} (jobject)>
    rawJavaLangObject = a JNIPort.JNIClass <a CCompositePointer {130DD758} (jobject)>
    rawJavaLangClass = a JNIPort.JNIClass <a CCompositePointer {130DD760} (jobject)>
    isArrayMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E89} (jmethodID)>
    isInterfaceMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E8D} (jmethodID)>
    identityHashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC001A73} (jmethodID)>
    hashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A010} (jmethodID)>
    equalsMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A019} (jmethodID)>
    hasJava5Extensions = true
    externalCallbacks = an OrderedCollection[0]
    localCapacity = 1000
    localCount = 6
    globalCount = 68
    objectsCreated = 351
    objectsReleased = 277
    watchers = an OrderedCollection[1]
    supplementaryClassloaders = nil
    objectRegistry = a HandleRegistry[6]
    eventHandlers = nil
Arguments:
    aJavaObjectOrJNIObject = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
Temporaries:
    args = nil
Context PC = 9

----------------------------------------------------------------------
JNIPort.JavaClassRegistry(JNIPort.JavaObjectRegistry)>>hashFor:
Receiver:
    a JNIPort.JavaClassRegistry
Instance Variables:
    jvm = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
    registry = a JNIPort.SetWithComparisonPolicy[68]
    sharedMutex = a RecursionLock
    javaLangClass = a JNIPort.StaticJavaLangClass
    javaLangObject = a JNIPort.StaticJavaLangObject
    javaLangString = a JNIPort.StaticJavaLangObject
    javaLangThrowable = a JNIPort.StaticJavaLangThrowable
    notificationQueue = nil
    eventHandlers = nil
Arguments:
    aJavaObjectOrJNIObject = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
Context PC = 7

----------------------------------------------------------------------
JNIPort.SetWithComparisonPolicy>>findElementOrNil:
Receiver:
    a JNIPort.SetWithComparisonPolicy
Instance Variables:
    tally = 68
    comparisonPolicy = a JNIPort.JavaClassRegistry
Arguments:
    anObject = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
Temporaries:
    index = nil
    length = 137
    probe = nil
    pass = 1
Context PC = 13

----------------------------------------------------------------------
JNIPort.SetWithComparisonPolicy(Set)>>findElementLike:ifAbsent:
Receiver:
    a JNIPort.SetWithComparisonPolicy
Instance Variables:
    tally = 68
    comparisonPolicy = a JNIPort.JavaClassRegistry
Arguments:
    t1 = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
    t2 = BlockClosure [] in JNIPort.JavaClassRegistry>>findOrRelease:ifAbsentPut:
Temporaries:
    t3 = nil
    t4 = nil
Context PC = 5

----------------------------------------------------------------------
JNIPort.SetWithComparisonPolicy(Set)>>findElement:ifAbsent:
Receiver:
    a JNIPort.SetWithComparisonPolicy
Instance Variables:
    tally = 68
    comparisonPolicy = a JNIPort.JavaClassRegistry
Arguments:
    anObject = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
    aZeroArgumentBlock = BlockClosure [] in JNIPort.JavaClassRegistry>>findOrRelease:ifAbsentPut:
Context PC = 6

----------------------------------------------------------------------
JNIPort.JavaClassRegistry>>findOrRelease:ifAbsentPut:
Receiver:
    a JNIPort.JavaClassRegistry
Instance Variables:
    jvm = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
    registry = a JNIPort.SetWithComparisonPolicy[68]
    sharedMutex = a RecursionLock
    javaLangClass = a JNIPort.StaticJavaLangClass
    javaLangObject = a JNIPort.StaticJavaLangObject
    javaLangString = a JNIPort.StaticJavaLangObject
    javaLangThrowable = a JNIPort.StaticJavaLangThrowable
    notificationQueue = nil
    eventHandlers = nil
Arguments:
    aJNIClass = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
    a0Block = BlockClosure [] in JNIPort.StaticJavaLangClass>>wrapJNIObject:
Temporaries:
    previous = nil
Context PC = 5

----------------------------------------------------------------------
JNIPort.StaticJavaLangClass>>wrapJNIObject:
Receiver:
    a JNIPort.StaticJavaLangClass
Instance Variables:
    eventHandlers = nil
    jvm = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
    classObject = a JNIPort.JavaLangClass
    javaSuperclass = a JNIPort.StaticJavaLangObject
    instanceClass = JNIPort.JavaLangClass
    registry = a JNIPort.JavaClassRegistry
    allInstancesAreCanonical = false
Arguments:
    aJNIClass = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
Temporaries:
    jniClass = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
Context PC = 16

----------------------------------------------------------------------
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>wrapJNIClass:
Receiver:
    a JNIPort.JVMWithoutCallbacks
Instance Variables:
    name = 'Aspose JVM'
    status = #Running
    javaVM = a JNIPort.JavaVM <a CPointer {7FF20E935520} (const struct JNIInvokeInterface_ * * )>
    jniEnv = a JNIPort.JNIEnv <a CPointer {013DB5E0} (const struct JNINativeInterface_ * * )>
    library = a JNIPort.JNIInterface
    jniHelper = nil
    sharedMutex = a RecursionLock
    settings = a JNIPort.JVMSettings('Aspose JVM')
    classRegistry = a JNIPort.JavaClassRegistry
    classIndex = a JNIPort.JavaClassIndex
    rawJavaLangSystem = a JNIPort.JNIClass <a CCompositePointer {130DD768} (jobject)>
    rawJavaLangObject = a JNIPort.JNIClass <a CCompositePointer {130DD758} (jobject)>
    rawJavaLangClass = a JNIPort.JNIClass <a CCompositePointer {130DD760} (jobject)>
    isArrayMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E89} (jmethodID)>
    isInterfaceMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E8D} (jmethodID)>
    identityHashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC001A73} (jmethodID)>
    hashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A010} (jmethodID)>
    equalsMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A019} (jmethodID)>
    hasJava5Extensions = true
    externalCallbacks = an OrderedCollection[0]
    localCapacity = 1000
    localCount = 6
    globalCount = 68
    objectsCreated = 351
    objectsReleased = 277
    watchers = an OrderedCollection[1]
    supplementaryClassloaders = nil
    objectRegistry = a HandleRegistry[6]
    eventHandlers = nil
Arguments:
    aJNIClass = a JNIPort.JNIClass <a CCompositePointer {7FF1BC00AB48} (jclass)>
Context PC = 5

----------------------------------------------------------------------
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>findClassFor:
Receiver:
    a JNIPort.JVMWithoutCallbacks
Instance Variables:
    name = 'Aspose JVM'
    status = #Running
    javaVM = a JNIPort.JavaVM <a CPointer {7FF20E935520} (const struct JNIInvokeInterface_ * * )>
    jniEnv = a JNIPort.JNIEnv <a CPointer {013DB5E0} (const struct JNINativeInterface_ * * )>
    library = a JNIPort.JNIInterface
    jniHelper = nil
    sharedMutex = a RecursionLock
    settings = a JNIPort.JVMSettings('Aspose JVM')
    classRegistry = a JNIPort.JavaClassRegistry
    classIndex = a JNIPort.JavaClassIndex
    rawJavaLangSystem = a JNIPort.JNIClass <a CCompositePointer {130DD768} (jobject)>
    rawJavaLangObject = a JNIPort.JNIClass <a CCompositePointer {130DD758} (jobject)>
    rawJavaLangClass = a JNIPort.JNIClass <a CCompositePointer {130DD760} (jobject)>
    isArrayMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E89} (jmethodID)>
    isInterfaceMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E8D} (jmethodID)>
    identityHashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC001A73} (jmethodID)>
    hashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A010} (jmethodID)>
    equalsMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A019} (jmethodID)>
    hasJava5Extensions = true
    externalCallbacks = an OrderedCollection[0]
    localCapacity = 1000
    localCount = 6
    globalCount = 68
    objectsCreated = 351
    objectsReleased = 277
    watchers = an OrderedCollection[1]
    supplementaryClassloaders = nil
    objectRegistry = a HandleRegistry[6]
    eventHandlers = nil
Arguments:
    aJNIObject = a JNIPort.JNIObject <a CCompositePointer {7FF1BC00AB40} (jobject)>
Context PC = 7

----------------------------------------------------------------------
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>wrapJNIObject:
Receiver:
    a JNIPort.JVMWithoutCallbacks
Instance Variables:
    name = 'Aspose JVM'
    status = #Running
    javaVM = a JNIPort.JavaVM <a CPointer {7FF20E935520} (const struct JNIInvokeInterface_ * * )>
    jniEnv = a JNIPort.JNIEnv <a CPointer {013DB5E0} (const struct JNINativeInterface_ * * )>
    library = a JNIPort.JNIInterface
    jniHelper = nil
    sharedMutex = a RecursionLock
    settings = a JNIPort.JVMSettings('Aspose JVM')
    classRegistry = a JNIPort.JavaClassRegistry
    classIndex = a JNIPort.JavaClassIndex
    rawJavaLangSystem = a JNIPort.JNIClass <a CCompositePointer {130DD768} (jobject)>
    rawJavaLangObject = a JNIPort.JNIClass <a CCompositePointer {130DD758} (jobject)>
    rawJavaLangClass = a JNIPort.JNIClass <a CCompositePointer {130DD760} (jobject)>
    isArrayMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E89} (jmethodID)>
    isInterfaceMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E8D} (jmethodID)>
    identityHashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC001A73} (jmethodID)>
    hashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A010} (jmethodID)>
    equalsMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A019} (jmethodID)>
    hasJava5Extensions = true
    externalCallbacks = an OrderedCollection[0]
    localCapacity = 1000
    localCount = 6
    globalCount = 68
    objectsCreated = 351
    objectsReleased = 277
    watchers = an OrderedCollection[1]
    supplementaryClassloaders = nil
    objectRegistry = a HandleRegistry[6]
    eventHandlers = nil
Arguments:
    aJNIObject = a JNIPort.JNIObject <a CCompositePointer {7FF1BC00AB40} (jobject)>
Context PC = 9

----------------------------------------------------------------------
JNIPort.JavaLangClass(JNIPort.JavaClassInstance)>>callObjectMID:withArguments:wrapperFactory:
Receiver:
    a JNIPort.JavaLangClass
Instance Variables:
    eventHandlers = nil
    static = a JNIPort.StaticJavaLangClass
    javaIdentityHash = nil
    jniObject = a JNIPort.JNIClass <a CCompositePointer {131781F8} (jobject)>
    nameCache = 'java.lang.Exception'
    declaredInCache = nil
    declaredInCacheIsValid = nil
    modifiersCache = 1
    classStatic = a java.lang.Exception.static
Arguments:
    aMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E5F} (jmethodID)>
    aJNIValueArray = nil
    aJVMOrJavaStatic = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
Temporaries:
    answer = a JNIPort.JNIObject <a CCompositePointer {7FF1BC00AB40} (jobject)>
Context PC = 17

----------------------------------------------------------------------
JNIPort.JavaLangClass(JNIPort.JavaObject)>>callObjectMID:withArguments:
Receiver:
    a JNIPort.JavaLangClass
Instance Variables:
    eventHandlers = nil
    static = a JNIPort.StaticJavaLangClass
    javaIdentityHash = nil
    jniObject = a JNIPort.JNIClass <a CCompositePointer {131781F8} (jobject)>
    nameCache = 'java.lang.Exception'
    declaredInCache = nil
    declaredInCacheIsValid = nil
    modifiersCache = 1
    classStatic = a java.lang.Exception.static
Arguments:
    aMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E5F} (jmethodID)>
    aJNIValueArray = nil
Context PC = 9

----------------------------------------------------------------------
JNIPort.JavaLangClass(JNIPort.JavaObject)>>callObjectMID:
Receiver:
    a JNIPort.JavaLangClass
Instance Variables:
    eventHandlers = nil
    static = a JNIPort.StaticJavaLangClass
    javaIdentityHash = nil
    jniObject = a JNIPort.JNIClass <a CCompositePointer {131781F8} (jobject)>
    nameCache = 'java.lang.Exception'
    declaredInCache = nil
    declaredInCacheIsValid = nil
    modifiersCache = 1
    classStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
Arguments:
    aMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E5F} (jmethodID)>
Context PC = 6

----------------------------------------------------------------------
JNIPort.JavaLangClass(JNIPort.JavaObject)>>callObjectMethod:signature:
Receiver:
    a JNIPort.JavaLangClass
Instance Variables:
    eventHandlers = nil
    static = public final java.lang.Class
Instance class: JNIPort.JavaLangClass
Static class: JNIPort.StaticJavaLangClass
Partly canonical (68 registered)
    javaIdentityHash = nil
    jniObject = a JNIPort.JNIClass <a CCompositePointer {131781F8} (jobject)>
    nameCache = 'java.lang.Exception'
    declaredInCache = nil
    declaredInCacheIsValid = nil
    modifiersCache = 1
    classStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
Arguments:
    aStringName = 'getDeclaredFields'
    aJNISignature = '()[Ljava/lang/reflect/Field;'
Context PC = 9

----------------------------------------------------------------------
JNIPort.JavaLangClass>>getDeclaredFields_null
Receiver:
    a JNIPort.JavaLangClass
Instance Variables:
    eventHandlers = nil
    static = public final java.lang.Class
Instance class: JNIPort.JavaLangClass
Static class: JNIPort.StaticJavaLangClass
Partly canonical (68 registered)
    javaIdentityHash = nil
    jniObject = a JNIPort.JNIClass <a CCompositePointer {131781F8} (jobject)>
    nameCache = 'java.lang.Exception'
    declaredInCache = nil
    declaredInCacheIsValid = nil
    modifiersCache = 1
    classStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
Context PC = 6

----------------------------------------------------------------------
JNIPort.JavaLangClass>>declaredFields
Receiver:
    a JNIPort.JavaLangClass
Instance Variables:
    eventHandlers = nil
    static = public final java.lang.Class
Instance class: JNIPort.JavaLangClass
Static class: JNIPort.StaticJavaLangClass
Partly canonical (68 registered)
    javaIdentityHash = nil
    jniObject = a JNIPort.JNIClass <a CCompositePointer {131781F8} (jobject)>
    nameCache = 'java.lang.Exception'
    declaredInCache = nil
    declaredInCacheIsValid = nil
    modifiersCache = 1
    classStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
Context PC = 4

----------------------------------------------------------------------
java.lang.Exception.static(JNIPort.JavaStatic)>>fields
Receiver:
    a java.lang.Exception.static
Instance Variables:
    eventHandlers = nil
    jvm = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
    classObject = class java.lang.Exception
    javaSuperclass = public java.lang.Throwable
Instance class: JNIPort.JavaLangThrowable
Static class: JNIPort.StaticJavaLangThrowable
    instanceClass = JNIPort.JavaLangException
    registry = nil
    allInstancesAreCanonical = false
Context PC = 3

----------------------------------------------------------------------
java.lang.Exception.static(JNIPort.JavaStatic)>>fieldsPlusInterfaceFields
Receiver:
    a java.lang.Exception.static
Instance Variables:
    eventHandlers = nil
    jvm = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
    classObject = class java.lang.Exception
    javaSuperclass = public java.lang.Throwable
Instance class: JNIPort.JavaLangThrowable
Static class: JNIPort.StaticJavaLangThrowable
    instanceClass = JNIPort.JavaLangException
    registry = nil
    allInstancesAreCanonical = false
Temporaries:
    fields = an OrderedCollection[0]
Context PC = 17

----------------------------------------------------------------------
java.lang.Exception.static(JNIPort.JavaStatic)>>allFields
Receiver:
    a java.lang.Exception.static
Instance Variables:
    eventHandlers = nil
    jvm = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
    classObject = class java.lang.Exception
    javaSuperclass = public java.lang.Throwable
Instance class: JNIPort.JavaLangThrowable
Static class: JNIPort.StaticJavaLangThrowable
    instanceClass = JNIPort.JavaLangException
    registry = nil
    allInstancesAreCanonical = false
Temporaries:
    fields = an OrderedCollection[1]
Context PC = 13

----------------------------------------------------------------------
JNIPort.JavaStaticWrapperGenerator>>getters
Receiver:
    a JNIPort.JavaStaticWrapperGenerator
Instance Variables:
    classStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
    targetClass = java.lang.Exception.static
    installer = a JNIPort.JavaGhostClassInstaller
Context PC = 7

----------------------------------------------------------------------
JNIPort.JavaStaticWrapperGenerator(JNIPort.JavaClassWrapperGenerator)>>memberMethodGenerators
Receiver:
    a JNIPort.JavaStaticWrapperGenerator
Instance Variables:
    classStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
    targetClass = java.lang.Exception.static
    installer = a JNIPort.JavaGhostClassInstaller
Temporaries:
    constructors = an OrderedCollection[4]
    wrappers = an OrderedCollection[1]
    getters = nil
    setters = nil
Context PC = 12

----------------------------------------------------------------------
JNIPort.JavaStaticWrapperGenerator(JNIPort.JavaClassWrapperGenerator)>>methodGenerators
Receiver:
    a JNIPort.JavaStaticWrapperGenerator
Instance Variables:
    classStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
    targetClass = java.lang.Exception.static
    installer = a JNIPort.JavaGhostClassInstaller
Temporaries:
    answer = nil
    settings = a JNIPort.JavaGhostClassGeneratorSettings
Context PC = 10

----------------------------------------------------------------------
JNIPort.JavaGhostClassInstaller(JNIPort.JavaClassWrapperInstaller)>>methodGenerators
Receiver:
    a JNIPort.JavaGhostClassInstaller
Instance Variables:
    source = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
    destination = java.lang.Exception.static
    settings = a JNIPort.JavaGhostClassGeneratorSettings
    isForClassSide = true
    methodFilter = nil
    classGeneratorCache = a JNIPort.JavaStaticWrapperGenerator for: public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
    installed = an OrderedCollection[0]
    problems = an OrderedCollection[0]
Context PC = 5

----------------------------------------------------------------------
optimized [] in JNIPort.JavaClassWrapperInstaller>>install
Receiver:
    an UndefinedObject
Temporaries:
    .self = a JNIPort.JavaGhostClassInstaller
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
    a BlockClosure
Instance Variables:
    method = CompiledBlock [] in JNIPort.JavaClassWrapperInstaller>>install
    outerContext = nil
    copiedValues = a JNIPort.JavaGhostClassInstaller
Arguments:
    t1 = BlockClosure [] in JNIPort.JavaClassWrapperInstaller>>install
Temporaries:
    t2 = nil
Context PC = 4

----------------------------------------------------------------------
JNIPort.JavaGhostClassInstaller(JNIPort.JavaClassWrapperInstaller)>>install
Receiver:
    a JNIPort.JavaGhostClassInstaller
Instance Variables:
    source = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
    destination = java.lang.Exception.static
    settings = a JNIPort.JavaGhostClassGeneratorSettings
    isForClassSide = true
    methodFilter = nil
    classGeneratorCache = a JNIPort.JavaStaticWrapperGenerator for: public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
    installed = an OrderedCollection[0]
    problems = an OrderedCollection[0]
Context PC = 11

----------------------------------------------------------------------
java.lang.Exception.static(JNIPort.JavaStatic)>>useGhostClasses
Receiver:
    a java.lang.Exception.static
Instance Variables:
    eventHandlers = nil
    jvm = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
    classObject = class java.lang.Exception
    javaSuperclass = public java.lang.Throwable
Instance class: JNIPort.JavaLangThrowable
Static class: JNIPort.StaticJavaLangThrowable
    instanceClass = JNIPort.JavaLangException
    registry = nil
    allInstancesAreCanonical = false
Context PC = 48

----------------------------------------------------------------------
JNIPort.JVMGhostClassMaker>>enghost:
Receiver:
    a JNIPort.JVMGhostClassMaker
Instance Variables:
    jvmIsInitialized = true
Arguments:
    aJavaStatic = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
Context PC = 3

----------------------------------------------------------------------
optimized [] in JNIPort.JVMGhostClassMaker>>enghostAll:
Receiver:
    an UndefinedObject
Arguments:
    each = public java.lang.Exception
Instance class: JNIPort.JavaLangException
Static class: java.lang.Exception.static (ghost, 0 methods)
Temporaries:
    .self = a JNIPort.JVMGhostClassMaker
Context PC = 7

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
    an OrderedCollection
Instance Variables:
    firstIndex = 1
    lastIndex = 62
Arguments:
    t1 = BlockClosure [] in JNIPort.JVMGhostClassMaker>>enghostAll:
Temporaries:
    t2 = 5
    t3 = 62
Context PC = 17

----------------------------------------------------------------------
JNIPort.JVMGhostClassMaker>>enghostAll:
Receiver:
    a JNIPort.JVMGhostClassMaker
Instance Variables:
    jvmIsInitialized = true
Arguments:
    aJVM = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
Context PC = 10

----------------------------------------------------------------------
JNIPort.JVMGhostClassMaker>>onJmvInitialized:
Receiver:
    a JNIPort.JVMGhostClassMaker
Instance Variables:
    jvmIsInitialized = true
Arguments:
    aJVM = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
Context PC = 10

----------------------------------------------------------------------
optimized [] in JNIPort.JVM>>notifyLive
Receiver:
    an UndefinedObject
Arguments:
    each = a JNIPort.JVMGhostClassMaker
Temporaries:
    .self = a JNIPort.JVMWithoutCallbacks('Aspose JVM')
Context PC = 6

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
    an OrderedCollection
Instance Variables:
    firstIndex = 1
    lastIndex = 1
Arguments:
    t1 = BlockClosure [] in JNIPort.JVM>>notifyLive
Temporaries:
    t2 = 1
    t3 = 1
Context PC = 17

----------------------------------------------------------------------
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>notifyLive
Receiver:
    a JNIPort.JVMWithoutCallbacks
Instance Variables:
    name = 'Aspose JVM'
    status = #Running
    javaVM = a JNIPort.JavaVM <a CPointer {7FF20E935520} (const struct JNIInvokeInterface_ * * )>
    jniEnv = a JNIPort.JNIEnv <a CPointer {013DB5E0} (const struct JNINativeInterface_ * * )>
    library = a JNIPort.JNIInterface
    jniHelper = nil
    sharedMutex = a RecursionLock
    settings = a JNIPort.JVMSettings('Aspose JVM')
    classRegistry = a JNIPort.JavaClassRegistry
    classIndex = a JNIPort.JavaClassIndex
    rawJavaLangSystem = a JNIPort.JNIClass <a CCompositePointer {130DD768} (jobject)>
    rawJavaLangObject = a JNIPort.JNIClass <a CCompositePointer {130DD758} (jobject)>
    rawJavaLangClass = a JNIPort.JNIClass <a CCompositePointer {130DD760} (jobject)>
    isArrayMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E89} (jmethodID)>
    isInterfaceMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E8D} (jmethodID)>
    identityHashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC001A73} (jmethodID)>
    hashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A010} (jmethodID)>
    equalsMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A019} (jmethodID)>
    hasJava5Extensions = true
    externalCallbacks = an OrderedCollection[0]
    localCapacity = 1000
    localCount = 6
    globalCount = 68
    objectsCreated = 376
    objectsReleased = 302
    watchers = an OrderedCollection[1]
    supplementaryClassloaders = nil
    objectRegistry = a HandleRegistry[6]
    eventHandlers = nil
Context PC = 11

----------------------------------------------------------------------
JNIPort.JVMWithoutCallbacks(JNIPort.JVM)>>initializeFromSettings:
Receiver:
    a JNIPort.JVMWithoutCallbacks
Instance Variables:
    name = 'Aspose JVM'
    status = #Running
    javaVM = a JNIPort.JavaVM <a CPointer {7FF20E935520} (const struct JNIInvokeInterface_ * * )>
    jniEnv = a JNIPort.JNIEnv <a CPointer {013DB5E0} (const struct JNINativeInterface_ * * )>
    library = a JNIPort.JNIInterface
    jniHelper = nil
    sharedMutex = a RecursionLock
    settings = a JNIPort.JVMSettings('Aspose JVM')
    classRegistry = a JNIPort.JavaClassRegistry
    classIndex = a JNIPort.JavaClassIndex
    rawJavaLangSystem = a JNIPort.JNIClass <a CCompositePointer {130DD768} (jobject)>
    rawJavaLangObject = a JNIPort.JNIClass <a CCompositePointer {130DD758} (jobject)>
    rawJavaLangClass = a JNIPort.JNIClass <a CCompositePointer {130DD760} (jobject)>
    isArrayMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E89} (jmethodID)>
    isInterfaceMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC019E8D} (jmethodID)>
    identityHashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC001A73} (jmethodID)>
    hashCodeMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A010} (jmethodID)>
    equalsMethodID = a JNIPort.JNIMethodID <a CCompositePointer {7FF1BC01A019} (jmethodID)>
    hasJava5Extensions = true
    externalCallbacks = an OrderedCollection[0]
    localCapacity = 1000
    localCount = 6
    globalCount = 68
    objectsCreated = 376
    objectsReleased = 302
    watchers = an OrderedCollection[1]
    supplementaryClassloaders = nil
    objectRegistry = a HandleRegistry[6]
    eventHandlers = nil
Arguments:
    aJVMSettings = a JNIPort.JVMSettings('Aspose JVM')
Context PC = 56

----------------------------------------------------------------------
JNIPort.JVM class>>newWithSettings:
Receiver:
    a JNIPort.JVM class
Instance Variables:
    superclass = Object
    methodDict = a MethodDictionary[125]
    format = 16413
    subclasses = an Array[2]
    instanceVariables = an Array[29]
    organization = ('initializing' #addJVMHookOptionsTo: #arrangeForCleanup #findSystemClasses #findSystemMethods #initialize #initializeCallbackRegistry #initializeClassIndex #initializeClassRegistry #initializeClasses #initializeFromSettings: #initializeJNI #initializeJNIHelper #initializeLibrary #initializeLocalCapacity #initializeName #initializeObjectCounts #initializeObjectRegistry #initializeWatchers #initializeWrapperClasses #notifyBorn #notifyLive #resetRegistries #shutdownJavaCallbacks)
('events' #addWatcher: #die #notifyClassPurged: #notifyClassRegistered: #removeWatcher:)
('Java callbacks' #asCallbackDo: #supportsCallbacks)
('managed objects' #basicDisown: #basicNotifyNowGlobal: #basicNotifyNowLocal: #basicOwn: #basicShutdown: #disown: #findClassFor: #globalRefCount #localRefCount #notifyNowGlobal: #notifyNowLocal: #objectRefCount #objectsCreated #objectsReleased #own: #wrapJNIClass: #wrapJNIObject: #wrapJNIString:)
('*-subclass responsibility' #callbackDepth #callbacks #shutdownCallbackRegistry)
('accessing' #callbackRegistry #classIndex #classRegistry #classloader #javaRuntime #javaVM #jniEnv #jniHelper #jvm #library #name #name: #objectRegistry #settings #sharedMutex #status #systemClassloader)
('copying' #copy #shallowCopy)
('Java classes' #defineClass:fromBytes: #defineClass:fromBytes:classloader: #defineClassFromBytes: #defineClassFromBytes:classloader: #defineClassObject:fromBytes:classLoader: #defineClassObject:fromBytes:classloader: #findClass: #findClassObject:)
('comparing' #equalityHash: #identityHash: #is:equalTo: #is:identicalTo:)
('finalization' #finalize)
('supplementary classloaders' #findClass:in: #findJNIPortClass: #initializeSupplementaryClassloaders #notifySupplementaryClassloadersChanged #supplementaryClassloaderNamed: #supplementaryClassloaders #useSupplementaryClassloaders:)
('JVM hooks' #handleJVMAbort #handleJVMExit: #handleVFPrintf:format:args: #makeAbortHook #makeExitHook #makeVFPrintfHook #rememberExternalCallback:)
('testing' #hasJava5Extensions #isArrayClass: #isDead #isInterfaceClass: #isLive #isRunning #usingSupplementaryClassloaders)
('locals pool' #increaseLocalCapacity #initialLocalCapacity #localCapacityIncrement #localCapacitySlop)
('helpers' #javaLangSystem #makeUniqueName: #stderr #stdin #stdout)
('monitoring' #localPoolCapacity)
('private-events' #myEventTable #myEventTable:)
('shutting down' #notifyDead #notifyShutdownStarting)
('event handling' #onExit #onStartup)
('printing' #printOn: #storeOn:)
('finalizing' #shutdown)
('exceptions' #throwJavaException:)
('ghost classes' #usesGhostClasses)

    name = #JVM
    classPool = a NameSpaceOfClass[2]
    environment = a NameSpace[197]
Arguments:
    aJVMSettings = a JNIPort.JVMSettings('Aspose JVM')
Context PC = 11

----------------------------------------------------------------------
JNIPort.JVM class>>newWithSettingsNamed:
Receiver:
    a JNIPort.JVM class
Instance Variables:
    superclass = Object
    methodDict = a MethodDictionary[125]
    format = 16413
    subclasses = an Array[2]
    instanceVariables = an Array[29]
    organization = ('initializing' #addJVMHookOptionsTo: #arrangeForCleanup #findSystemClasses #findSystemMethods #initialize #initializeCallbackRegistry #initializeClassIndex #initializeClassRegistry #initializeClasses #initializeFromSettings: #initializeJNI #initializeJNIHelper #initializeLibrary #initializeLocalCapacity #initializeName #initializeObjectCounts #initializeObjectRegistry #initializeWatchers #initializeWrapperClasses #notifyBorn #notifyLive #resetRegistries #shutdownJavaCallbacks)
('events' #addWatcher: #die #notifyClassPurged: #notifyClassRegistered: #removeWatcher:)
('Java callbacks' #asCallbackDo: #supportsCallbacks)
('managed objects' #basicDisown: #basicNotifyNowGlobal: #basicNotifyNowLocal: #basicOwn: #basicShutdown: #disown: #findClassFor: #globalRefCount #localRefCount #notifyNowGlobal: #notifyNowLocal: #objectRefCount #objectsCreated #objectsReleased #own: #wrapJNIClass: #wrapJNIObject: #wrapJNIString:)
('*-subclass responsibility' #callbackDepth #callbacks #shutdownCallbackRegistry)
('accessing' #callbackRegistry #classIndex #classRegistry #classloader #javaRuntime #javaVM #jniEnv #jniHelper #jvm #library #name #name: #objectRegistry #settings #sharedMutex #status #systemClassloader)
('copying' #copy #shallowCopy)
('Java classes' #defineClass:fromBytes: #defineClass:fromBytes:classloader: #defineClassFromBytes: #defineClassFromBytes:classloader: #defineClassObject:fromBytes:classLoader: #defineClassObject:fromBytes:classloader: #findClass: #findClassObject:)
('comparing' #equalityHash: #identityHash: #is:equalTo: #is:identicalTo:)
('finalization' #finalize)
('supplementary classloaders' #findClass:in: #findJNIPortClass: #initializeSupplementaryClassloaders #notifySupplementaryClassloadersChanged #supplementaryClassloaderNamed: #supplementaryClassloaders #useSupplementaryClassloaders:)
('JVM hooks' #handleJVMAbort #handleJVMExit: #handleVFPrintf:format:args: #makeAbortHook #makeExitHook #makeVFPrintfHook #rememberExternalCallback:)
('testing' #hasJava5Extensions #isArrayClass: #isDead #isInterfaceClass: #isLive #isRunning #usingSupplementaryClassloaders)
('locals pool' #increaseLocalCapacity #initialLocalCapacity #localCapacityIncrement #localCapacitySlop)
('helpers' #javaLangSystem #makeUniqueName: #stderr #stdin #stdout)
('monitoring' #localPoolCapacity)
('private-events' #myEventTable #myEventTable:)
('shutting down' #notifyDead #notifyShutdownStarting)
('event handling' #onExit #onStartup)
('printing' #printOn: #storeOn:)
('finalizing' #shutdown)
('exceptions' #throwJavaException:)
('ghost classes' #usesGhostClasses)

    name = #JVM
    classPool = a NameSpaceOfClass[2]
    environment = a NameSpace[197]
Arguments:
    aString = 'Aspose JVM'
Context PC = 7

----------------------------------------------------------------------
FX.Aspose class>>jvm
Receiver:
    an FX.Aspose class
Instance Variables:
    superclass = Object
    methodDict = a MethodDictionary[1]
    format = 16384
    subclasses = an Array[1]
    instanceVariables = nil
    organization = ('initialize-release' #initialize)

    name = #Aspose
    classPool = a NameSpaceOfClass[1]
    environment = a NameSpace[64]
Temporaries:
    jvmSettings = a JNIPort.JVMSettings('Aspose JVM')
Context PC = 116

----------------------------------------------------------------------
UndefinedObject>>unboundMethod
Receiver:
    an UndefinedObject
Context PC = 3

----------------------------------------------------------------------
UndefinedObject(Object)>>performMethod:arguments:
Receiver:
    an UndefinedObject
Arguments:
    t1 = AnnotatedMethod UndefinedObject>>unboundMethod
    t2 = an Array[0]
Context PC = 5

----------------------------------------------------------------------
UndefinedObject(Object)>>performMethod:
Receiver:
    an UndefinedObject
Arguments:
    t1 = AnnotatedMethod UndefinedObject>>unboundMethod
Context PC = 5

----------------------------------------------------------------------
HighlightingTextEditorController(ParagraphEditor)>>evaluateCompiled:
Receiver:
    a HighlightingTextEditorController
Instance Variables:
    model = a PluggableAdaptor
    view = a TextEditorView
    sensor = a TranslatingSensor
    menuHolder = a ValueHolder on: a Menu
    performer = a WorkspacePage
    beginTypeInIndex = nil
    anchorIndex = 11
    emphasisHere = nil
    dispatchTable = a DispatchTable
    charComposer = a CharacterComposer
    textHasChanged = true
    feelPolicy = a MotifFeelPolicy
    supportCodeEditingFeels = true
    localMenuItems = an Array[20]
    extendingDown = true
    keyboardProcessor = a KeyboardProcessor
    keyboardHook = nil
    readOnly = false
    accepted = false
    autoAccept = false
    continuousAccept = false
    tabMeansNextField = true
    tabRequiresControl = true
    dispatcher = an UIDispatcher
    selectable = false
    highlightingProcess = a Process in nil
    highlighters = an IdentityDictionary[1]
Arguments:
    t1 = AnnotatedMethod UndefinedObject>>unboundMethod
Temporaries:
    t2 = nil
Context PC = 13

----------------------------------------------------------------------
optimized [] in ParagraphEditor>>evaluateSelection
Receiver:
    an UndefinedObject
Temporaries:
    .self = a HighlightingTextEditorController
    .t1 = AnnotatedMethod UndefinedObject>>unboundMethod
Context PC = 7

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
    a BlockClosure
Instance Variables:
    method = CompiledBlock [] in ParagraphEditor>>evaluateSelection
    outerContext = nil
    copiedValues = an Array[2]
Arguments:
    t1 = BlockClosure [] in Cursor>>showWhile:doDebug:
Temporaries:
    t2 = nil
Context PC = 4

----------------------------------------------------------------------
Cursor>>showWhile:doDebug:
Receiver:
    a Cursor
Instance Variables:
    errorCode = 0
    handle = a ByteArray[16]
    image = Depth1Image(extent: 16 @ 16 depth: 1)
    mask = Depth1Image(extent: 16 @ 16 depth: 1)
    hotSpot = 1 @ 1
    name = 'xeq'
Arguments:
    aBlock = BlockClosure [] in ParagraphEditor>>evaluateSelection
    aBoolean = false
Temporaries:
    cursorStack = an OrderedCollection[1]
    pos = 1
    lastCursor = nil
Context PC = 30

----------------------------------------------------------------------
Cursor>>showWhile:
Receiver:
    a Cursor
Instance Variables:
    errorCode = 0
    handle = a ByteArray[16]
    image = Depth1Image(extent: 16 @ 16 depth: 1)
    mask = Depth1Image(extent: 16 @ 16 depth: 1)
    hotSpot = 1 @ 1
    name = 'xeq'
Arguments:
    aBlock = BlockClosure [] in ParagraphEditor>>evaluateSelection
Context PC = 6

----------------------------------------------------------------------
HighlightingTextEditorController(ParagraphEditor)>>evaluateSelection
Receiver:
    a HighlightingTextEditorController
Instance Variables:
    model = a PluggableAdaptor
    view = a TextEditorView
    sensor = a TranslatingSensor
    menuHolder = a ValueHolder on: a Menu
    performer = a WorkspacePage
    beginTypeInIndex = nil
    anchorIndex = 11
    emphasisHere = nil
    dispatchTable = a DispatchTable
    charComposer = a CharacterComposer
    textHasChanged = true
    feelPolicy = a MotifFeelPolicy
    supportCodeEditingFeels = true
    localMenuItems = an Array[20]
    extendingDown = true
    keyboardProcessor = a KeyboardProcessor
    keyboardHook = nil
    readOnly = false
    accepted = false
    autoAccept = false
    continuousAccept = false
    tabMeansNextField = true
    tabRequiresControl = true
    dispatcher = an UIDispatcher
    selectable = false
    highlightingProcess = a Process in nil
    highlighters = an IdentityDictionary[1]
Temporaries:
    t1 = AnnotatedMethod UndefinedObject>>unboundMethod
    t2 = nil
Context PC = 14

----------------------------------------------------------------------
optimized [] in ParagraphEditor>>doIt
Receiver:
    an UndefinedObject
Temporaries:
    .self = a HighlightingTextEditorController
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
    a BlockClosure
Instance Variables:
    method = CompiledBlock [] in ParagraphEditor>>doIt
    outerContext = nil
    copiedValues = a HighlightingTextEditorController
Arguments:
    t1 = CompilationError
    t2 = BlockClosure [] in ParagraphEditor>>doIt
Context PC = 18

----------------------------------------------------------------------
HighlightingTextEditorController(ParagraphEditor)>>doIt
Receiver:
    a HighlightingTextEditorController
Instance Variables:
    model = a PluggableAdaptor
    view = a TextEditorView
    sensor = a TranslatingSensor
    menuHolder = a ValueHolder on: a Menu
    performer = a WorkspacePage
    beginTypeInIndex = nil
    anchorIndex = 11
    emphasisHere = nil
    dispatchTable = a DispatchTable
    charComposer = a CharacterComposer
    textHasChanged = true
    feelPolicy = a MotifFeelPolicy
    supportCodeEditingFeels = true
    localMenuItems = an Array[20]
    extendingDown = true
    keyboardProcessor = a KeyboardProcessor
    keyboardHook = nil
    readOnly = false
    accepted = false
    autoAccept = false
    continuousAccept = false
    tabMeansNextField = true
    tabRequiresControl = true
    dispatcher = an UIDispatcher
    selectable = false
    highlightingProcess = a Process in nil
    highlighters = an IdentityDictionary[1]
Context PC = 20

----------------------------------------------------------------------
HighlightingTextEditorController(ParagraphEditor)>>performCommand:
Receiver:
    a HighlightingTextEditorController
Instance Variables:
    model = a PluggableAdaptor
    view = a TextEditorView
    sensor = a TranslatingSensor
    menuHolder = a ValueHolder on: a Menu
    performer = a WorkspacePage
    beginTypeInIndex = nil
    anchorIndex = 11
    emphasisHere = nil
    dispatchTable = a DispatchTable
    charComposer = a CharacterComposer
    textHasChanged = true
    feelPolicy = a MotifFeelPolicy
    supportCodeEditingFeels = true
    localMenuItems = an Array[20]
    extendingDown = true
    keyboardProcessor = a KeyboardProcessor
    keyboardHook = nil
    readOnly = false
    accepted = false
    autoAccept = false
    continuousAccept = false
    tabMeansNextField = true
    tabRequiresControl = true
    dispatcher = an UIDispatcher
    selectable = false
    highlightingProcess = a Process in nil
    highlighters = an IdentityDictionary[1]
Arguments:
    t1 = #doIt
Context PC = 10

----------------------------------------------------------------------
HighlightingTextEditorController(ParagraphEditor)>>doItKey:
Receiver:
    a HighlightingTextEditorController
Instance Variables:
    model = a PluggableAdaptor
    view = a TextEditorView
    sensor = a TranslatingSensor
    menuHolder = a ValueHolder on: a Menu
    performer = a WorkspacePage
    beginTypeInIndex = nil
    anchorIndex = 11
    emphasisHere = nil
    dispatchTable = a DispatchTable
    charComposer = a CharacterComposer
    textHasChanged = true
    feelPolicy = a MotifFeelPolicy
    supportCodeEditingFeels = true
    localMenuItems = an Array[20]
    extendingDown = true
    keyboardProcessor = a KeyboardProcessor
    keyboardHook = nil
    readOnly = false
    accepted = false
    autoAccept = false
    continuousAccept = false
    tabMeansNextField = true
    tabRequiresControl = true
    dispatcher = an UIDispatcher
    selectable = false
    highlightingProcess = a Process in nil
    highlighters = an IdentityDictionary[1]
Arguments:
    t1 = a KeyPressedEvent
Context PC = 5

----------------------------------------------------------------------
HighlightingTextEditorController(ParagraphEditor)>>doItOrDisplayDateKey:
Receiver:
    a HighlightingTextEditorController
Instance Variables:
    model = a PluggableAdaptor
    view = a TextEditorView
    sensor = a TranslatingSensor
    menuHolder = a ValueHolder on: a Menu
    performer = a WorkspacePage
    beginTypeInIndex = nil
    anchorIndex = 11
    emphasisHere = nil
    dispatchTable = a DispatchTable
    charComposer = a CharacterComposer
    textHasChanged = true
    feelPolicy = a MotifFeelPolicy
    supportCodeEditingFeels = true
    localMenuItems = an Array[20]
    extendingDown = true
    keyboardProcessor = a KeyboardProcessor
    keyboardHook = nil
    readOnly = false
    accepted = false
    autoAccept = false
    continuousAccept = false
    tabMeansNextField = true
    tabRequiresControl = true
    dispatcher = an UIDispatcher
    selectable = false
    highlightingProcess = a Process in nil
    highlighters = an IdentityDictionary[1]
Arguments:
    t1 = a KeyPressedEvent
Context PC = 13

----------------------------------------------------------------------
optimized [] in TextEditorController>>processKeyboardEvent:
Receiver:
    an UndefinedObject
Arguments:
    t5 = a KeyPressedEvent
    t6 = #doItOrDisplayDateKey:
Temporaries:
    .self = a HighlightingTextEditorController
    .t2 = a WriteStream
    .t3 = '

Joachim Geidel wrote:
Niels,

Apparently my answer got lost in the intertubes, maybe a problem with the
webmailer I used.

Am 10.08.09 11:39 schrieb Niels Duineveld:
  
I'm trying to get the new JNIPort working in a 64 bits VisualWorks 7.7 image.
Have you used JNIPort in a 64 bits environment yourself? Is it possible?
    

No, I haven't tried this yet. As far as I understand the VW installer, 64
bit VW VMs are available for Linux and Solaris only (is this right?). I only
have a 32 bit Ubuntu installed so far.

  
Currently I can start a 64 bits JVM only if I use 'Do not generate ghost
classes'. 
But I get errors if I try to find a java class.
Any ideas?
    

I have some questions, as I do not yet understand what the problem is:

- Do you have the same problem with a 32 bit VisualWorks, a 32 bit JVM and
the same configuration?

- What kind of errors do you get when trying to find a Java class:
VisualWorks exceptions, Java Exceptions, or VM crashes? Could you send a
stack trace (if possible)?

- What kinds of errors do you get when you activate ghost class generation?

- If it is a VM crash or a "class not found" exception: Is the classpath
correct? I have had (J)VM crashes when a Java VM loaded classes from a
different version of the JRE, e.g. a Java 6 VM loading classes from a JRE
1.5.

- Please check the pages on debugging and on monitoring a JVM at the JNIPort
wiki (http://jniport.wikispaces.com). If you experience "class not found"
errors or JVM crashes, monitor the class loading as described in the example
code for monitoring a JVM to make sure that the class path is correct.

Best regards,
Joachim Geidel


  

-- 
------------------------------
AG5
Timorplein 37
1094 CC Amsterdam
www.ag5.nl

Tel: 020-4630942
Fax: 020-4630946

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

Joachim Geidel
In reply to this post by Joachim Geidel

Niels,

 

thank you for the info! Yes, it seems that JNIValueArray>>objectAt:put: is not aware that object pointers have 8 bytes on a 64 bit system. I am not sure if changing JNIValueArray>>objectAt:put: is sufficient (and it should be done in a way which works on 32 bit systems, too), but using unsignedLongLongAt:put: is probably correct for 64 bit systems. The VaList class is another place where similar problems could occur. Please let me know what you find. If you have any patches, I would be happy to integrate them. 

 

Joachim


----- Ursprüngliche Nachricht -----
Von: Niels Duineveld
Gesendet: 11.08.09 09:37 Uhr
An: Joachim Geidel, [hidden email]
Betreff: Re: [vwnc] [ANN] JNIPort for VisualWorks 1.0

Joachim,
Currently there are two problems.
First of all, the jvm is started, but without any arguments. No classpath, no runtime settings, etc. If I inspect the properties of java.lang.System, it shows none of my settings.
The other problem is with the way objectpointers are stored in the JNIValueArray. I included a stacktrace of this problem. If I modify objectAt:put: in JNIValueArray to use unsignedLongLongAt: put: instead of unsignedLongAt:put:, the exception no longer occurs, but I'm not entirely sure this is the correct solution.

I will try to set the classpath and other settings using environment variables, so I can at least verify if the rest of JNIPort works (hopefully with dynamic generated ghost classes, but otherwise with static predefined wrapper classes).

Niels

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc