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-dev] [protege-discussion] Problem with events and database backing

clemens utschig clemens.utschig at gmail.com
Mon Feb 17 09:29:43 PST 2014


I cant change the protege app ... the problem is that instances are updated
underneath - via API and if i then use the protege application I get the
deadlock ...

        at
edu.stanford.smi.protege.model.DefaultCls.createDirectInstance(DefaultCls.java:49)
************************************************** this is the api creating
the thing
        at
org.soacommunity.platform.a2x.ontology.A2XOntologyFactory.createEntity(A2XOntologyFactory.java:445)
        at
TestConcurrentBundles.testBundleEvents(TestConcurrentBundles.java:90)

I tried to use the swing utilities (as in the wiki) to do the above update
(in its own thread) - but unfortunately no luck ...

I cant' turn off events as I have a few listeners myself ...

Cheers



On Mon, Feb 17, 2014 at 4:32 PM, clemens utschig
<clemens.utschig at gmail.com>wrote:

> ok next step, a deadlock if I try to update an instance directly in the
> knowledgebase with the protege app sitting on the same project instance
>
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createInstance(De
> faultKnowledgeBase.java:412)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createInstance(De
> faultKnowledgeBase.java:407)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createInstance(De
> faultKnowledgeBase.java:399)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultCls.createDirectInstance(Defaul
> tCls.java:49)
>         at
> org.soacommunity.platform.a2x.ontology.A2XOntologyFactory.createEntit
> y(A2XOntologyFactory.java:445)
>         at
> TestConcurrentBundles.testBundleEvents(TestConcurrentBundles.java:90)
>
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework
> Method.java:45)
>         at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal
> lable.java:15)
>         at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe
> thod.java:42)
>         at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMet
> hod.java:20)
>         at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
> ner.java:68)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
> ner.java:47)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
>         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
>         at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4
> TestReference.java:46)
>         at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution
> .java:38)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(Remot
> eTestRunner.java:467)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(Remot
> eTestRunner.java:683)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTest
> Runner.java:390)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTes
> tRunner.java:197)
>
> "VM Thread" prio=10 tid=0x02b3c800 nid=0x1b70 runnable
>
> "VM Periodic Task Thread" prio=10 tid=0x02b96000 nid=0x232c waiting on
> condition
>
>
> JNI global references: 2250
>
>
> Found one Java-level deadlock:
> =============================
> "AWT-EventQueue-0":
>   waiting to lock monitor 0x02b7bf24 (object 0x286513c8, a
> edu.stanford.smi.prot
> ege.model.DefaultKnowledgeBase),
>   which is held by "main"
> "main":
>   waiting to lock monitor 0x0329a604 (object 0x27f7d4d0, a
> java.awt.Component$AW
> TTreeLock),
>   which is held by "AWT-EventQueue-0"
>
> Java stack information for the threads listed above:
> ===================================================
> "AWT-EventQueue-0":
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.getSystemFrames(D
> efaultKnowledgeBase.java:127)
>         - waiting to lock <0x286513c8> (a
> edu.stanford.smi.protege.model.Default
> KnowledgeBase)
>         at
> edu.stanford.smi.protege.model.DefaultFrame.isSystem(DefaultFrame.jav
> a:334)
>         at
> edu.stanford.smi.protege.model.DefaultFrame.isIncluded(DefaultFrame.j
> ava:330)
>         at
> edu.stanford.smi.protege.model.DefaultFrame.isEditable(DefaultFrame.j
> ava:322)
>         at
> edu.stanford.smi.protege.ui.FrameRenderer.load(FrameRenderer.java:107
> )
>         at
> edu.stanford.smi.protege.util.DefaultRenderer.setup(DefaultRenderer.j
> ava:464)
>         at
> edu.stanford.smi.protege.util.DefaultRenderer.getTreeCellRendererComp
> onent(DefaultRenderer.java:230)
>         at
> javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimen
> sions(BasicTreeUI.java:2712)
>         at
> javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayout
> Cache.java:475)
>         at
> javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCa
> che.java:535)
>         at
> javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCa
> che.java:169)
>         at
> javax.swing.tree.AbstractLayoutCache.getPreferredWidth(AbstractLayout
> Cache.java:215)
>         at
> javax.swing.plaf.basic.BasicTreeUI.updateCachedPreferredSize(BasicTre
> eUI.java:1820)
>         at
> javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:
> 1921)
>         at
> javax.swing.plaf.basic.BasicTreeUI.getPreferredSize(BasicTreeUI.java:
> 1909)
>         at javax.swing.JComponent.getPreferredSize(JComponent.java:1634)
>         at
> javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:76
> 9)
>         at java.awt.Container.layout(Container.java:1421)
>         at java.awt.Container.doLayout(Container.java:1410)
>         at java.awt.Container.validateTree(Container.java:1507)
>         at java.awt.Container.validate(Container.java:1480)
>         - locked <0x27f7d4d0> (a java.awt.Component$AWTTreeLock)
>         at
> javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.j
> ava:669)
>         at
> javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(System
> EventQueueUtilities.java:124)
>         at
> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
>         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
>         at java.awt.EventQueue.access$000(EventQueue.java:84)
>         at java.awt.EventQueue$1.run(EventQueue.java:602)
>         at java.awt.EventQueue$1.run(EventQueue.java:600)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
> ntrolContext.java:87)
>         at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
>         at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
> ad.java:269)
>         at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
> java:184)
>         at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
> ad.java:174)
>         at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
>
>         at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
>
>         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
> "main":
>         at java.awt.Component.setFont(Component.java:1798)
>         - waiting to lock <0x27f7d4d0> (a java.awt.Component$AWTTreeLock)
>         at java.awt.Container.setFont(Container.java:1554)
>         at javax.swing.JComponent.setFont(JComponent.java:2723)
>         at
> edu.stanford.smi.protege.util.DefaultRenderer.setup(DefaultRenderer.j
> ava:451)
>         at
> edu.stanford.smi.protege.util.DefaultRenderer.getTreeCellRendererComp
> onent(DefaultRenderer.java:230)
>         at
> javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimen
> sions(BasicTreeUI.java:2712)
>         at
> javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayout
> Cache.java:475)
>         at
> javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCa
> che.java:535)
>         at
> javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCa
> che.java:181)
>         at
> javax.swing.plaf.basic.BasicTreeUI.getPathBounds(BasicTreeUI.java:510
> )
>         at
> javax.swing.plaf.basic.BasicTreeUI.getPathBounds(BasicTreeUI.java:503
> )
>         at javax.swing.JTree.getPathBounds(JTree.java:2063)
>         at javax.swing.JTree.getRowBounds(JTree.java:2076)
>         at
> edu.stanford.smi.protege.util.DefaultRenderer.getPreferredSize(Defaul
> tRenderer.java:138)
>         at
> javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimen
> sions(BasicTreeUI.java:2721)
>         at
> javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayout
> Cache.java:475)
>         at
> javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCa
> che.java:535)
>         at
> javax.swing.tree.FixedHeightLayoutCache.getBounds(FixedHeightLayoutCa
> che.java:181)
>         at
> javax.swing.plaf.basic.BasicTreeUI.getPathBounds(BasicTreeUI.java:510
> )
>         at
> javax.swing.plaf.basic.BasicTreeUI.getPathBounds(BasicTreeUI.java:503
> )
>         at
> javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesChanged(BasicTree
> UI.java:3765)
>         at
> javax.swing.tree.DefaultTreeModel.fireTreeNodesChanged(DefaultTreeMod
> el.java:468)
>         at
> javax.swing.tree.DefaultTreeModel.nodesChanged(DefaultTreeModel.java:
> 330)
>         at
> javax.swing.tree.DefaultTreeModel.nodeChanged(DefaultTreeModel.java:2
> 61)
>         at
> edu.stanford.smi.protege.util.LazyTreeRoot.notifyNodeChanged(LazyTree
> Root.java:84)
>         at
> edu.stanford.smi.protege.util.LazyTreeNode.notifyNodeChanged(LazyTree
> Node.java:368)
>         at
> edu.stanford.smi.protege.util.LazyTreeNode.notifyNodeChanged(LazyTree
> Node.java:368)
>         at
> edu.stanford.smi.protege.util.LazyTreeNode.notifyNodeChanged(LazyTree
> Node.java:368)
>         at
> edu.stanford.smi.protege.ui.ParentChildNode.notifyNodeChanged(ParentC
> hildNode.java:130)
>         at
> edu.stanford.smi.protege.ui.ParentChildNode$1.directInstanceAdded(ParentChildNode.java:42)
> ****************************************************** UI Listener?
>         at
> edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dispatchClsEvent(EventDispatchFrameStore.java:425)
>         at
> edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dis
> patchEvent(EventDispatchFrameStore.java:296)
>         at
> edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dis
> patchEvents(EventDispatchFrameStore.java:269)
>         at
> edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dis
> patchEvents(EventDispatchFrameStore.java:241)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.dis
> patchEvents(EventDispatchFrameStore.java:232)
>         at
> edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.cre
> ateSimpleInstance(EventDispatchFrameStore.java:814)
>         at
> edu.stanford.smi.protege.model.framestore.undo.CreateSimpleInstanceCo
> mmand.doIt(CreateSimpleInstanceCommand.java:22)
>         at
> edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.simpleC
> ommandExecute(UndoFrameStore.java:90)
>         at
> edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.execute
> (UndoFrameStore.java:84)
>         at
> edu.stanford.smi.protege.model.framestore.undo.UndoFrameStore.createS
> impleInstance(UndoFrameStore.java:171)
>         at
> edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.
> createSimpleInstance(ArgumentCheckingFrameStore.java:137)
>         at
> edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.cre
> ateSimpleInstance(ChangeMonitorFrameStore.java:46)
>         at
> edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createSim
> pleInstance(FrameStoreAdapter.java:306)
>         at
> edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createSim
> pleInstance(FrameStoreAdapter.java:306)
>         at
> edu.stanford.smi.protege.model.framestore.ImmutableNamesFrameStore.cr
> eateSimpleInstance(ImmutableNamesFrameStore.java:89)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createSimpleInsta
> nce(DefaultKnowledgeBase.java:230)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createInstance(De
> faultKnowledgeBase.java:430)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createInstance(De
> faultKnowledgeBase.java:412)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createInstance(De
> faultKnowledgeBase.java:407)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultKnowledgeBase.createInstance(De
> faultKnowledgeBase.java:399)
>         - locked <0x286513c8> (a
> edu.stanford.smi.protege.model.DefaultKnowledge
> Base)
>         at
> edu.stanford.smi.protege.model.DefaultCls.createDirectInstance(DefaultCls.java:49)
> ************************************************** this is the api creating
> the thing
>         at
> org.soacommunity.platform.a2x.ontology.A2XOntologyFactory.createEntit
> y(A2XOntologyFactory.java:445)
>         at
> TestConcurrentBundles.testBundleEvents(TestConcurrentBundles.java:90)
>
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework
> Method.java:45)
>         at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal
> lable.java:15)
>         at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe
> thod.java:42)
>         at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMet
> hod.java:20)
>         at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
> ner.java:68)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
> ner.java:47)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>         at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
>         at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
>         at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4
> TestReference.java:46)
>         at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution
> .java:38)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(Remot
> eTestRunner.java:467)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(Remot
> eTestRunner.java:683)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTest
> Runner.java:390)
>         at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTes
> tRunner.java:197)
>
> Found 1 deadlock.
>
> -------------------------
> Arg ...
>
>
> On Mon, Feb 17, 2014 at 12:56 PM, clemens utschig <
> clemens.utschig at gmail.com> wrote:
>
>> So, i got to the point of sneaking a kb object under the protege app at
>> runtime -
>> pretty much a new constructor in project (using the code from the one
>> with uri, and calling all the methods) and then projectmanager.getpm.
>> setcurrentproject...
>>
>>     public Project(KnowledgeBase base, Collection errors, URI projectUri)
>>     {
>>         if (log.isLoggable(Level.FINE)) {
>>           log.fine("Creating Project " + "HACK" + " multiserver = " +
>> isMultiUserServer);
>>         }
>>         setProjectURI(projectUri);
>>         _projectKB = base; // loadProjectKB(uri, factory, errors);
>>
>>         ProjectFixupsPluginManager.fixProject(_projectKB);
>>         removeUnreferencedInstances(_projectKB);
>>
>>         if (_projectKB != null) {
>>             _projectInstance = getProjectInstance(_projectKB);
>>         }
>>
>>         createDomainKnowledgeBase(base.getKnowledgeBaseFactory(), errors,
>> true);
>>         setupJournaling();
>>         updateKBNames();
>>     }
>>
>> Seriously - almost there, but now i really need your help - all the
>> default widgets are working - but when i click on an instance within the
>> instances tab the instance form does not show? no error whatsoever
>>
>> If i use the default project constructor (with a string) and do the same
>> thing - the instance form does show up.. Unfortunately i cant debug into
>> this with all the threads running around, so i really need some advice here
>> - is there some other magic? some flag needed to be set...
>>
>> On Sunday, February 16, 2014, clemens utschig <clemens.utschig at gmail.com>
>> wrote:
>> > Hey timothy - first of all thanks a ton for the reply.
>> >
>> > Yes i am on version 3.5.. The problem is that i cant create a server
>> project first as i use the ontology to configure a (remote) application on
>> the fly - and want to use the protege app to do configuration on top of
>> that - think of the ontology as a graph within a deployable server app. And
>> i dont want to start messing with two servers (my own and its lifecyle and
>> the protege one ;-)
>> >
>> > I'll try to tweak the protege app tmrw a little - and see if i can
>> sneak a project instance underneath it on the fly (rather than it *owning*
>> and opening a uri..)..
>> >
>> > If you have some other super smart idea, any help is appreciated...
>> >
>> > Cheers from germany, i actually studied at stanford during my time in
>> san francisco ;-)
>> >
>> > On Saturday, February 15, 2014, Timothy Redmond <tredmond at stanford.edu>
>> wrote:
>> >>
>> >> Just in case you didn't see my reply.
>> >>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.stanford.edu/pipermail/protege-dev/attachments/20140217/29f28817/attachment-0001.html>


More information about the protege-dev mailing list