Article - CS431114

JxBrowser gets stuck trying to load Spell Checker in Integrity Lifecycle Manager/PTC RV&S

Modified: 08-Oct-2025   


Applies To

  • PTC RV&S (formerly Integrity Lifecycle Manager) 13.1 to 13.2

Description

  • Under some circumstances, JxBrowser can become stuck and cause long waits before a rich text field can be modified. The AWT-EventQueue-0 thread in the attached client stacktrace file is consistently stuck trying to load a language for the spell checker. The client log also shows an error trying to load some language files:
2024-03-22 09:26:02,433 DEBUG [mks.IntegrityClient] (AWT-EventQueue-0) DEBUG(10): propertyChange: property=focusOwner,old=null,new=mks.ic.ci.ui.swing.documentview.DocumentTablePanel$EmbeddedDocumentTable
2024-03-22 09:26:10,217 INFO  [mks.IntegrityClient] 3/22/24 9:26 AM:(AWT-EventQueue-0) GENERAL(0) com.teamdev.jxbrowser.spellcheck.LanguageNotAvailableException:(AWT-EventQueue-0) com.teamdev.jxbrowser.spellcheck.LanguageNotAvailableException: Failed to initialize dictionary for en-GB languages
    at com.teamdev.jxbrowser.spellcheck.internal.SpellCheckerImpl.addLanguage(SpellCheckerImpl.java:105)
    at com.ptc.ic.common.ui.swing.richcontent.JxBrowserEngineProvider.addSpellCheckLanguage(JxBrowserEngineProvider.java:49)
    at com.ptc.ic.common.ui.swing.richcontent.JxBrowserEngineProvider.generateEngine(JxBrowserEngineProvider.java:89)
    at mks.ic.ci.ui.swing.richcontent.TinyMCE$TinyMCEEditor.<init>(TinyMCE.java:4076)
    at mks.ic.ci.ui.swing.richcontent.TinyMCE$TinyMCEEditor.getInstance(TinyMCE.java:4184)
    at mks.ic.ci.ui.swing.richcontent.TinyMCE.addTinyMCEEditor(TinyMCE.java:306)
    at mks.ic.ci.ui.swing.richcontent.TinyMCE.addEditorComponentInTable(TinyMCE.java:3245)
    at mks.ic.ci.ui.swing.EditFieldComponentLongText.getTableCellEditorComponent(EditFieldComponentLongText.java:841)
    at mks.ic.ci.ui.swing.DocumentTableCellRendererEditor.getFieldEditor(DocumentTableCellRendererEditor.java:1649)
    at mks.ic.ci.ui.swing.DocumentTableCellRendererEditor.getTableCellEditorComponent(DocumentTableCellRendererEditor.java:1478)
    at java.desktop/javax.swing.JTable.prepareEditor(JTable.java:5812)
    at java.desktop/javax.swing.JTable.editCellAt(JTable.java:3508)
    at mks.ic.ci.ui.swing.itemsview.ItemsTableBase.editCellAtImpl(ItemsTableBase.java:3888)
    at mks.ic.ci.ui.swing.IssuesJTable.editCellAtImpl(IssuesJTable.java:1451)
    at mks.ic.ci.ui.swing.GenericDocumentTable.editCellAtImpl(GenericDocumentTable.java:1564)
    at mks.ic.ci.ui.swing.itemsview.ItemsTableMouseMotionHandler.mouseRelatedImpl(ItemsTableMouseMotionHandler.java:131)
    at mks.ic.ci.ui.swing.itemsview.ItemsTableMouseMotionHandler.mouseReleased(ItemsTableMouseMotionHandler.java:103)
    at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
...
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
2024-03-22 09:26:10,217 ERROR [mks.IntegrityClient] (AWT-EventQueue-0) ERROR(0): Error while creating engine in JxBrowser
  • It is believed that this causes a problem loading the spell checker language and the client threads get stuck as a result:
"AWT-EventQueue-0" tid=0x1a in WAITING
    Blocked: 316[-1ms], Waited: 3198[-1ms]
    User CPU: 9s765ms
    Allocated Bytes: 2588176896
    at jdk.internal.misc.Unsafe.park(Native Method)
     - waiting on <0x77d0f0f2> (a java.util.concurrent.CountDownLatch$Sync)
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1039)
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1345)
     at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
     at com.teamdev.jxbrowser.internal.rpc.transport.CommonThreadResponseConsumer.await(CommonThreadResponseConsumer.java:49)
     at com.teamdev.jxbrowser.internal.rpc.transport.CommonThreadCallExecutor.execute(CommonThreadCallExecutor.java:29)
     at com.teamdev.jxbrowser.internal.rpc.ServiceConnectionImpl.invoke(ServiceConnectionImpl.java:213)
     at com.teamdev.jxbrowser.spellcheck.internal.SpellCheckerImpl.addLanguage(SpellCheckerImpl.java:103)
     at com.ptc.ic.common.ui.swing.richcontent.JxBrowserEngineProvider.addSpellCheckLanguage(JxBrowserEngineProvider.java:46)
     at com.ptc.ic.common.ui.swing.richcontent.JxBrowserEngineProvider.generateEngine(JxBrowserEngineProvider.java:89)
     at mks.ic.ci.ui.swing.richcontent.TinyMCE$TinyMCEEditor.<init>(TinyMCE.java:4076)
     at mks.ic.ci.ui.swing.richcontent.TinyMCE$TinyMCEEditor.getInstance(TinyMCE.java:4184)
     - locked <0xf4242a4> (a java.lang.Class)
     at mks.ic.ci.ui.swing.richcontent.TinyMCE.addTinyMCEEditor(TinyMCE.java:306)
     at mks.ic.ci.ui.swing.richcontent.TinyMCE.addEditorComponentInTable(TinyMCE.java:3245)
     at mks.ic.ci.ui.swing.EditFieldComponentLongText.getTableCellEditorComponent(EditFieldComponentLongText.java:841)
     at mks.ic.ci.ui.swing.DocumentTableCellRendererEditor.getFieldEditor(DocumentTableCellRendererEditor.java:1649)
     at mks.ic.ci.ui.swing.DocumentTableCellRendererEditor.getTableCellEditorComponent(DocumentTableCellRendererEditor.java:1478)
     at javax.swing.JTable.prepareEditor(JTable.java:5812)
...
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

 

 

"PrivateActionProcessor-im.dv#doc.id=23185298@1726626278806" tid=0x62 in WAITING
    Blocked: 8[-1ms], Waited: 15[-1ms]
    User CPU: 15ms
    Allocated Bytes: 3507208
     at java.lang.Object.wait(Native Method)
     - waiting on <AWT-EventQueue-0> (a java.awt.EventQueue$1AWTInvocationLock)
     at java.lang.Object.wait(Object.java:328)
     at java.awt.EventQueue.invokeAndWait(EventQueue.java:1361)
     at java.awt.EventQueue.invokeAndWait(EventQueue.java:1342)
     at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1480)
     at mks.frame.app.ui.swing.ActionProcessor.perform(ActionProcessor.java:437)
     at mks.frame.app.ui.swing.ActionProcessor$Dequeuer.run(ActionProcessor.java:747)
     at java.lang.Thread.run(Thread.java:829)
  • ​​​​​​​The Chromium Process Logger thread also does not progress:
"Chromium Process Logger" tid=0x6d in RUNNABLE (running in native)
    Blocked: 0[-1ms], Waited: 0[-1ms]
    User CPU: 0ns
    Allocated Bytes: 29536
     at java.io.FileInputStream.readBytes(Native Method)
     at java.io.FileInputStream.read(FileInputStream.java:279)
     at java.io.BufferedInputStream.read1(BufferedInputStream.java:290)
     at java.io.BufferedInputStream.read(BufferedInputStream.java:351)
     - locked <0x3663c8ac> (a java.io.BufferedInputStream)
     at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
     at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
     at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
     - locked <0x132af1a9> (a java.io.InputStreamReader)
     at java.io.InputStreamReader.read(InputStreamReader.java:181)
     at java.io.BufferedReader.fill(BufferedReader.java:161)
     at java.io.BufferedReader.readLine(BufferedReader.java:326)
     - locked <0x132af1a9> (a java.io.InputStreamReader)
     at java.io.BufferedReader.readLine(BufferedReader.java:392)
     at com.teamdev.jxbrowser.internal.ChromiumProcessLogger.lambda$startLogging$0(ChromiumProcessLogger.java:27)
     at com.teamdev.jxbrowser.internal.ChromiumProcessLogger$$Lambda$307/0x0000000800c50c40.run(Unknown Source)
     at java.lang.Thread.run(Thread.java:829)
  • ​​​​​​​​​​​​​​No custom spell check dictionary is being used
This is a printer-friendly version of Article 431114 and may be out of date. For the latest version click CS431114