One hint: after installing BSF4ooRexx one can use the menu "BSF4ooRexx -> 
Samples" to get an
explorer window. Then changing into "JavaFX" and loading "index.html" will 
explain how to run those
JavaFX nutshell examples. You will see why I think it is so important to get 
the JavaFX support
stable by finding the root cause.

---rony


On 07.08.2017 16:31, Rony G. Flatscher wrote:
>
> Dear Moritz:
>
> On 07.08.2017 15:02, Moritz Hoffmann wrote:
>> without going into too much detail I would say it's hard to track down the 
>> root cause just from
>> the stack traces. It still looks like a memory corruption issue that you're 
>> facing, especially
>> because it's not a deterministic failure.
> Yes, it definitely looks like it!
> :(
>
>> I don't see why you want to call into Rexx from different Java threads. Rexx 
>> has a global
>> interpreter lock so you won't benefit from parallelism unless you have fully 
>> independent Rexx
>> instances.
> The reason is simple: when employing a Java GUI, then it should be possible 
> to write event
> handlers in Rexx and to interact with the GUI objects from Rexx.
>
> If an event is fired by Java, it will be fired on the GUI thread such that 
> the Rexx code is able
> to directly interact with the GUI objects.
>
> If a Rexx programmer needs to interact with GUI objects from a non-GUI 
> thread, then this would
> hang the GUI. Rather, one needs to make sure that the Rexx interaction gets 
> carried out on the GUI
> thread sometimes later. This is possible by invoking Platfrom.runLater() (in 
> JavaFX, cf.
> <https://docs.oracle.com/javase/8/javafx/api/javafx/application/Platform.html>)
>  or
> SwingUtilities.invokeLater (in Java swing, the predecessor of JavaFX, cf.
> <https://docs.oracle.com/javase/8/docs/api/javax/swing/SwingUtilities.html#invokeLater-java.lang.Runnable->).
>
> It is in this scenario, executing Rexx code on the JavaFX GUI thread that 
> leads to the reported
> and observed crashes.
>
> BSF4ooRexx has been quite stable for a long time including using it on 
> multiple threads in parallel.
>
>>
>> Is the code available somewhere? Can you put it on Github or some other 
>> place so people can have
>> a look? (You can also create private repos there)
> Yes, I just prepared it, you (and everyone interested in taking a look) can 
> fetch it from my
> Dropbox, which also contains a "readme.txt" file (also attached to this mail):
>
>     
> <https://www.dropbox.com/sh/xjnzwm6r0qnugzc/AACN67fJc4CZ2NOYxNaSiewFa?dl=0>.
>
> You would need (preferably 32-bit on Windows, because that is the ooRexx 
> version that is needed if
> interfacing with MS Office):
>
>   * ooRexx 5.0beta (latest installation builds from trunk:
>     
> <https://www.dropbox.com/sh/x2dczehvq5fzqtx/AAA2U2G10ELtuvmtQZNPkw3pa?dl=0>
>   * Java (64- and 32-bit can be installed in parallel): 
> <https://java.com/en/download/manual.jsp>
>   * the latest BSF4ooRexx: 
> <https://sourceforge.net/projects/bsf4oorexx/files/beta/20161026/>.
>
> You start the application by double-clicking "startTestProgressBar.rex" or 
> entering
> "startTestProgressBar.rex" in a new command line window (such that the 
> installation changes to the
> environment are honored).
>
> If there are any questions that I can answer, I am more than willing to try!
> ;)
>
> ---rony
>
> P.S.: "worker.rex" in this application uses a new ooRexx class named 
> "FxGUIThread" (defined at the
> end of "BSF.CLS") to send Rexx messages to Rexx objects (including the GUI 
> proxy objects)
> sometimes later on the JavaFX GUI thread.
>

------------------------------------------------------------------------------
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

Reply via email to