gvSIG bugs #4234

Deadlock freezing gvSIG

Added by Andrea Antonello almost 8 years ago. Updated almost 8 years ago.

Status:Closed% Done:

0%

Priority:HighSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:Application
Target version:2.3.0-2433 (rev. org.gvsig.desktop-2.0.139, NOT USABLE)
Severity:Major Add-on version:
gvSIG version:2.3.0 Add-on build:
gvSIG build: Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

In my application I am editing layers programmatically, basically removing all, and the adding features to a store.

While doing so sometimes I get a gvSIG freeze which forces me to kill the application.
After triplechecking my code I tried to run jvisualVM on the frozen gvSIG and it detected a deadlock, which I find frightening.

I paste here the thread dump in the hope that someone can identify the problem that seems to come from the editing framework:

2016-06-17 14:26:09
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode):

"RMI TCP Connection(2)-127.0.0.1" #50 daemon prio=9 os_prio=0 tid=0x00007f9b6402f800 nid=0x1dad runnable [0x00007f9b230b6000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:170)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x00000006e5c04ad0> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:550)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$79(TCPTransport.java:683)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$40/2023055977.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - <0x00000006e5046be0> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"JMX server connection timeout 49" #49 daemon prio=9 os_prio=0 tid=0x00007f9b1000c000 nid=0x1daa in Object.wait() [0x00007f9b231b8000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:168)
    - locked <0x00000006e53a0a28> (a [I)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"RMI Scheduler(0)" #48 daemon prio=9 os_prio=0 tid=0x00007f9b10009000 nid=0x1da8 waiting on condition [0x00007f9b232b9000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000006e4f1c538> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"RMI TCP Connection(1)-127.0.0.1" #47 daemon prio=9 os_prio=0 tid=0x00007f9b6402e800 nid=0x1da7 runnable [0x00007f9b233b9000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:170)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x00000006e5339458> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:550)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$79(TCPTransport.java:683)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$40/2023055977.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - <0x00000006e5046570> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI TCP Accept-0" #46 daemon prio=9 os_prio=0 tid=0x00007f9b5c060000 nid=0x1da4 runnable [0x00007f9b3c11c000]
   java.lang.Thread.State: RUNNABLE
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
    at java.net.ServerSocket.implAccept(ServerSocket.java:545)
    at java.net.ServerSocket.accept(ServerSocket.java:513)
    at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"Attach Listener" #45 daemon prio=9 os_prio=0 tid=0x00007f9ba0001000 nid=0x1da0 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Thread-11" #44 prio=6 os_prio=0 tid=0x00007f9b700a7000 nid=0x1c85 waiting for monitor entry [0x00007f9b3c21c000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at java.awt.Component.addComponentListener(Component.java:5229)
    - waiting to lock <0x00000004c01ce2f0> (a org.gvsig.andami.ui.mdiFrame.MDIFrame)
    at javax.swing.AncestorNotifier.addListeners(AncestorNotifier.java:146)
    at javax.swing.AncestorNotifier.propertyChange(AncestorNotifier.java:221)
    at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
    at java.awt.Component.firePropertyChange(Component.java:8430)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000004be8ffdd8> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addImpl(Container.java:1121)
    - locked <0x00000004be8ffdd8> (a java.awt.Component$AWTTreeLock)
    at java.awt.Container.add(Container.java:973)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.showConsole(DefaultEditingContext.java:928)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.access$100(DefaultEditingContext.java:94)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext$1.editionChanged(DefaultEditingContext.java:157)
    - locked <0x00000006da2a3700> (a org.gvsig.vectorediting.swing.impl.DefaultEditingContext)
    at org.gvsig.fmap.mapcontext.layers.FLyrDefault.callEditionChanged(FLyrDefault.java:646)
    at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.update(FLyrVect.java:986)
    at org.gvsig.tools.observer.impl.BaseWeakReferencingObservable.notify(BaseWeakReferencingObservable.java:305)
    at org.gvsig.tools.observer.impl.DelegateWeakReferencingObservable.notify(DelegateWeakReferencingObservable.java:54)
    at org.gvsig.tools.observer.impl.BaseWeakReferencingObservable.notifyObservers(BaseWeakReferencingObservable.java:164)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.notifyChange(DefaultFeatureStore.java:705)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.notifyChange(DefaultFeatureStore.java:675)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.edit(DefaultFeatureStore.java:896)
    - locked <0x00000006d9df99e0> (a org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.edit(DefaultFeatureStore.java:861)
    - locked <0x00000006d9df99e0> (a org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore)
    at com.hydrologis.soleon.droneplanner.GenerateFlightLineExtension.process(GenerateFlightLineExtension.java:382)
    at com.hydrologis.soleon.droneplanner.GenerateFlightLineExtension$1.run(GenerateFlightLineExtension.java:131)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"MapControl Drawer Worker" #42 prio=6 os_prio=0 tid=0x00007f9b701ce000 nid=0x1c83 in Object.wait() [0x00007f9b3c51e000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.gvsig.fmap.mapcontrol.MapControl$Drawer.take(MapControl.java:1525)
    - locked <0x00000006da459530> (a org.gvsig.fmap.mapcontrol.MapControl$Drawer)
    at org.gvsig.fmap.mapcontrol.MapControl$Drawer$Worker.run(MapControl.java:1559)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"Thread-10" #41 daemon prio=6 os_prio=0 tid=0x00007f9b701bf000 nid=0x1c82 in Object.wait() [0x00007f9b3d173000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1482)
    - locked <0x00000004be911b78> (a java.util.LinkedList)

   Locked ownable synchronizers:
    - None

"MapControl Drawer Worker" #40 prio=6 os_prio=0 tid=0x00007f9b701bb000 nid=0x1c81 in Object.wait() [0x00007f9b3d072000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.gvsig.fmap.mapcontrol.MapControl$Drawer.take(MapControl.java:1525)
    - locked <0x00000006da1298b0> (a org.gvsig.fmap.mapcontrol.MapControl$Drawer)
    at org.gvsig.fmap.mapcontrol.MapControl$Drawer$Worker.run(MapControl.java:1559)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"DestroyJavaVM" #32 prio=5 os_prio=0 tid=0x00007f9c04010800 nid=0x1c50 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"WeakCollectionCleaner" #30 daemon prio=8 os_prio=0 tid=0x00007f9b72113800 nid=0x1c78 in Object.wait() [0x00007f9b3d274000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x00000006ce3c5290> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:77)

   Locked ownable synchronizers:
    - None

"Timer-2" #29 prio=6 os_prio=0 tid=0x00007f9b710f3800 nid=0x1c76 in Object.wait() [0x00007f9b3dbe5000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x00000004c052fec0> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)

   Locked ownable synchronizers:
    - None

"Thread-6" #28 prio=6 os_prio=0 tid=0x00007f9b70ff0000 nid=0x1c75 in Object.wait() [0x00007f9b3dee6000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at org.gvsig.raster.reproject.app.preparelayer.ReprojectionQueue.run(ReprojectionQueue.java:64)
    - locked <0x00000004c0530120> (a org.gvsig.raster.reproject.app.preparelayer.ReprojectionQueue)

   Locked ownable synchronizers:
    - None

"TimerQueue" #27 daemon prio=5 os_prio=0 tid=0x00007f9b700e0000 nid=0x1c74 runnable [0x00007f9b7ce35000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000004c052fbd8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:223)
    at javax.swing.TimerQueue.run(TimerQueue.java:171)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - <0x00000004c052fc20> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"Timer-1" #25 daemon prio=5 os_prio=0 tid=0x00007f9c07cad000 nid=0x1c73 in Object.wait() [0x00007f9b7d14f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x00000004bf523ae0> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)

   Locked ownable synchronizers:
    - None

"HSQLDB Timer @347b370c" #24 daemon prio=5 os_prio=0 tid=0x00007f9c07cbb800 nid=0x1c72 in Object.wait() [0x00007f9b7cd02000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.hsqldb.lib.HsqlTimer$TaskQueue.park(Unknown Source)
    - locked <0x00000004bf7528e0> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
    at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
    - locked <0x00000004bf7528e0> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
    at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"WeakCollectionCleaner" #23 daemon prio=5 os_prio=0 tid=0x00007f9c069a8800 nid=0x1c71 in Object.wait() [0x00007f9b7d856000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x00000004bf7a5978> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:73)

   Locked ownable synchronizers:
    - None

"Thread-2" #20 prio=5 os_prio=0 tid=0x00007f9c04a44800 nid=0x1c6b waiting on condition [0x00007f9b7edc2000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at org.gvsig.andami.ui.splash.Timer.run(Timer.java:142)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"AWT-EventQueue-0" #17 prio=6 os_prio=0 tid=0x00007f9c0495c800 nid=0x1c69 waiting for monitor entry [0x00007f9b7f3c2000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at java.awt.Component.show(Component.java:1635)
    - waiting to lock <0x00000004be8ffdd8> (a java.awt.Component$AWTTreeLock)
    at java.awt.Component.show(Component.java:1673)
    at java.awt.Component.setVisible(Component.java:1625)
    at javax.swing.JComponent.setVisible(JComponent.java:2644)
    at org.gvsig.andami.ui.mdiFrame.MDIFrame.enableControls(MDIFrame.java:1240)
    at org.gvsig.andami.ui.mdiFrame.MDIFrame.refreshControls(MDIFrame.java:1370)
    - locked <0x00000004c01ce2f0> (a org.gvsig.andami.ui.mdiFrame.MDIFrame)
    at org.gvsig.andami.ui.mdiFrame.MDIFrame$12.run(MDIFrame.java:1330)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:50)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

   Locked ownable synchronizers:
    - None

"AWT-Shutdown" #18 prio=5 os_prio=0 tid=0x00007f9c0495b800 nid=0x1c68 in Object.wait() [0x00007f9b7f4c5000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
    - locked <0x00000004bea3dd78> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"AWT-XAWT" #16 daemon prio=6 os_prio=0 tid=0x00007f9c04786000 nid=0x1c67 runnable [0x00007f9b7fbee000]
   java.lang.Thread.State: RUNNABLE
    at sun.awt.X11.XToolkit.waitForEvents(Native Method)
    at sun.awt.X11.XToolkit.run(XToolkit.java:568)
    at sun.awt.X11.XToolkit.run(XToolkit.java:532)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"Java2D Disposer" #14 daemon prio=10 os_prio=0 tid=0x00007f9c04764800 nid=0x1c66 in Object.wait() [0x00007f9bb41d4000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x00000004beae82f8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at sun.java2d.Disposer.run(Disposer.java:148)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"Timer-0" #12 daemon prio=5 os_prio=0 tid=0x00007f9c045f3000 nid=0x1c65 in Object.wait() [0x00007f9bb6044000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x00000004bea56c78> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)

   Locked ownable synchronizers:
    - None

"Service Thread" #11 daemon prio=9 os_prio=0 tid=0x00007f9c040fd000 nid=0x1c63 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C1 CompilerThread3" #10 daemon prio=9 os_prio=0 tid=0x00007f9c040df800 nid=0x1c62 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread2" #9 daemon prio=9 os_prio=0 tid=0x00007f9c040dd800 nid=0x1c61 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread1" #8 daemon prio=9 os_prio=0 tid=0x00007f9c040db800 nid=0x1c60 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread0" #7 daemon prio=9 os_prio=0 tid=0x00007f9c040d8800 nid=0x1c5f waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"JDWP Event Helper Thread" #6 daemon prio=10 os_prio=0 tid=0x00007f9c040d6800 nid=0x1c5e runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"JDWP Transport Listener: dt_socket" #5 daemon prio=10 os_prio=0 tid=0x00007f9c040d3000 nid=0x1c5d runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f9c040c5000 nid=0x1c5c runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f9c0408d800 nid=0x1c5b in Object.wait() [0x00007f9bb6e18000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x00000004be946d38> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

   Locked ownable synchronizers:
    - None

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f9c0408b800 nid=0x1c5a in Object.wait() [0x00007f9bb6f19000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
    - locked <0x00000004be924330> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
    - None

"VM Thread" os_prio=0 tid=0x00007f9c04086800 nid=0x1c59 runnable 

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f9c04026000 nid=0x1c51 runnable 

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f9c04027800 nid=0x1c52 runnable 

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f9c04029800 nid=0x1c53 runnable 

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f9c0402b000 nid=0x1c54 runnable 

"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x00007f9c0402d000 nid=0x1c55 runnable 

"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x00007f9c0402e800 nid=0x1c56 runnable 

"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x00007f9c04030800 nid=0x1c57 runnable 

"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x00007f9c04032000 nid=0x1c58 runnable 

"VM Periodic Task Thread" os_prio=0 tid=0x00007f9c04108000 nid=0x1c64 waiting on condition 

JNI global references: 11170

Found one Java-level deadlock:
=============================
"Thread-11":
  waiting to lock monitor 0x00007f9c04691008 (object 0x00000004c01ce2f0, a org.gvsig.andami.ui.mdiFrame.MDIFrame),
  which is held by "AWT-EventQueue-0" 
"AWT-EventQueue-0":
  waiting to lock monitor 0x00007f9c051b30b8 (object 0x00000004be8ffdd8, a java.awt.Component$AWTTreeLock),
  which is held by "Thread-11" 

Java stack information for the threads listed above:
===================================================
"Thread-11":
    at java.awt.Component.addComponentListener(Component.java:5229)
    - waiting to lock <0x00000004c01ce2f0> (a org.gvsig.andami.ui.mdiFrame.MDIFrame)
    at javax.swing.AncestorNotifier.addListeners(AncestorNotifier.java:146)
    at javax.swing.AncestorNotifier.propertyChange(AncestorNotifier.java:221)
    at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
    at java.awt.Component.firePropertyChange(Component.java:8430)
    at javax.swing.JComponent.addNotify(JComponent.java:4741)
    at java.awt.Container.addNotify(Container.java:2773)
    - locked <0x00000004be8ffdd8> (a java.awt.Component$AWTTreeLock)
    at javax.swing.JComponent.addNotify(JComponent.java:4740)
    at java.awt.Container.addImpl(Container.java:1121)
    - locked <0x00000004be8ffdd8> (a java.awt.Component$AWTTreeLock)
    at java.awt.Container.add(Container.java:973)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.showConsole(DefaultEditingContext.java:928)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.access$100(DefaultEditingContext.java:94)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext$1.editionChanged(DefaultEditingContext.java:157)
    - locked <0x00000006da2a3700> (a org.gvsig.vectorediting.swing.impl.DefaultEditingContext)
    at org.gvsig.fmap.mapcontext.layers.FLyrDefault.callEditionChanged(FLyrDefault.java:646)
    at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.update(FLyrVect.java:986)
    at org.gvsig.tools.observer.impl.BaseWeakReferencingObservable.notify(BaseWeakReferencingObservable.java:305)
    at org.gvsig.tools.observer.impl.DelegateWeakReferencingObservable.notify(DelegateWeakReferencingObservable.java:54)
    at org.gvsig.tools.observer.impl.BaseWeakReferencingObservable.notifyObservers(BaseWeakReferencingObservable.java:164)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.notifyChange(DefaultFeatureStore.java:705)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.notifyChange(DefaultFeatureStore.java:675)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.edit(DefaultFeatureStore.java:896)
    - locked <0x00000006d9df99e0> (a org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.edit(DefaultFeatureStore.java:861)
    - locked <0x00000006d9df99e0> (a org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore)
    at com.hydrologis.soleon.droneplanner.GenerateFlightLineExtension.process(GenerateFlightLineExtension.java:382)
    at com.hydrologis.soleon.droneplanner.GenerateFlightLineExtension$1.run(GenerateFlightLineExtension.java:131)
    at java.lang.Thread.run(Thread.java:745)
"AWT-EventQueue-0":
    at java.awt.Component.show(Component.java:1635)
    - waiting to lock <0x00000004be8ffdd8> (a java.awt.Component$AWTTreeLock)
    at java.awt.Component.show(Component.java:1673)
    at java.awt.Component.setVisible(Component.java:1625)
    at javax.swing.JComponent.setVisible(JComponent.java:2644)
    at org.gvsig.andami.ui.mdiFrame.MDIFrame.enableControls(MDIFrame.java:1240)
    at org.gvsig.andami.ui.mdiFrame.MDIFrame.refreshControls(MDIFrame.java:1370)
    - locked <0x00000004c01ce2f0> (a org.gvsig.andami.ui.mdiFrame.MDIFrame)
    at org.gvsig.andami.ui.mdiFrame.MDIFrame$12.run(MDIFrame.java:1330)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:50)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Found 1 deadlock.

Associated revisions

Revision 876
Added by Joaquín del Cerro Murciano almost 8 years ago

refs #4234, sincronozado con el thread de swing el manejo de la consola.

History

#1 Updated by Joaquín del Cerro Murciano almost 8 years ago

  • Description updated (diff)

#2 Updated by Joaquín del Cerro Murciano almost 8 years ago

  • Target version set to 2.3.0-2447-final (rev. org.gvsig.desktop-2.0.153)

#3 Updated by Joaquín del Cerro Murciano almost 8 years ago

Por lo que se ve en la traza es un problema en el DefaultEditingContext que intenta mostrar la consola de edición desde un hilo que no es el hilo de eventos de swing. Esto provocaba un bloque cuando desde el hilo de eventos de swing se intenta mostrar simultáneamente otro componente. He añadido código para que el manejo de la consola de edición y la actualización de los botones y menús de gvSIG se haga en el thread de swing.

As seen in the trace is a problem in the DefaultEditingContext when trying to show the editing console from other thread than the swing events thread . This caused a block when from the swing event thread attempting to simultaneously display another component. I added code to manage the editing console and update the gvSIG buttons and menus in the swing event thread.

#4 Updated by Joaquín del Cerro Murciano almost 8 years ago

  • Target version changed from 2.3.0-2447-final (rev. org.gvsig.desktop-2.0.153) to 2.3.0-2433 (rev. org.gvsig.desktop-2.0.139, NOT USABLE)
  • Assignee set to Joaquín del Cerro Murciano
  • Status changed from New to Fixed

#5 Updated by Álvaro Anguix almost 8 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF