Aw: Re: "Toolkit already initialized" error with OpenJDK 11

Tom Schindl tom.schindl at bestsolution.at
Thu Oct 4 14:44:29 UTC 2018


Hi,

Just to make sure I understand. Do you say that other OSGi-Bundles bring
with them their own FXCanvas?

I've been looking at the e(fx)clipse code [1] who deals with FXCanvas,
... but I can't think of a situation where we create multiple classloaders.

Tom

[1]
https://github.com/eclipse/efxclipse-rt/blob/3.x/modules/core/org.eclipse.fx.osgi/src/main/java/org/eclipse/fx/osgi/fxloader/FXClassLoader.java

On 04.10.18 15:03, marcel Austenfeld wrote:
> Hello Kevin,
>  
> I still have problems with the error: "java.lang.IllegalStateException: Toolkit already initialized".
>  
> However I found out that this error only occurs if I call SWT FXCanvas classes located in different Eclipse plugins.
>  
> I can create multiple JavaFX canvas if they are located in one Eclipse plugin.
>  
> Vice versa if I try to to open the JavaFX SceneBuilder canvas which is located in a seperate Eclipse plugin this error occurs again.
>  
> So I wonder that beginning with Java 9 the JavaFX toolkit doesn't recognize an already started toolkit in another Eclipse plugin (which was definitely the case with Java 8!).
>  
> Maybee this has something to do with the new module system of Java >=9?
>  
>  
>  
> 
> Gesendet: Mittwoch, 26. September 2018 um 14:09 Uhr
> Von: "Kevin Rushforth" <kevin.rushforth at oracle.com>
> An: "marcel Austenfeld" <marcel.au at web.de>, openjfx-dev at openjdk.java.net
> Betreff: Re: "Toolkit already initialized" error with OpenJDK 11
> I'm' not aware of anything that intentionally changed between FX in JDK
> 8 and FX 11, but my guess is that the FX runtime is being shutdown after
> your first FXCanvas exits. Try making the following call (only needed
> one time) before creating your first FXCanvas:
> 
>     Platform.setImplicitExit(false);
> 
> -- Kevin
> 
> On 9/26/2018 4:22 AM, marcel Austenfeld wrote:
>> First of all congratulation to the new release and thank you for the hard work on JavaFX.
>>
>>
>> I have a problem with JavaFX which in my case is embedded in a Rich Client Platform of Eclipse.
>>
>> I integrated several SWT FXCanvas (some with SwingNode panels as a SWT_AWT replacement) into my app.
>>
>> This works fine in Java 8 which my current release depends on.
>>
>> However in Java 11 after the second panel is initialized at startup I get the following error:
>>
>> "Caused by: java.lang.IllegalStateException: Toolkit already initialized"
>>
>> Is there a new option available to avoid a new initialization of the toolkit if several FXCanvas are embedded in an application?
>> Or do you now any changes since Java 8 which could the cause of such an exception?
>>
>>
>> Thanks in advance for any help.
>  
> 

-- 
Tom Schindl, CTO
BestSolution.at EDV Systemhaus GmbH
Eduard-Bodem-Gasse 5-7. A-6020 Innsbruck
Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck


More information about the openjfx-dev mailing list