Maybe an interesting observation: while (finally) tidying up and refactoring
BSF4ooRexx.cc I
started to add a few INFO-frpintf outputs in those calls that usually are the
root of the crashes,
like in "_jniRexxSendMessageToRexxObject", which is being called from Java
(JNIEXPORT) and in which
thread a Rexx AttachThread() will occur.
Using the JavaFX test application with the link supplied in "Seeking help for
fixing" thread
(<https://www.dropbox.com/sh/xjnzwm6r0qnugzc/AACN67fJc4CZ2NOYxNaSiewFa?dl=0>)
all of a sudden the
program ran through repeatedly in Windows, whereas before most of the time the
reported crash occurred.
Experimenting around I finally found out, that if I relinquish control of the
thread *before* doing
a Rexx AttachThread(), then the program ran through!
Removing the Windows "Sleep(10)" call will re-instate the crashes (trying to
have the thread sleep
only one millisecond improved the stability, but crashes still occur rather
frequently).
---
In this case the call from Java is defined in C++ as (full signature see for
attached include file):
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxSendMessageToRexxObject(...args...)
On Windows the current compile and link statements for BSF4ooRexx.cc look like
this:
cl /nologo /EHsc /Zi /Od /Gr /MTd /W3 /D_CRT_SECURE_NO_DEPRECATE
/D_CRT_NONSTDC_NO_DEPRECATE
-DWINDOWS -DBSF4REXX_32_BIT /c /Fotmp\BSF4ooRexx-32-x86.obj BSF4ooRexx.cc
link /nologo /DEBUG
-debugtype:cv /SUBSYSTEM:Windows rexx.lib rexxapi.lib
/def:BSF4ooRexx-32.def /DLL
tmp\BSF4ooRexx-32-x86.obj -out:tmp\BSF4ooRexx.dll-32-x86
Any idea what is happening here?
Any suggestions/advice what I could do to help trace this down?
---rony
On 25.07.2017 14:59, Rony G. Flatscher wrote:
>
> Not getting any feedback on the filed ooRexx-only crashes so far, I assume
> that their cause has
> not been found yet in ooRexx.
>
> ---
>
> As I encountered a so far unseen stack-trace in a BSF4ooRexx (a JavaFX-Rexx)
> application, I post
> that stack trace here in the hope that it may be anohter mosaic stone to help
> find the cause:
>
> ... cut ...
>
> Current thread (0x15be5000): JavaThread "*JavaFX Application Thread*"
> [_thread_in_native, id=2016, stack(0x17f30000,0x17fb0000)]
>
> siginfo: ExceptionCode=0xc0000005, writing address 0x0000000c
>
> ... cut ....
>
> Stack: [0x17f30000,0x17fb0000], sp=0x17fae634, free space=505k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native
> code)
> C [rexx.dll+0xc62d9] *DeadObject::remove*+0x29
> C [rexx.dll+0xce76e] DeadObjectPool::findFit+0x6e
> C [rexx.dll+0xce32f] NormalSegmentSet::allocateObject+0xff
> C [rexx.dll+0xdae13] MemoryObject::newObject+0x63
> C [rexx.dll+0x23e95] new_object+0x15
> C [rexx.dll+0x65978] RexxString::rawString+0x28
> C [rexx.dll+0x31f5c] raw_string+0xc
> C [rexx.dll+0x64445] RexxString::concatBlank+0x65
> C [rexx.dll+0x4dc06] RexxObject::callOperatorMethod+0x36
> C [rexx.dll+0xfd0cc] RexxBinaryOperator::evaluate+0x7c
> C [rexx.dll+0xfd088] RexxBinaryOperator::evaluate+0x38
> C [rexx.dll+0xfd088] RexxBinaryOperator::evaluate+0x38
> C [rexx.dll+0x101264] RexxInstructionAssignment::execute+0xb4
> C [rexx.dll+0xa921e] RexxActivation::run+0x39e
> C [rexx.dll+0xb67a8] RexxCode::run+0x58
> C [rexx.dll+0x370a3] MethodClass::run+0x43
> C [rexx.dll+0x4b58a] RexxObject::processUnknown+0xca
> C [rexx.dll+0x4c710] RexxObject::messageSend+0xf0
> C [rexx.dll+0xfcc3c] ExpressionStack::send+0x3c
> C [rexx.dll+0xfc5c9] RexxExpressionMessage::evaluate+0x119
> C [rexx.dll+0x1128be] RexxInstruction::evaluateArguments+0x5e
> C [rexx.dll+0xfbcdf] RexxExpressionFunction::evaluate+0x6f
> C [rexx.dll+0xfd0af] RexxBinaryOperator::evaluate+0x5f
> C [rexx.dll+0x112b25]
> RexxInstructionExpression::evaluateStringExpression+0x45
> C [rexx.dll+0x112d6a] RexxInstructionSay::execute+0x2a
> C [rexx.dll+0xa921e] RexxActivation::run+0x39e
> C [rexx.dll+0xb67a8] RexxCode::run+0x58
> C [rexx.dll+0x370a3] MethodClass::run+0x43
> C [rexx.dll+0x4c6ec] RexxObject::messageSend+0xcc
> C [rexx.dll+0x4ca90] RexxObject::sendMessage+0x30
> C [rexx.dll+0x847ee] SendMessageArray+0x8e
> C [BSF4ooRexx.DLL+0x8da3]
>
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> j
> org.rexxla.bsf.engines.rexx.RexxAndJava.jniRexxSendMessageToRexxObject(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;+0
> ... cut ...
>
> So far I have not found a cause in my BSF4ooRexx code, even after walking
> through the different
> executions paths multiple times, which leads me to believe that the cause is
> in ooRexx (it seems
> that there is always a non-Rexx created thread playing a role - like the
> JavaFX GUI-thread from
> above - and maybe Rexx uninits running in parallel).
>
> ---rony
>
> On 26.06.2017 20:34, Rony G. Flatscher wrote:
>>
>> Since February I have been experiencing crashes in ooRexx 5.0 beta. Some
>> reasons were found and
>> fixed so far.
>>
>> Unfortunately, other crashes have not been fixed, supposedly because one
>> would have needed to
>> analyze the crashes using BSF4ooRexx where these crashes can be observed and
>> it could not be
>> ruled out 100% that there might be an error in BSF4ooRexx that may cause
>> these crashes.
>>
>> So in the past months I have been investing (literally!) every free minute
>> (including my
>> weekends) to come up with test cases that would be able to evoke these
>> crashes without
>> BSF4ooRexx, such that they can be analyzed and eventually, after learning
>> about the cause,
>> hopefully fixed.
>>
>> Such test cases are:
>>
>> * 2017-05-16: "Crash while executing createStackFrame()":
>> <https://sourceforge.net/p/oorexx/bugs/1449/>
>> * 2017-05-17: "Performance drops suddenly (once even a crash) ":
>> <https://sourceforge.net/p/oorexx/bugs/1450/>
>> * 2017-06-19: "Test case causing crashes, giving different stack traces":
>> <https://sourceforge.net/p/oorexx/bugs/1459/>
>>
>> Today I concluded my work by reporting and supplying four more test cases
>> that might help to put
>> full light on the problem:
>>
>> * 2017-06-26: "Crash in "MemoryObject::markObjectsMain" et.al.":
>> <https://sourceforge.net/p/oorexx/bugs/1461/>
>> * 2017-06-26: "Memory leak when creating many Rexx interpreter instances":
>> <https://sourceforge.net/p/oorexx/bugs/1462/>
>> * 2017-06-26: "Using multiple Rexx interpreter instances causing crashes ":
>> <https://sourceforge.net/p/oorexx/bugs/1463/>
>> * 2017-06-26: "Further crashes with a slightly changed abc.cls":
>> <https://sourceforge.net/p/oorexx/bugs/1464/>
>>
>> Alle test cases include all necessary files and brief explanations in
>> "readme.txt". Also, they
>> include the stacktraces and the output up to the crash as sometimes
>> (depending on the test) the
>> crashes do not occur regularly, but intermittently. This way looking at thes
>> stacktraces
>> hopefully eases analysis of what happens where.
>>
>> There is no BSF4ooRexx in the picture, though the c++ external Rexx function
>> library uses two
>> functions that play an important role in the observed crashes and
>> potentially may be needed to
>> re-create the crashes outside of BSF4ooRexx. All can be analyzed, hopefully
>> quite easily and
>> therefore fast.
>>
>> If there are any questions or if there is anything else I can do to help
>> track this down, please
>> let me know.
>>
>> ---rony
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_rexxla_bsf_engines_rexx_RexxAndJava */
#ifndef _Included_org_rexxla_bsf_engines_rexx_RexxAndJava
#define _Included_org_rexxla_bsf_engines_rexx_RexxAndJava
#ifdef __cplusplus
extern "C" {
#endif
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_ADD_EVENT_LISTENER
#define org_rexxla_bsf_engines_rexx_RexxAndJava_ADD_EVENT_LISTENER 1L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_AT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_AT 2L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_LENGTH
#define org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_LENGTH 3L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_PUT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_PUT 4L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_PUT_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_ARRAY_PUT_STRICT 5L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_CREATE_ARRAY_OBJECT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_CREATE_ARRAY_OBJECT 6L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_EXIT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_EXIT 7L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE 8L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE_STRICT 9L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_PROPERTY_VALUE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_PROPERTY_VALUE 10L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE 11L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE_STRICT 12L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_VERSION
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_VERSION 13L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE 14L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE_STRICT 15L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_LOOKUP_BEAN
#define org_rexxla_bsf_engines_rexx_RexxAndJava_LOOKUP_BEAN 16L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_POLL_EVENT_TEXT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_POLL_EVENT_TEXT 17L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_POST_EVENT_TEXT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_POST_EVENT_TEXT 18L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_REGISTER_BEAN
#define org_rexxla_bsf_engines_rexx_RexxAndJava_REGISTER_BEAN 19L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_NEW
#define org_rexxla_bsf_engines_rexx_RexxAndJava_NEW 19L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_REGISTER_BEAN_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_REGISTER_BEAN_STRICT 20L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_NEW_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_NEW_STRICT 20L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_SET_FIELD_VALUE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_SET_FIELD_VALUE 21L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_SET_FIELD_VALUE_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_SET_FIELD_VALUE_STRICT 22L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_SET_PROPERTY_VALUE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_SET_PROPERTY_VALUE 23L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_SET_PROPERTY_VALUE_STRICT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_SET_PROPERTY_VALUE_STRICT 24L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_SET_REXX_NULL_STRING
#define org_rexxla_bsf_engines_rexx_RexxAndJava_SET_REXX_NULL_STRING 25L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_SLEEP
#define org_rexxla_bsf_engines_rexx_RexxAndJava_SLEEP 26L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_UNREGISTER_BEAN
#define org_rexxla_bsf_engines_rexx_RexxAndJava_UNREGISTER_BEAN 27L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_WRAP_ARRAY_OBJECT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_WRAP_ARRAY_OBJECT 28L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_WRAP_ENUMERATION_OBJECT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_WRAP_ENUMERATION_OBJECT 29L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_LOAD_CLASS
#define org_rexxla_bsf_engines_rexx_RexxAndJava_LOAD_CLASS 30L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_BSF_MANAGER
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_BSF_MANAGER 32L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_BSF_PREFIX_RETURN_VALUE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_BSF_PREFIX_RETURN_VALUE 33L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_RAW_REGISTER_BEAN
#define org_rexxla_bsf_engines_rexx_RexxAndJava_RAW_REGISTER_BEAN 34L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_REXX_HALT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_REXX_HALT 35L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_CREATE_ARRAY_OBJECT_OF
#define org_rexxla_bsf_engines_rexx_RexxAndJava_CREATE_ARRAY_OBJECT_OF 36L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_REXX_AND_JAVA
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_REXX_AND_JAVA 37L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_REXX_ENGINE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_REXX_ENGINE 38L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_KUDOS
#define org_rexxla_bsf_engines_rexx_RexxAndJava_KUDOS 39L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_IS_INSTANCE
#define org_rexxla_bsf_engines_rexx_RexxAndJava_IS_INSTANCE 40L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_CARRY_OUT_SYSTEM_EXIT
#define org_rexxla_bsf_engines_rexx_RexxAndJava_CARRY_OUT_SYSTEM_EXIT 41L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_ENV_GET
#define org_rexxla_bsf_engines_rexx_RexxAndJava_ENV_GET 42L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_ENV_SET
#define org_rexxla_bsf_engines_rexx_RexxAndJava_ENV_SET 43L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE_JSO
#define org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE_JSO 44L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE_STRICT_JSO
#define org_rexxla_bsf_engines_rexx_RexxAndJava_INVOKE_STRICT_JSO 45L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE_JSO
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE_JSO 46L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE_STRICT_JSO
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_FIELD_VALUE_STRICT_JSO 47L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_PROPERTY_VALUE_JSO
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_PROPERTY_VALUE_JSO 48L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE_JSO
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE_JSO 49L
#undef org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE_STRICT_JSO
#define org_rexxla_bsf_engines_rexx_RexxAndJava_GET_STATIC_VALUE_STRICT_JSO 50L
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniSetupNativeJVMPointer
* Signature: ()V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniSetupNativeJVMPointer
(JNIEnv *, jobject);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxWaitForTermination
* Signature: ()I
*/
JNIEXPORT jint JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxWaitForTermination
(JNIEnv *, jobject);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxDidRexxTerminate
* Signature: ()I
*/
JNIEXPORT jint JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxDidRexxTerminate
(JNIEnv *, jobject);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxGetTID
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxGetTID
(JNIEnv *, jobject);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxSetHalt
* Signature: (Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxSetHalt
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxCreateInterpreterInstance
* Signature: ([Ljava/lang/Object;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxCreateInterpreterInstance
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetRexxInterpreterInstanceRoot
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetRexxInterpreterInstanceRoot
(JNIEnv *, jobject);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxRunProgram
* Signature:
(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxRunProgram
(JNIEnv *, jobject, jstring, jint, jstring, jstring, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxSendMessageToRexxObject
* Signature:
(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxSendMessageToRexxObject
(JNIEnv *, jobject, jstring, jstring, jstring, jstring, jstring, jstring,
jstring, jobjectArray, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniUnregisterRexxObject
* Signature: (Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniUnregisterRexxObject
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxHaltInterpreterInstance
* Signature: (Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxHaltInterpreterInstance
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRexxTerminateInterpreterInstance
* Signature: (Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRexxTerminateInterpreterInstance
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRaiseCondition
* Signature:
([Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Object;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRaiseCondition
(JNIEnv *, jobject, jobjectArray, jstring, jstring, jobjectArray, jobject);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRaiseException
* Signature: ([Ljava/lang/Object;J[Ljava/lang/Object;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRaiseException
(JNIEnv *, jobject, jobjectArray, jlong, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRaiseException0
* Signature: ([Ljava/lang/Object;J)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRaiseException0
(JNIEnv *, jobject, jobjectArray, jlong);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRaiseException1
* Signature: ([Ljava/lang/Object;JLjava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRaiseException1
(JNIEnv *, jobject, jobjectArray, jlong, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniRaiseException2
* Signature: ([Ljava/lang/Object;JLjava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniRaiseException2
(JNIEnv *, jobject, jobjectArray, jlong, jstring, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetContextVariable
* Signature: ([Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetContextVariable
(JNIEnv *, jobject, jobjectArray, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniSetContextVariable
* Signature: ([Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniSetContextVariable
(JNIEnv *, jobject, jobjectArray, jstring, jobject);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniCheckCondition
* Signature: ([Ljava/lang/Object;)Z
*/
JNIEXPORT jboolean JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniCheckCondition
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniClearCondition
* Signature: ([Ljava/lang/Object;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniClearCondition
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetConditionInfo
* Signature: ([Ljava/lang/Object;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetConditionInfo
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniSetThreadTrace
* Signature: ([Ljava/lang/Object;Z)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniSetThreadTrace
(JNIEnv *, jobject, jobjectArray, jboolean);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniHaltThread
* Signature: ([Ljava/lang/Object;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniHaltThread
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniDropContextVariable
* Signature: ([Ljava/lang/Object;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniDropContextVariable
(JNIEnv *, jobject, jobjectArray, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniSetContextVariableToNil
* Signature: ([Ljava/lang/Object;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniSetContextVariableToNil
(JNIEnv *, jobject, jobjectArray, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetCallerContext
* Signature: ([Ljava/lang/Object;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetCallerContext
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetAllContextVariables
* Signature: ([Ljava/lang/Object;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetAllContextVariables
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetLocalEnvironment
* Signature: ([Ljava/lang/Object;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetLocalEnvironment
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetGlobalEnvironment
* Signature: ([Ljava/lang/Object;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetGlobalEnvironment
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniNil
* Signature: ([Ljava/lang/Object;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniNil
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniInterpreterVersion
* Signature: ([Ljava/lang/Object;)J
*/
JNIEXPORT jlong JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniInterpreterVersion
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniLanguageLevel
* Signature: ([Ljava/lang/Object;)J
*/
JNIEXPORT jlong JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniLanguageLevel
(JNIEnv *, jobject, jobjectArray);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniProcEnvironment
* Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniProcEnvironment
(JNIEnv *, jobject, jint, jstring, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetLocalEnvironment0
* Signature: (Ljava/lang/String;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetLocalEnvironment0
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniGetGlobalEnvironment0
* Signature: (Ljava/lang/String;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniGetGlobalEnvironment0
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniNil0
* Signature: (Ljava/lang/String;)Ljava/lang/Object;
*/
JNIEXPORT jobject JNICALL Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniNil0
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniInterpreterVersion0
* Signature: (Ljava/lang/String;)J
*/
JNIEXPORT jlong JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniInterpreterVersion0
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniLanguageLevel0
* Signature: (Ljava/lang/String;)J
*/
JNIEXPORT jlong JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniLanguageLevel0
(JNIEnv *, jobject, jstring);
/*
* Class: org_rexxla_bsf_engines_rexx_RexxAndJava
* Method: jniInitialize4Rexx
* Signature: ()I
*/
JNIEXPORT jint JNICALL
Java_org_rexxla_bsf_engines_rexx_RexxAndJava_jniInitialize4Rexx
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel