Skip to main content



      Home
Home » Language IDEs » Java Development Tools (JDT) » CPU usage goes to 100% after JUnit test
CPU usage goes to 100% after JUnit test [message #530327] Thu, 29 April 2010 07:51 Go to next message
Eclipse UserFriend
Every time I do a JUnit test that extends AbstractTransactionalSpringContextTests Eclipse.exe CPU consumption goes to 100% for a minute or so after the test is already finished. Is there any reason why the Eclipse's JUnit plugin would keep consuming the CPU at such a high rate even after the test is finished?
Re: CPU usage goes to 100% after JUnit test [message #530461 is a reply to message #530327] Thu, 29 April 2010 12:38 Go to previous messageGo to next message
Eclipse UserFriend
"Haroldo de Oliveira Pinheiro" <haroldo@atsinformatica.com.br> wrote in
message news:hrbrss$ri$1@build.eclipse.org...
> Every time I do a JUnit test that extends
> AbstractTransactionalSpringContextTests Eclipse.exe CPU consumption goes
> to 100% for a minute or so after the test is already finished. Is there
> any reason why the Eclipse's JUnit plugin would keep consuming the CPU at
> such a high rate even after the test is finished?

Are you sure it's JUnit consuming the CPU? Is it possible that there is
some cleanup going on after the test is run?

You might try generating a few thread dumps to see what code is being run.
There's details at
http://wiki.eclipse.org/index.php/How_to_report_a_deadlock .
Re: CPU usage goes to 100% after JUnit test [message #530680 is a reply to message #530461] Fri, 30 April 2010 10:04 Go to previous messageGo to next message
Eclipse UserFriend
Okay, thanks for the tip, I'll try to do some thread dumps and report back.
Re: CPU usage goes to 100% after JUnit test [message #534344 is a reply to message #530680] Tue, 18 May 2010 14:26 Go to previous messageGo to next message
Eclipse UserFriend
Well, first of all, sorry for the delay, but only no I hav been able to come back to what I was doing initially.

This is a core dump from immediately after running the automated tests (the test has been finished, but Eclipse is still eating up the CPU)

2010-05-18 15:01:45
Full thread dump Java HotSpot(TM) Client VM (11.0-b15 mixed mode):

"RMI TCP Connection(11)-192.168.0.142" daemon prio=6 tid=0x56f96000 nid=0x548 runnable [0x589bf000..0x589bfb14]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	- locked <0x0b8e51c0> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(FilterInputStream.java:66)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

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

"RMI TCP Connection(10)-192.168.0.142" daemon prio=6 tid=0x56de3400 nid=0x6b8 runnable [0x5896f000..0x5896fb94]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	- locked <0x0b8e7428> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(FilterInputStream.java:66)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

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

"RMI TCP Connection(9)-192.168.0.142" daemon prio=6 tid=0x5542e400 nid=0x948 runnable [0x5891f000..0x5891fc14]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	- locked <0x0b8e9690> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(FilterInputStream.java:66)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

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

"RMI TCP Connection(idle)" daemon prio=6 tid=0x56c78000 nid=0x194 waiting on condition [0x588cf000..0x588cfc94]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a7e3510> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI TCP Connection(idle)" daemon prio=6 tid=0x56ee0c00 nid=0xbc0 waiting on condition [0x5887f000..0x5887fd14]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a7e3510> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI TCP Connection(6)-192.168.0.142" daemon prio=6 tid=0x56cef800 nid=0x388 runnable [0x5882f000..0x5882fd94]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	- locked <0x0b8eda78> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(FilterInputStream.java:66)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

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

"RMI TCP Connection(idle)" daemon prio=6 tid=0x54c4c400 nid=0xb08 waiting on condition [0x56b7f000..0x56b7fa14]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a7e3510> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI TCP Connection(idle)" daemon prio=6 tid=0x55397c00 nid=0x420 waiting on condition [0x583bf000..0x583bfd94]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a7e3510> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"JMX server connection timeout 33" daemon prio=6 tid=0x5521e800 nid=0xa2c in Object.wait() [0x5836f000..0x5836fa14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0a7c2788> (a [I)
	at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
	- locked <0x0a7c2788> (a [I)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI Scheduler(0)" daemon prio=6 tid=0x5535f800 nid=0xe4 waiting on condition [0x5831f000..0x5831fa94]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a7c2810> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI TCP Connection(idle)" daemon prio=6 tid=0x551e5400 nid=0x614 waiting on condition [0x582cf000..0x582cfb14]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a7e3510> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI TCP Accept-0" daemon prio=6 tid=0x56e2a800 nid=0x224 runnable [0x5814f000..0x5814fb94]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
	- locked <0x0a7c4c30> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:453)
	at java.net.ServerSocket.accept(ServerSocket.java:421)
	at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:34)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"[ThreadPool Manager] - Idle Thread" daemon prio=6 tid=0x54fd8c00 nid=0x92c in Object.wait() [0x5808f000..0x5808fc94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x09867e48> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
	- locked <0x09867e48> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)

   Locked ownable synchronizers:
	- None

"Worker-6" prio=6 tid=0x55023000 nid=0x81c in Object.wait() [0x5800f000..0x5800fd14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"Worker-5" prio=6 tid=0x56c85000 nid=0x898 runnable [0x57fbf000..0x57fbfd94]
   java.lang.Thread.State: RUNNABLE
	at java.util.regex.Pattern$Slice.match(Pattern.java:3479)
	at java.util.regex.Pattern$Curly.match0(Pattern.java:3782)
	at java.util.regex.Pattern$Curly.match(Pattern.java:3744)
	at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3366)
	at java.util.regex.Pattern$Start.match(Pattern.java:3055)
	at java.util.regex.Matcher.search(Matcher.java:1105)
	at java.util.regex.Matcher.find(Matcher.java:561)
	at org.eclipse.ui.internal.console.ConsolePatternMatcher$MatchJob.run(ConsolePatternMatcher.java:127)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

   Locked ownable synchronizers:
	- None

"Worker-4" prio=6 tid=0x5513d000 nid=0x238 in Object.wait() [0x57f6f000..0x57f6fa14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"Bundle File Closer" daemon prio=6 tid=0x56c32400 nid=0xafc in Object.wait() [0x57eff000..0x57effa94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x093a1a10> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
	- locked <0x093a1a10> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

   Locked ownable synchronizers:
	- None

"Worker-3" prio=6 tid=0x56c41c00 nid=0x154 in Object.wait() [0x57e7f000..0x57e7fb14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"Worker-2" prio=6 tid=0x55070400 nid=0xaa4 in Object.wait() [0x5662f000..0x5662fb94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"Worker-1" prio=6 tid=0x56dd1800 nid=0xf4c in Object.wait() [0x57e2f000..0x57e2fc14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x554c5000 nid=0x9bc in Object.wait() [0x5745f000..0x5745fc94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0911e200> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
	- locked <0x0911e200> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

   Locked ownable synchronizers:
	- None

"Java indexing" daemon prio=4 tid=0x554b2400 nid=0xa84 in Object.wait() [0x573cf000..0x573cfd94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x08d4fed0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:378)
	- locked <0x08d4fed0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"Worker-0" prio=6 tid=0x5537d000 nid=0x460 in Object.wait() [0x5649f000..0x5649fb14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"[Timer] - Main Queue Handler" daemon prio=6 tid=0x5523d800 nid=0x584 in Object.wait() [0x557bf000..0x557bfb94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cb3378> (a java.lang.Object)
	at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
	- locked <0x07cb3378> (a java.lang.Object)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"Framework Event Dispatcher" daemon prio=6 tid=0x551a1800 nid=0x810 in Object.wait() [0x5571f000..0x5571fc94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07bbe678> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
	- locked <0x07bbe678> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

   Locked ownable synchronizers:
	- None

"Start Level Event Dispatcher" daemon prio=6 tid=0x55190000 nid=0x258 in Object.wait() [0x556cf000..0x556cfd14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07bbe6f0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
	- locked <0x07bbe6f0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

   Locked ownable synchronizers:
	- None

"State Data Manager" daemon prio=6 tid=0x5518e800 nid=0x18c waiting on condition [0x5567f000..0x5567fd94]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:306)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"Low Memory Detector" daemon prio=6 tid=0x54c25400 nid=0x954 runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"CompilerThread0" daemon prio=10 tid=0x54c1f000 nid=0xef4 waiting on condition [0x00000000..0x54e6f93c]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Attach Listener" daemon prio=10 tid=0x54c1d800 nid=0xb80 waiting on condition [0x00000000..0x54e1fac0]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Signal Dispatcher" daemon prio=10 tid=0x54c1c400 nid=0x27c runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Finalizer" daemon prio=8 tid=0x54c0c800 nid=0x7d4 in Object.wait() [0x54d7f000..0x54d7fc14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07976140> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
	- locked <0x07976140> (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)

   Locked ownable synchronizers:
	- None

"Reference Handler" daemon prio=10 tid=0x54c08000 nid=0x120 in Object.wait() [0x54d2f000..0x54d2fd14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x079761c8> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <0x079761c8> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
	- None

"main" prio=6 tid=0x003b7000 nid=0xb44 runnable [0x009df000..0x009dfe5c]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method)
	at org.eclipse.swt.widgets.Display.sleep(Display.java:4281)
	at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:364)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2406)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)

   Locked ownable synchronizers:
	- None

"VM Thread" prio=10 tid=0x54c04800 nid=0xe8c runnable 

"VM Periodic Task Thread" prio=10 tid=0x54c38c00 nid=0xd94 waiting on condition 

JNI global references: 825


Two minutes later, Eclipse's CPU consumption returns to sane levels:


2010-05-18 15:03:34
Full thread dump Java HotSpot(TM) Client VM (11.0-b15 mixed mode):

"RMI TCP Connection(10)-192.168.0.142" daemon prio=6 tid=0x56de3400 nid=0x6b8 runnable [0x5896f000..0x5896fb94]
   java.lang.Thread.State: RUNNABLE
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
	- locked <0x0a903a58> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(FilterInputStream.java:66)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

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

"RMI TCP Connection(idle)" daemon prio=6 tid=0x5542e400 nid=0x948 waiting on condition [0x5891f000..0x5891fc14]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a73f558> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI TCP Connection(idle)" daemon prio=6 tid=0x56cef800 nid=0x388 waiting on condition [0x5882f000..0x5882fd94]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a73f558> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"JMX server connection timeout 33" daemon prio=6 tid=0x5521e800 nid=0xa2c in Object.wait() [0x5836f000..0x5836fa14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0a72b178> (a [I)
	at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
	- locked <0x0a72b178> (a [I)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI Scheduler(0)" daemon prio=6 tid=0x5535f800 nid=0xe4 waiting on condition [0x5831f000..0x5831fa94]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x0a72b200> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"RMI TCP Accept-0" daemon prio=6 tid=0x56e2a800 nid=0x224 runnable [0x5814f000..0x5814fb94]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
	- locked <0x0a72b3d8> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:453)
	at java.net.ServerSocket.accept(ServerSocket.java:421)
	at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:34)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"[ThreadPool Manager] - Idle Thread" daemon prio=6 tid=0x54fd8c00 nid=0x92c in Object.wait() [0x5808f000..0x5808fc94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x097df9e8> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
	- locked <0x097df9e8> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)

   Locked ownable synchronizers:
	- None

"Worker-6" prio=6 tid=0x55023000 nid=0x81c in Object.wait() [0x5800f000..0x5800fd14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"Bundle File Closer" daemon prio=6 tid=0x56c32400 nid=0xafc in Object.wait() [0x57eff000..0x57effa94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0932c1c0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
	- locked <0x0932c1c0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

   Locked ownable synchronizers:
	- None

"Worker-3" prio=6 tid=0x56c41c00 nid=0x154 in Object.wait() [0x57e7f000..0x57e7fb14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"Worker-1" prio=6 tid=0x56dd1800 nid=0xf4c in Object.wait() [0x57e2f000..0x57e2fc14]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
	- locked <0x07cc3be8> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)

   Locked ownable synchronizers:
	- None

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x554c5000 nid=0x9bc in Object.wait() [0x5745f000..0x5745fc94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x090b5580> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
	- locked <0x090b5580> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

   Locked ownable synchronizers:
	- None

"Java indexing" daemon prio=4 tid=0x554b2400 nid=0xa84 in Object.wait() [0x573cf000..0x573cfd94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x08d324d8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:378)
	- locked <0x08d324d8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"[Timer] - Main Queue Handler" daemon prio=6 tid=0x5523d800 nid=0x584 in Object.wait() [0x557bf000..0x557bfb94]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07cb3378> (a java.lang.Object)
	at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
	- locked <0x07cb3378> (a java.lang.Object)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"Framework Event Dispatcher" daemon prio=6 tid=0x551a1800 nid=0x810 in Object.wait() [0x5571f000..0x5571fc94]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07bbe678> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
	- locked <0x07bbe678> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

   Locked ownable synchronizers:
	- None

"Start Level Event Dispatcher" daemon prio=6 tid=0x55190000 nid=0x258 in Object.wait() [0x556cf000..0x556cfd14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07bbe6f0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at java.lang.Object.wait(Object.java:485)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:386)
	- locked <0x07bbe6f0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:326)

   Locked ownable synchronizers:
	- None

"State Data Manager" daemon prio=6 tid=0x5518e800 nid=0x18c waiting on condition [0x5567f000..0x5567fd94]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:306)
	at java.lang.Thread.run(Thread.java:619)

   Locked ownable synchronizers:
	- None

"Low Memory Detector" daemon prio=6 tid=0x54c25400 nid=0x954 runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"CompilerThread0" daemon prio=10 tid=0x54c1f000 nid=0xef4 waiting on condition [0x00000000..0x54e6f93c]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Attach Listener" daemon prio=10 tid=0x54c1d800 nid=0xb80 waiting on condition [0x00000000..0x54e1fac0]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Signal Dispatcher" daemon prio=10 tid=0x54c1c400 nid=0x27c runnable [0x00000000..0x00000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Finalizer" daemon prio=8 tid=0x54c0c800 nid=0x7d4 in Object.wait() [0x54d7f000..0x54d7fc14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x07976140> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
	- locked <0x07976140> (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)

   Locked ownable synchronizers:
	- None

"Reference Handler" daemon prio=10 tid=0x54c08000 nid=0x120 in Object.wait() [0x54d2f000..0x54d2fd14]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x079761c8> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <0x079761c8> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
	- None

"main" prio=6 tid=0x003b7000 nid=0xb44 runnable [0x009df000..0x009dfe5c]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method)
	at org.eclipse.swt.widgets.Display.sleep(Display.java:4281)
	at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:364)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2406)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)

   Locked ownable synchronizers:
	- None

"VM Thread" prio=10 tid=0x54c04800 nid=0xe8c runnable 

"VM Periodic Task Thread" prio=10 tid=0x54c38c00 nid=0xd94 waiting on condition 

JNI global references: 881


Well, does this help, somehow?
Re: CPU usage goes to 100% after JUnit test [message #534603 is a reply to message #534344] Wed, 19 May 2010 11:39 Go to previous messageGo to next message
Eclipse UserFriend
"Haroldo de Oliveira Pinheiro" <haroldo@atsinformatica.com.br> wrote in
message news:hsum46$hjt$1@build.eclipse.org...
> Well, first of all, sorry for the delay, but only no I hav been able to
> come back to what I was doing initially.
>
> This is a core dump from immediately after running the automated tests
> (the test has been finished, but Eclipse is still eating up the CPU)
>
>
> 2010-05-18 15:01:45
> Full thread dump Java HotSpot(TM) Client VM (11.0-b15 mixed mode):
>
> [...]
>
> "Worker-5" prio=6 tid=0x56c85000 nid=0x898 runnable
> [0x57fbf000..0x57fbfd94]
> java.lang.Thread.State: RUNNABLE
> at java.util.regex.Pattern$Slice.match(Pattern.java:3479)
> at java.util.regex.Pattern$Curly.match0(Pattern.java:3782)
> at java.util.regex.Pattern$Curly.match(Pattern.java:3744)
> at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3 366)
> at java.util.regex.Pattern$Start.match(Pattern.java:3055)
> at java.util.regex.Matcher.search(Matcher.java:1105)
> at java.util.regex.Matcher.find(Matcher.java:561)
> at
> org.eclipse.ui.internal.console.ConsolePatternMatcher$MatchJ ob.run(ConsolePatternMatcher.java:127)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
>
> Two minutes later, Eclipse's CPU consumption returns to sane levels:
>
> 2010-05-18 15:03:34
> Full thread dump Java HotSpot(TM) Client VM (11.0-b15 mixed mode):
>
> [...]
> Well, does this help, somehow?


What we're looking for is threads that are RUNNABLE in the busy state and
missing or not RUNNABLE in the quiet state. The culprit appears to be the
one I've excerpted above. The question is, what is searching for what
pattern in what text?

So, I selected the Plug-in Development perspective, opened the Plug-ins
view, and selected the org.eclipse.ui.console plug-in. I right-clicked and
selected "import as Source Project" to get the source code for it. Taking a
look at the ConsolePatternMatcher code, it seems like it is trying to match
text patterns in a text console. I'm guessing it's looking at the output of
the test run and searching for strings like "Error", but that is just a
guess. I am not sure who is instantiating this particular
ConsolePatternMatcher.

If you have a way for someone else to reproduce the bug, you could try
reporting it - I would report it against the platform, not JDT, as there is
nothing specific to JDT here. What would be better, though, is if you can
chase it down a bit farther. To do that, I would create a host workspace
that simply has the org.eclipse.ui.console plug-in source in it; from that
host workspace I would launch a target Eclipse instance (Debug As... Eclipse
Application), pointing that instance to your existing workspace (you do this
in the launch configuration). In the host instance, use Ctrl+Shift+T to
open the Pattern.java source code from the JDK source (make sure you get the
right one, there are a lot of classes named Pattern) and navigate to line
3479.

Then, try to reproduce the problem, and sometime in the busy two minutes,
put a breakpoint on line 3479. You should see it get hit instantly. At
that point you can navigate up the stack back to
ConsolePatternMatcher$MatchJob.run to see some of the details of the console
and pattern in question - maybe you'll be able to get a better sense of
what's going on. You might also put a breakpoint on the
ConsolePatternMatcher constructor, to see who instantiates it (you might
need to import source for some other plug-ins, at that point).

Good luck!
icon14.gif  Re: CPU usage goes to 100% after JUnit test [message #534663 is a reply to message #530327] Wed, 19 May 2010 15:11 Go to previous message
Eclipse UserFriend
You're right, it was the console.

I made a quick and dirty test by dumping all the console output to a file, and then making a small JUnit test that simply read from this text file, line by line, and dumped it to the console, with no additional processing. The result: 2 minutes of CPU hogging.

Due to time constraints, I'll, for now, take the easy path and simply log to file; I may do some actual testing later on, if I get the chance.

If anyone wants to have a try at isolating the cause of the console problem, here's the aforementoned log:
http://dl.dropbox.com/u/1235428/work/invalid%20BLOB%20ID.zip

Thanks for your help.
Previous Topic:Always getting error "java.lang.ArrayIndexOutOfBoundsException: 2048"
Next Topic:Plug-in Missing: org.eclipse.jdt.core
Goto Forum:
  


Current Time: Mon Apr 14 18:29:54 EDT 2025

Powered by FUDForum. Page generated in 0.02694 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top