Project: mulestudio
Issue STUDIO-5761: Drawing of the editors it's working too slowly in comparison with Gasher and with big projects it is imposible to use
I'm attaching a video, in the Left side you can see how Gasher release works and in the right side you can see the Nightly build. When having big projects it is taking too long to render an editor. Here is a Thread dump {code} 2014-11-14 10:37:47 Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode): "RMI TCP Connection(4)-192.168.79.1" daemon prio=5 tid=0x000000010309b000 nid=0x1828f runnable [0x00000001278cd000] java.lang.Thread.State: RUNNABLE java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:152) java.net.SocketInputStream.read(SocketInputStream.java:122) java.io.BufferedInputStream.fill(BufferedInputStream.java:235) java.io.BufferedInputStream.read(BufferedInputStream.java:254)	- locked <0x00000007f5661bf8> (a java.io.BufferedInputStream) java.io.FilterInputStream.read(FilterInputStream.java:83) sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:538) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers:	- <0x00000007f208b9e0> (a java.util.concurrent.ThreadPoolExecutor$Worker) "RMI TCP Connection(3)-192.168.79.1" daemon prio=5 tid=0x000000011e543800 nid=0xee0f in Object.wait() [0x00000001077ba000] java.lang.Thread.State: WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007f4c1fc70> (a java.lang.Object) java.lang.Object.wait(Object.java:503) org.netbeans.lib.profiler.global.TransactionalSupport.beginTrans(TransactionalSupport.java:107)	- locked <0x00000007f4c1fc70> (a java.lang.Object) org.netbeans.lib.profiler.global.TransactionalSupport.beginTrans(TransactionalSupport.java:76) org.netbeans.lib.profiler.server.ProfilerInterface.classLoadHook(ProfilerInterface.java:926) java.net.AbstractPlainSocketImpl.close(AbstractPlainSocketImpl.java:502)	- locked <0x00000007f208a0a8> (a java.lang.Object) java.net.SocksSocketImpl.close(SocksSocketImpl.java:1077) java.net.Socket.close(Socket.java:1441)	- locked <0x00000007f208a000> (a java.lang.Object)	- locked <0x00000007f2089fe0> (a java.net.Socket) sun.rmi.transport.tcp.TCPConnection.close(TCPConnection.java:222) sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:585) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers:	- <0x00000007f208abc0> (a java.util.concurrent.ThreadPoolExecutor$Worker) "*** Profiler Agent Special Execution Thread 2" daemon prio=5 tid=0x000000011acac000 nid=0xfa07 runnable [0x0000000127cf3000] java.lang.Thread.State: RUNNABLE org.netbeans.lib.profiler.server.system.Classes.cacheLoadedClasses(Native Method) org.netbeans.lib.profiler.server.ProfilerInterface.cacheLoadedClasses(ProfilerInterface.java:1384) org.netbeans.lib.profiler.server.ProfilerInterface.getLoadedClasses(ProfilerInterface.java:798) org.netbeans.lib.profiler.server.ProfilerInterface.access$600(ProfilerInterface.java:71) org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.initiateInstrumentation(ProfilerInterface.java:208) org.netbeans.lib.profiler.server.ProfilerInterface$InitiateProfilingThread.run(ProfilerInterface.java:138) Locked ownable synchronizers:	- None "*** Profiler Agent Special Execution Thread 6" daemon prio=5 tid=0x000000011e917000 nid=0x1150f in Object.wait() [0x00000001279f3000] java.lang.Thread.State: WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007f4b8df80> (a java.lang.Object) java.lang.Object.wait(Object.java:503) org.netbeans.lib.profiler.server.ProfilerServer$SeparateCmdExecutionThread.run(ProfilerServer.java:289)	- locked <0x00000007f4b8df80> (a java.lang.Object) Locked ownable synchronizers:	- None "*** JFluid Monitor thread ***" daemon prio=5 tid=0x000000011ed76800 nid=0x18f07 sleeping[0x0000000126584000] java.lang.Thread.State: TIMED_WAITING (sleeping) java.lang.Thread.sleep(Native Method) org.netbeans.lib.profiler.server.Monitors$SurvGenAndThreadsMonitor.run(Monitors.java:186) Locked ownable synchronizers:	- None "*** Profiler Agent Communication Thread" daemon prio=5 tid=0x000000012807c000 nid=0xf907 runnable [0x0000000125303000] java.lang.Thread.State: RUNNABLE java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:152) java.net.SocketInputStream.read(SocketInputStream.java:122) java.net.SocketInputStream.read(SocketInputStream.java:210) java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2293) java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2473) java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2543) java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2615) java.io.ObjectInputStream.read(ObjectInputStream.java:841) org.netbeans.lib.profiler.wireprotocol.WireIO.receiveCommandOrResponse(WireIO.java:88) org.netbeans.lib.profiler.server.ProfilerServer.listenToClient(ProfilerServer.java:1720) org.netbeans.lib.profiler.server.ProfilerServer.run(ProfilerServer.java:690) Locked ownable synchronizers:	- None "RMI TCP Connection(2)-192.168.79.1" daemon prio=5 tid=0x00000001281e6800 nid=0x1924f runnable [0x00000001276c7000] java.lang.Thread.State: RUNNABLE java.net.SocketInputStream.read(SocketInputStream.java:152) java.net.SocketInputStream.read(SocketInputStream.java:122) java.io.BufferedInputStream.fill(BufferedInputStream.java:235) java.io.BufferedInputStream.read(BufferedInputStream.java:254)	- locked <0x00000007f2458ca0> (a java.io.BufferedInputStream) java.io.FilterInputStream.read(FilterInputStream.java:83) sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:538) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers:	- <0x00000007f2089da0> (a java.util.concurrent.ThreadPoolExecutor$Worker) "JMX server connection timeout 293" daemon prio=5 tid=0x000000011ec53800 nid=0xe213 in Object.wait() [0x0000000127448000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007f213fa90> (a [I) com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:168)	- locked <0x00000007f213fa90> (a [I) java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers:	- None "RMI Scheduler(0)" daemon prio=5 tid=0x000000011ad5f800 nid=0x1012b waiting on condition [0x0000000126f00000] java.lang.Thread.State: TIMED_WAITING (parking) sun.misc.Unsafe.park(Native Method)	- parking to wait for <0x00000007f2022938> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers:	- None "RMI TCP Connection(1)-192.168.79.1" daemon prio=5 tid=0x000000011adb1800 nid=0x11a5f runnable [0x0000000126687000] java.lang.Thread.State: RUNNABLE java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:152) java.net.SocketInputStream.read(SocketInputStream.java:122) java.io.BufferedInputStream.fill(BufferedInputStream.java:235) java.io.BufferedInputStream.read(BufferedInputStream.java:254)	- locked <0x00000007f20f27b8> (a java.io.BufferedInputStream) java.io.FilterInputStream.read(FilterInputStream.java:83) sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:538) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers:	- <0x00000007f2088ec0> (a java.util.concurrent.ThreadPoolExecutor$Worker) "RMI TCP Accept-0" daemon prio=5 tid=0x000000011e80e800 nid=0x1a72b runnable [0x000000011dee1000] java.lang.Thread.State: RUNNABLE java.net.PlainSocketImpl.socketAccept(Native Method) java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398) java.net.ServerSocket.implAccept(ServerSocket.java:530) java.net.ServerSocket.accept(ServerSocket.java:498) sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52) sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:388) sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:360) java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers:	- None "Attach Listener" daemon prio=5 tid=0x00000001172fa000 nid=0x10733 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers:	- None "Worker-43" prio=5 tid=0x00000001202ed000 nid=0xf20f in Object.wait() [0x000000011cb93000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007d29a81c0> (a org.eclipse.core.internal.jobs.WorkerPool) org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)	- locked <0x00000007d29a81c0> (a org.eclipse.core.internal.jobs.WorkerPool) org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) org.eclipse.core.internal.jobs.Worker.run(Worker.java:51) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x0000000117629800 nid=0x1a357 in Object.wait() [0x0000000126a0f000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007ee894ff8> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007ee894ff8> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x000000011ee2a000 nid=0x1a137 in Object.wait() [0x0000000127bf0000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007ee904108> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007ee904108> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x000000010197e800 nid=0x19d07 in Object.wait() [0x0000000126481000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007edfaac98> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007edfaac98> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x000000011e846000 nid=0x19913 in Object.wait() [0x00000001277ca000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007ec9ba998> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007ec9ba998> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x0000000104610800 nid=0x19503 in Object.wait() [0x00000001275c4000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007ebf67940> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007ebf67940> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "Worker-33" prio=5 tid=0x00000001019f8000 nid=0x18d03 in Object.wait() [0x00000001270d6000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007d29a81c0> (a org.eclipse.core.internal.jobs.WorkerPool) org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)	- locked <0x00000007d29a81c0> (a org.eclipse.core.internal.jobs.WorkerPool) org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) org.eclipse.core.internal.jobs.Worker.run(Worker.java:51) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x00000001172a4800 nid=0x1890b in Object.wait() [0x000000012681f000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007ebad6260> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007ebad6260> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x00000001030e9800 nid=0x1830b in Object.wait() [0x0000000126c35000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007eb0450a0> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007eb0450a0> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x000000010236c000 nid=0x17b2f in Object.wait() [0x0000000125bfb000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007ea6f9420> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007ea6f9420> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x0000000105b49000 nid=0x17937 in Object.wait() [0x0000000125e62000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007e9fa2868> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007e9fa2868> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x0000000102691000 nid=0x1771f in Object.wait() [0x0000000125d5f000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007e980b890> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007e980b890> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x0000000104728000 nid=0x1752f in Object.wait() [0x0000000125899000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007e8d6fdb8> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007e8d6fdb8> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x00000001043ae800 nid=0x11b67 in Object.wait() [0x00000001259f2000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007e85608b8> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007e85608b8> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x00000001045b9800 nid=0x1730b in Object.wait() [0x0000000125af8000] java.lang.Thread.State: TIMED_WAITING (on object monitor) java.lang.Object.wait(Native Method)	- waiting on <0x00000007e7cf5e90> (a java.util.Collections$SynchronizedRandomAccessList) org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)	- locked <0x00000007e7cf5e90> (a java.util.Collections$SynchronizedRandomAccessList) Locked ownable synchronizers:	- None "org.mule.tooling.messageflow.editor.xml.MuleXMLStructuredRegionProcessor" daemon prio=5 tid=0x00000001201db800 nid=0x11737 in Object.wait() [0x0...
Story points: 2