I can't understand how RDB can be linked with GUI but I've checked several times. I have osgi javafx application. when I install hsqldb and use database I have strange problems: Before that I used h2 and I didn't have anything like that. And the only thing was changed is the RDB. I've checked on centos 7.1 and win 7 (VBOX) result is the same.
1) When I press CTRL+SHIFT I get a lot of the following exceptions:
java.lang.ArrayIndexOutOfBoundsException: 85
at sun.awt.X11.XEvent.getFieldsAsString(XEvent.java:86)
at sun.awt.X11.XWrapperBase.toString(XWrapperBase.java:37)
at sun.awt.X11.XEvent.toString(XEvent.java:8)
at java.lang.String.valueOf(String.java:2994)
at sun.util.logging.PlatformLogger$JavaLoggerProxy.doLog(PlatformLogger.java:626)
at sun.util.logging.PlatformLogger.finer(PlatformLogger.java:387)
at sun.awt.X11.XToolkit.run(XToolkit.java:586)
at sun.awt.X11.XToolkit.run(XToolkit.java:532)
at java.lang.Thread.run(Thread.java:745)
2) My javafx data binding stop working
3) When I close application via CTRL+C I get the following:
^C=========== Performance Statistics =============
Time: com.sun.webkit.perf.WCFontPerfLogger.GETASCENT: 0ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.GETLINEGAP: 0ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHWIDTH: 0ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.GETDESCENT: 0ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.HASH: 0ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.GETLINESPACING: 1ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.HASUNIFORMLINEMETRICS: 1ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.GETXHEIGHT: 1ms, 0.00% com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHCODES: 32ms, 0.11% com.sun.webkit.perf.WCFontPerfLogger.TOTALTIME: 29131ms, 100.00%
Invocations count: com.sun.webkit.perf.WCFontPerfLogger.GETASCENT: 1 com.sun.webkit.perf.WCFontPerfLogger.GETLINEGAP: 1 com.sun.webkit.perf.WCFontPerfLogger.GETDESCENT: 1 com.sun.webkit.perf.WCFontPerfLogger.HASH: 1 com.sun.webkit.perf.WCFontPerfLogger.GETLINESPACING: 1 com.sun.webkit.perf.WCFontPerfLogger.HASUNIFORMLINEMETRICS: 1 com.sun.webkit.perf.WCFontPerfLogger.GETXHEIGHT: 1 com.sun.webkit.perf.WCFontPerfLogger.TOTALTIME: 1 com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHCODES: 2 com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHWIDTH: 4
================================================
=========== Performance Statistics =============
Time: com.sun.webkit.perf.WCGraphicsPerfLogger.RESTORESTATE: 0ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.SET_FONT_SMOOTHING_TYPE: 0ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_R: 0ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.SETCOMPOSITE: 0ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.DISPOSE: 0ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.SAVESTATE: 0ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_IIII: 1ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.TRANSLATE: 1ms, 0.00% com.sun.webkit.perf.WCGraphicsPerfLogger.FLUSH: 2ms, 0.01% com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWSTRING_GV: 7ms, 0.02% com.sun.webkit.perf.WCGraphicsPerfLogger.FILLRECT_FFFFI: 18ms, 0.06% com.sun.webkit.perf.WCGraphicsPerfLogger.TOTALTIME: 29135ms, 100.00%
Invocations count: com.sun.webkit.perf.WCGraphicsPerfLogger.TOTALTIME: 1 com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWSTRING_GV: 13 com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_R: 17 com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_IIII: 17 com.sun.webkit.perf.WCGraphicsPerfLogger.RESTORESTATE: 34 com.sun.webkit.perf.WCGraphicsPerfLogger.SAVESTATE: 34 com.sun.webkit.perf.WCGraphicsPerfLogger.TRANSLATE: 34 com.sun.webkit.perf.WCGraphicsPerfLogger.SET_FONT_SMOOTHING_TYPE: 44 com.sun.webkit.perf.WCGraphicsPerfLogger.FILLRECT_FFFFI: 45 com.sun.webkit.perf.WCGraphicsPerfLogger.SETCOMPOSITE: 68 com.sun.webkit.perf.WCGraphicsPerfLogger.DISPOSE: 88 com.sun.webkit.perf.WCGraphicsPerfLogger.FLUSH: 88
================================================
=========== Performance Statistics =============
Time: com.sun.webkit.perf.Locks.TOTALTIME: 29772ms, 100.00%
Invocations count: com.sun.webkit.perf.Locks.TOTALTIME: 1
HOW TO FIX IT?
I've got the answer from Fred Toussi (Fred, thank you):
The hsqldb.jar contains the DatabaseManagerSwing which is a GUI app. You can compile HSQLDB with the Gradle or Ant (see the /build directory) as hsqldbmain.jar which excludes the Swing classes.
There was an old bug that showed some JDK had a problem with the Swing classes. https://sourceforge.net/p/hsqldb/bugs/1304/