2012-09-19 4 views
2

Nous étudions JavaFX 2.2 en tant que framework pour la création d'une application de bureau. Mais avant de brûler de nombreuses heures de développement, nous voulions nous assurer que JavaFX est adapté au travail, nous avons donc fait un petit test de stress pour voir s'il y avait des fuites de ressources. Le test montre et cache une scène, contenant une étiquette et un bouton, dans une boucle sans fin. Nous nous attendons à ce que cela continue pour toujours sans problèmes, mais après environ 15500 itérations nous obtenons cette exceptionÉchec du test de contrainte JavaFX

java.lang.RuntimeException: could not create platform window 
at com.sun.glass.ui.Window.<init>(Window.java:180) 
at com.sun.glass.ui.win.WinWindow.<init>(WinWindow.java:20) 
at com.sun.glass.ui.win.WinApplication.createWindow(WinApplication.java:97) 
at com.sun.javafx.tk.quantum.WindowStage.initPlatformWindow(WindowStage.java:131) 
at com.sun.javafx.tk.quantum.WindowStage.init(WindowStage.java:82) 
at com.sun.javafx.tk.quantum.QuantumToolkit.createTKStage(QuantumToolkit.java:501) 
at javafx.stage.Stage.impl_visibleChanging(Stage.java:928) 
at javafx.stage.Window$10.invalidated(Window.java:689) 
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:127) 
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:161) 
at javafx.stage.Window.setShowing(Window.java:782) 
at javafx.stage.Window.show(Window.java:797) 
at javafx.stage.Stage.show(Stage.java:229) 
at leaktest.FXMLController.showHideDialog(FXMLController.java:58) 

Notre meilleure estimation est que show()/hide() sur la scène des fuites une ressource et dheapmon révèle ce tas de bureau La mémoire est en fait divulguée pendant le test, mais nous n'atteignons pas la limite (20 Mo sur notre machine de test). Le handle GDI et les limites du handle USER ne sont pas non plus un problème car ces handles ne sont pas divulgués (selon l'explorateur de processus). Des suggestions à quelles causes l'exception?

+1

Pouvez-vous partager le code actuel? – metasim

Répondre