On 22.08.2025 21:58, Rony G. Flatscher wrote:
On 22.08.2025 13:31, Rony G. Flatscher wrote:
Having tested the interpreter without Dom's patch with the samples fxml_25, fxml_26, fxml_27, and
fxml_99 ("BSF4ooRexx850\samples\JavaFX") the following could be observed using different versions
of Java (Java 8 and in the end Java 24):
* the hang of fxml_99 occurs on all Java versions
* fxml_25, fxml_26, and fxml_27 seem to work on Java 8
o fxml_26 and fxml_27 crash on Java 24
This leads me to believe that there might be two different problems here. Fixing the hang somehow
causes the crashes of fxml_26 and fxml_27 (and then sometimes of fxml_25) on both, Java 8 and
Java 24, so they seem to be uncovered earlier.
... cut ...
One important note: here "crashes" should be rephrased to "Java NullPointer exceptions", these are
*not* crashes of the process! Will runtime debug BSF.CLS, JNI and the Java side of the bridge once
more, but this may take some time as glimpses of private life take precedence this weekend ... ;)
After going through the BSF.CLS, BSF4ooRexx.cc/JNI, Java bridge programs (creating MBs of debug
data) I found out that the version of BSF4ooRexx850 I have been working got tampered by myself! :-(
After inspecting my changes (basically debug statements) I found the culprit (it was an error in the
Java reflection part of Java constructors).
Tested fxml_20, fxml_25, fxml_26, fxml_27, fxml_99 on Java 8, Java 17 and Java 24. They work
thankfully! :)
---
The hang bug (fxml_99) can be fixed with Dom Wise's patch.
So far no feedback to the contrary has been given and the test to apply it a hundred times when
terminating an interpreter instance without any side effects (which would be surprising seeing the
code that gets executed), such that I would like to apply his patch (unlocking the kernel by
invoking "ActivityManager::releaseAccess()" right before invoking
"Intepreter::terminateInterpreterInstance(this)) to trunk:
Index: interpreter/runtime/InterpreterInstance.cpp
===================================================================
--- interpreter/runtime/InterpreterInstance.cpp (revision 13006)
+++ interpreter/runtime/InterpreterInstance.cpp (working copy)
@@ -559,6 +559,7 @@
commandHandlers = OREF_NULL;
requiresFiles = OREF_NULL;
+ActivityManager::releaseAccess();
// tell the main interpreter controller we're gone.
Interpreter::terminateInterpreterInstance(this);
Any objections?
With fixing the hang bug there are no open show-stopper bugs in ooRexx anymore!
---rony
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel