Search Mailing List Archives


Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-discussion] Multi-threading problem (and solution) in Protege-3.2.1 with Jambalaya

Micheal Hewett mhewett at evincii.com
Fri Jan 26 09:42:24 PST 2007


Hi Tim,

Good analysis of the situation.  I re-inserted Jambalaya in the plugins
directory and re-ran my program.  It immediately deadlocked and I
was able to get the stack traces from both threads.  They are shown
below.

Ctrl-Break does work in Windows.  I have also included the output
from that command below the two stack traces obtained from the
Eclipse debugger.

Since Java best practice is to start another thread to perform cpu-intensive
processing instead of doing it in the AWT Event thread, you are correct
that many plugins might have this problem.

Thanks,
Mike Hewett

Thread [Thread-2] (Suspended)   
    MyJTabbedPane(Container).getComponents_NoClientCode() line: 299   
    MyJTabbedPane(Container).getComponents() line: 291   
    ProjectView.getTabByClassName(String) line: not available   
    JambalayaProjectPlugin.getJambalayaTab() line: 247   
    JambalayaProjectPlugin.knowledgeBaseChanged() line: 164   
    JambalayaProjectPlugin.access$0(JambalayaProjectPlugin) line: 160   
    JambalayaProjectPlugin$1.ownSlotValueChanged(FrameEvent) line: 49   
    EventDispatchFrameStore.dispatchFrameEvent(FrameEvent) line: not 
available   
    EventDispatchFrameStore.dispatchEvent(EventObject) line: not 
available   
    EventDispatchFrameStore.dispatchEvents(Collection, boolean) line: 
not available   
    EventDispatchFrameStore.dispatchEvents(boolean) line: not available   
    EventDispatchFrameStore.dispatchEvents() line: not available   
    EventDispatchFrameStore.createCls(FrameID, String, Collection, 
Collection, boolean) line: not available   
    CreateClsCommand.doIt() line: not available   
    UndoFrameStore.simpleCommandExecute(Command) line: not available   
    UndoFrameStore.execute(Command) line: not available   
    UndoFrameStore.createCls(FrameID, String, Collection, Collection, 
boolean) line: not available   
    ArgumentCheckingFrameStore.createCls(FrameID, String, Collection, 
Collection, boolean) line: not available   
    ChangeMonitorFrameStore.createCls(FrameID, String, Collection, 
Collection, boolean) line: not available   
    CleanDispatchFrameStore(FrameStoreAdapter).createCls(FrameID, 
String, Collection, Collection, boolean) line: not available   
    DeleteSimplificationFrameStore(FrameStoreAdapter).createCls(FrameID, 
String, Collection, Collection, boolean) line: not available   
    DefaultKnowledgeBase.createCls(FrameID, String, Collection, 
Collection, boolean) line: not available   
    DefaultKnowledgeBase.createCls(String, Collection, Collection, 
boolean) line: not available   
    DefaultKnowledgeBase.createCls(String, Collection, Cls, boolean) 
line: not available   
    DefaultKnowledgeBase.createCls(String, Collection, Cls) line: not 
available   
    ZProtegeClass.createProtegeClass(KnowledgeBase, String, Collection, 
Cls, List<String>) line: 182   
    ZProtegeClass.findOrCreateProtegeClass(Node, KnowledgeBase, Cls, 
Cls, ZParameters, List<String>) line: 145   
    Z.toProtegeTerm(Node, Cls, Cls, KnowledgeBase, ZParameters, 
List<String>) line: 400   
    ImportTask.executeOne() line: 116   
    ImportTask(StandardManagedTask).run() line: 388   
    Thread.run() line: 595   

Thread [AWT-EventQueue-0] (Suspended)   
    DefaultKnowledgeBase.getProject() line: not available   
    DefaultSlot(DefaultFrame).getProject() line: not available   
    DefaultSlot(DefaultFrame).isInReadonlyProject() line: not available   
    DefaultSlot(DefaultFrame).isEditable() line: not available   
    SlotHierarchyRenderer(FrameRenderer).load(Object) line: not 
available   
    SlotHierarchyRenderer(DefaultRenderer).setup(Component, Object, 
boolean, boolean) line: not available   
    
SlotHierarchyRenderer(DefaultRenderer).getTreeCellRendererComponent(JTree, 
Object, boolean, boolean, boolean, int, boolean) line: not available   
    BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(Object, int, 
int, boolean, Rectangle) line: 2693   
    
FixedHeightLayoutCache(AbstractLayoutCache).getNodeDimensions(Object, 
int, int, boolean, Rectangle) line: 475   
    
FixedHeightLayoutCache.getBounds(FixedHeightLayoutCache$FHTreeStateNode, 
int, Rectangle) line: 535   
    FixedHeightLayoutCache.getBounds(TreePath, Rectangle) line: 181   
    
FixedHeightLayoutCache(AbstractLayoutCache).getPreferredWidth(Rectangle) 
line: 215   
    WindowsTreeUI(BasicTreeUI).updateCachedPreferredSize() line: 1731   
    WindowsTreeUI(BasicTreeUI).getPreferredSize(JComponent, boolean) 
line: 1901   
    WindowsTreeUI(BasicTreeUI).getPreferredSize(JComponent) line: 1889   
    SelectableTree(JComponent).getPreferredSize() line: 1615   
    
ScrollPaneLayout$UIResource(ScrollPaneLayout).layoutContainer(Container) 
line: 769   
    JScrollPane(Container).layout() line: 1401   
    JScrollPane(Container).doLayout() line: 1390   
    JScrollPane(Container).validateTree() line: 1473   
    JPanel(Container).validateTree() line: 1480   
    LabeledComponent(Container).validateTree() line: 1480   
    SubslotPane(Container).validateTree() line: 1480   
    ComponentFactory$9(Container).validateTree() line: 1480   
    ComponentFactory$9(Container).validateTree() line: 1480   
    SlotsTab(Container).validateTree() line: 1480   
    MyJTabbedPane(Container).validateTree() line: 1480   
    ProjectView(Container).validateTree() line: 1480   
    JPanel(Container).validateTree() line: 1480   
    JLayeredPane(Container).validateTree() line: 1480   
    JRootPane(Container).validateTree() line: 1480   
    JRootPane(Container).validate() line: 1448   
    RepaintManager.validateInvalidComponents() line: 379   
    SystemEventQueueUtilities$ComponentWorkRequest.run() line: 113   
    InvocationEvent.dispatch() line: 209   
    EventQueue.dispatchEvent(AWTEvent) line: 461   
    EventDispatchThread.pumpOneEventForHierarchy(int, Component) line: 
242   
    EventDispatchThread.pumpEventsForHierarchy(int, Conditional, 
Component) line: 163   
    EventDispatchThread.pumpEvents(int, Conditional) line: 157   
    EventDispatchThread.pumpEvents(Conditional) line: 149   
    EventDispatchThread.run() line: 110   

==================  Output from Ctrl-Break =======================
cwd: C:\Program Files\Protege_3.2\
cmd: "C:\Program Files\Java\jdk1.5.0_09\jre\bin\java.exe" -Xms300000000 
-Xmx600000000 -Xdebug -Xrunj
dwp:transport=dt_socket,address=1044,server=y,suspend=n -classpath 
"C:\Program Files\Protege_3.2\pro
tege.jar;C:\Program Files\Protege_3.2\looks.jar;C:\Program 
Files\Protege_3.2\unicode_panel.jar;C:\Pr
ogram Files\Protege_3.2\driver.jar;C:\Program 
Files\Protege_3.2\driver0.jar;C:\Program Files\Protege
_3.2\driver1.jar;C:\Program Files\Protege_3.2\driver2.jar;C:\Program 
Files\Protege_3.2\lax.jar;C:\Pr
ogram Files\Protege_3.2\ocrs12.jar;C:\Program 
Files\Protege_3.2\ojdbc14.jar;C:\Program Files\Protege
_3.2\ojdbc14dms.jar;C:\Program 
Files\Protege_3.2\orai18n-mapping.jar;C:\Program Files\Protege_3.2\or
ai18n-utility.jar;C:\Program Files\Protege_3.2\orai18n.jar;" 
com.zerog.lax.LAX "C:/Program Files/Pro
tege_3.2/Protege.lax" "C:/Documents and Settings/mhewett/Local 
Settings/Temp/lax50B.tmp"
Listening for transport dt_socket at address: 1044
CONFIG: Protege 3.2 Build 355, JVM 1.5.0_09-b01, memory=597M, Windows 
XP, encoding=UTF-8, language=e
n, country=US
CONFIG: Loaded plugin edu.stanford.smi.protegex.owl - OWL Plugin
CONFIG: Loaded plugin ca.uvic.cs.chisel.jambalaya - Jambalaya
CONFIG: Loaded plugin com.evincii.z - Z
CONFIG: Loaded plugin dfki.protege.ontoviz
CONFIG: Loaded plugin edu.stanford.smi.protege.script - Script Plugin
CONFIG: Loaded plugin edu.stanford.smi.protegex.standard_extensions - 
Graph Widget, Table Widget
CONFIG: Loaded plugin edu.stanford.smi.protege.stringsearch - String 
Search Tab
CONFIG: Loaded plugin edu.stanford.smi.protegex.rdf_backend - RDF Backend
CONFIG: Loaded plugin edu.stanford.smi.protegex.changes - Changes tab
CONFIG: Loaded plugin edu.stanford.smi.protegex.pal_tabs - PAL Tabs
CONFIG: Loaded plugin edu.stanford.smi.protegex.ezpal - EZPal Tab
CONFIG: Loaded plugin edu.stanford.smi.protegex.facets_tab
CONFIG: Loaded plugin edu.stanford.smi.protegex.instance_tree
CONFIG: Loaded plugin edu.stanford.smi.protegex.prompt - PROMPT Tab
CONFIG: Loaded plugin edu.stanford.smi.protegex.psm - PSM Librarian
CONFIG: Loaded plugin edu.stanford.smi.protegex.umls_tab - UMLS Tab
CONFIG: Loaded plugin edu.stanford.smi.protegex.wordnet - WordNet Tab
CONFIG: Loaded plugin edu.stanford.smi.protegex.xml_tab - XML Tab
CONFIG: Loaded plugin edu.washington.datagenie - DataGenie
CONFIG: Loaded plugin org.algernon - Algernon
CONFIG: Loaded plugin se.liu.ida.JessTab - JessTab Plugin
CONFIG: Loaded plugin uk.ac.iam.soton.akt.tgviztab - TGVizTab
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.debugger
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.manchesterowlsyntaxeditor
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.owldoc
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.owlindividualstab
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.owlunittest
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.owlviz
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.protege.wizard - Basic Wizards
CONFIG: Loaded plugin uk.ac.man.cs.mig.coode.protege.wizard.owl - OWL 
Wizards
Algernon 4.9.0, 10 Aug 2004, http://algernon-j.sourceforge.net/
Jatha 2.1.0, 10 Aug 2004, contact: http://jatha.sourceforge.net/
Z  Evincii, Inc.  (http://www.evincii.com/ - mhewett at evincii.com)

Jambalaya version 2.5.0, Build: 3, 2006/11/06 14:02
CHISEL Group, University of Victoria, chisel-support at cs.uvic.ca

INFO: Load time for file:\C:\vs-all-v13.pprj = 12 sec (project) + 8 sec (ui)
Full thread dump Java HotSpot(TM) Client VM (1.5.0_09-b01 mixed mode):

"JDWP Command Reader" daemon prio=6 tid=0x031bd478 nid=0x1ed0 runnable 
[0x00000000..0x00000000]

"Timer-0" daemon prio=6 tid=0x03238de0 nid=0xdf0 in Object.wait() 
[0x0595f000..0x0595fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x10f72190> (a java.util.TaskQueue)
        at java.util.TimerThread.mainLoop(Timer.java:509)
        - locked <0x10f72190> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"Thread-2" prio=6 tid=0x03483610 nid=0x1370 waiting for monitor entry 
[0x0591f000..0x0591f9e8]
        at java.awt.Container.getComponents_NoClientCode(Container.java:299)
        - waiting to lock <0x12d80f60> (a java.awt.Component$AWTTreeLock)
        at java.awt.Container.getComponents(Container.java:291)
        at 
edu.stanford.smi.protege.ui.ProjectView.getTabByClassName(Unknown Source)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin.getJambalayaTab(JambalayaProjectPlugi
n.java:247)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin.knowledgeBaseChanged(JambalayaProject
Plugin.java:164)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin.access$0(JambalayaProjectPlugin.java:
160)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin$1.ownSlotValueChanged(JambalayaProjec
tPlugin.java:49)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchFrameEvent(Unkn
own Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvent(Unknown 
S
ource)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown
Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown
Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown
Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.createCls(Unknown 
Sourc
e)
        at 
edu.stanford.smi.protege.model.framestore.undo.CreateClsCommand.doIt(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.simpleCommandExecute(Unknow
n Source)
        at 
edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.execute(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.createCls(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.createCls(Unknown 
So
urce)
        at 
edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.createCls(Unknown 
Sourc
e)
        at 
edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createCls(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createCls(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
com.evincii.kb.z.ZProtegeClass.createProtegeClass(ZProtegeClass.java:182)
        at 
com.evincii.kb.z.ZProtegeClass.findOrCreateProtegeClass(ZProtegeClass.java:145)
        at com.evincii.kb.z.Z.toProtegeTerm(Z.java:400)
        at 
com.evincii.kb.protege.plugin.task.ImportTask.executeOne(ImportTask.java:116)
        at 
com.evincii.kb.protege.plugin.task.StandardManagedTask.run(StandardManagedTask.java:388)
        at java.lang.Thread.run(Thread.java:595)

"DestroyJavaVM" prio=6 tid=0x00037248 nid=0xce0 waiting on condition 
[0x00000000..0x0007fae8]

"TimerQueue" daemon prio=6 tid=0x03165918 nid=0xd08 in Object.wait() 
[0x051af000..0x051afb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x130ccc60> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(TimerQueue.java:233)
        - locked <0x130ccc60> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Thread.java:595)

"AWT-EventQueue-0" prio=6 tid=0x03841f88 nid=0x1ff8 waiting for monitor 
entry [0x03fef000..0x03fefbe
8]
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.getProject(Unknown 
Source)
        - waiting to lock <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultFrame.getProject(Unknown Source)
        at 
edu.stanford.smi.protege.model.DefaultFrame.isInReadonlyProject(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.DefaultFrame.isEditable(Unknown Source)
        at edu.stanford.smi.protege.ui.FrameRenderer.load(Unknown Source)
        at edu.stanford.smi.protege.util.DefaultRenderer.setup(Unknown 
Source)
        at 
edu.stanford.smi.protege.util.DefaultRenderer.getTreeCellRendererComponent(Unknown 
Source
)
        at 
javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.ja
va:2693)
        at 
javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
        at 
javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCache.java:535)
        at 
javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCache.java:181)
        at 
javax.swing.tree.AbstractLayoutCache.getPreferredWidth(AbstractLayoutCache.java:215)
        at 
javax.swing.plaf.basic.BasicTreeUI.updateCachedPreferredSize(BasicTreeUI.java:1731)
        at 
javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:1901)
        at 
javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:1889)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1615)
        at 
javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:769)
        at java.awt.Container.layout(Container.java:1401)
        at java.awt.Container.doLayout(Container.java:1390)
        at java.awt.Container.validateTree(Container.java:1473)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validate(Container.java:1448)
        - locked <0x12d80f60> (a java.awt.Component$AWTTreeLock)
        at 
javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:379)
        at 
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.
java:113)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at 
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at 
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at 
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

"AWT-Shutdown" prio=6 tid=0x03177e30 nid=0xbd0 in Object.wait() 
[0x03faf000..0x03fafc68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12d9deb8> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:474)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
        - locked <0x12d9deb8> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:595)

"Java2D Disposer" daemon prio=10 tid=0x0328ee10 nid=0xdec in 
Object.wait() [0x03f2f000..0x03f2fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12cafb80> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x12cafb80> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at sun.java2d.Disposer.run(Disposer.java:107)
        at java.lang.Thread.run(Thread.java:595)

"AWT-Windows" daemon prio=6 tid=0x032fc698 nid=0x1f9c runnable 
[0x0369f000..0x0369f9e8]
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(WToolkit.java:269)
        at java.lang.Thread.run(Thread.java:595)

"Low Memory Detector" daemon prio=6 tid=0x00abea10 nid=0x1954 runnable 
[0x00000000..0x00000000]

"CompilerThread0" daemon prio=10 tid=0x00abd610 nid=0x12a4 waiting on 
condition [0x00000000..0x02eff
948]

"Signal Dispatcher" daemon prio=10 tid=0x00abc378 nid=0xa48 waiting on 
condition [0x00000000..0x0000
0000]

"JDWP Event Helper Thread" daemon prio=6 tid=0x00abb108 nid=0x1968 
runnable [0x00000000..0x00000000]


"JDWP Transport Listener: dt_socket" daemon prio=6 tid=0x00037aa8 
nid=0x1c38 runnable [0x00000000..0
x02e3f7e8]

"Finalizer" daemon prio=8 tid=0x00aaa450 nid=0x1b90 in Object.wait() 
[0x02d7f000..0x02d7fa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12d6a858> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x12d6a858> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00aa8fe8 nid=0x1d78 in 
Object.wait() [0x009ef000..0x009efae
8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12d6a878> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:474)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x12d6a878> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00aa6520 nid=0x1340 runnable

"VM Periodic Task Thread" prio=10 tid=0x00abfe90 nid=0x156c waiting on 
condition


Found one Java-level deadlock:
=============================
"Thread-2":
  waiting to lock monitor 0x00aa9d44 (object 0x12d80f60, a 
java.awt.Component$AWTTreeLock),
  which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
  waiting to lock monitor 0x00aa9dc4 (object 0x13833c00, a 
edu.stanford.smi.protege.model.DefaultKno
wledgeBase),
  which is held by "Thread-2"

Java stack information for the threads listed above:
===================================================
"Thread-2":
        at java.awt.Container.getComponents_NoClientCode(Container.java:299)
        - waiting to lock <0x12d80f60> (a java.awt.Component$AWTTreeLock)
        at java.awt.Container.getComponents(Container.java:291)
        at 
edu.stanford.smi.protege.ui.ProjectView.getTabByClassName(Unknown Source)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin.getJambalayaTab(JambalayaProjectPlugi
n.java:247)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin.knowledgeBaseChanged(JambalayaProject
Plugin.java:164)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin.access$0(JambalayaProjectPlugin.java:
160)
        at 
ca.uvic.csr.shrimp.jambalaya.JambalayaProjectPlugin$1.ownSlotValueChanged(JambalayaProjec
tPlugin.java:49)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchFrameEvent(Unkn
own Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvent(Unknown 
S
ource)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown
Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown
Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchEvents(Unknown
Source)
        at 
edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.createCls(Unknown 
Sourc
e)
        at 
edu.stanford.smi.protege.model.framestore.undo.CreateClsCommand.doIt(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.simpleCommandExecute(Unknow
n Source)
        at 
edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.execute(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.createCls(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.createCls(Unknown 
So
urce)
        at 
edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.createCls(Unknown 
Sourc
e)
        at 
edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createCls(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createCls(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown 
Source)
        - locked <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
com.evincii.kb.z.ZProtegeClass.createProtegeClass(ZProtegeClass.java:182)
        at 
com.evincii.kb.z.ZProtegeClass.findOrCreateProtegeClass(ZProtegeClass.java:145)
        at com.evincii.kb.z.Z.toProtegeTerm(Z.java:400)
        at 
com.evincii.kb.protege.plugin.task.ImportTask.executeOne(ImportTask.java:116)
        at 
com.evincii.kb.protege.plugin.task.StandardManagedTask.run(StandardManagedTask.java:388)
        at java.lang.Thread.run(Thread.java:595)
"AWT-EventQueue-0":
        at 
edu.stanford.smi.protege.model.DefaultKnowledgeBase.getProject(Unknown 
Source)
        - waiting to lock <0x13833c00> (a 
edu.stanford.smi.protege.model.DefaultKnowledgeBase)
        at 
edu.stanford.smi.protege.model.DefaultFrame.getProject(Unknown Source)
        at 
edu.stanford.smi.protege.model.DefaultFrame.isInReadonlyProject(Unknown 
Source)
        at 
edu.stanford.smi.protege.model.DefaultFrame.isEditable(Unknown Source)
        at edu.stanford.smi.protege.ui.FrameRenderer.load(Unknown Source)
        at edu.stanford.smi.protege.util.DefaultRenderer.setup(Unknown 
Source)
        at 
edu.stanford.smi.protege.util.DefaultRenderer.getTreeCellRendererComponent(Unknown 
Source
)
        at 
javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.ja
va:2693)
        at 
javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
        at 
javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCache.java:535)
        at 
javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCache.java:181)
        at 
javax.swing.tree.AbstractLayoutCache.getPreferredWidth(AbstractLayoutCache.java:215)
        at 
javax.swing.plaf.basic.BasicTreeUI.updateCachedPreferredSize(BasicTreeUI.java:1731)
        at 
javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:1901)
        at 
javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:1889)
        at javax.swing.JComponent.getPreferredSize(JComponent.java:1615)
        at 
javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:769)
        at java.awt.Container.layout(Container.java:1401)
        at java.awt.Container.doLayout(Container.java:1390)
        at java.awt.Container.validateTree(Container.java:1473)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validate(Container.java:1448)
        - locked <0x12d80f60> (a java.awt.Component$AWTTreeLock)
        at 
javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:379)
        at 
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.
java:113)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at 
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at 
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at 
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Found 1 deadlock.






More information about the protege-discussion mailing list