Bug 27914 - Infinite loop setting breakpoint
Summary: Infinite loop setting breakpoint
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 major (vote)
Target Milestone: 2.1 M4   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-12-09 04:24 EST by Jerome Lanneluc CLA
Modified: 2002-12-17 09:26 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jerome Lanneluc CLA 2002-12-09 04:24:55 EST
Build 20021204

Trying to set a breakpoint (by double-clicking on the left vertical bar of the 
editor), it seems that I entered an infinite loop. The CPU when to 100% and the 
whole UI froze.

Here is the thread dump at the time it happened:
Full thread dump Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode):

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x147B8568 
nid=0x500 in Object.wait() [15d1f000..15d1fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:146)
        - locked <08254BD8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x13A6FE30 
nid=0x538 in Object.wait() [15cdf000..15cdfd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:146)
        - locked <071AC9B0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Snapshot" prio=5 tid=0x135EE3E8 nid=0x34c in Object.wait() [15c9f000..15c9fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <06BF1898> (a 
org.eclipse.core.internal.resources.DelayedSnapshotRunnable)
        at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run
(DelayedSnapshotRunnable.java:38)
        - locked <06BF1898> (a 
org.eclipse.core.internal.resources.DelayedSnapshotRunnable)
        at java.lang.Thread.run(Thread.java:536)

"Thread timer" prio=5 tid=0x146EDDD8 nid=0x4b4 waiting on condition 
[15b2f000..15b2fd8c]
        at java.lang.Thread.sleep(Native Method)
        at 
org.eclipse.debug.internal.ui.views.launch.LaunchViewEventHandler$ThreadTimer.ch
eckTimers(LaunchViewEventHandler.java:474)
        at 
org.eclipse.debug.internal.ui.views.launch.LaunchViewEventHandler$ThreadTimer.ac
cess$2(LaunchViewEventHandler.java:441)
        at 
org.eclipse.debug.internal.ui.views.launch.LaunchViewEventHandler$1.run
(LaunchViewEventHandler.java:433)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.debug: JDI Event Dispatcher" prio=5 tid=0x138D4C08 nid=0x540 
in Object.wait() [15a5f000..15a5fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at 
org.eclipse.jdi.internal.connect.PacketReceiveManager.waitForPacketAvailable
(PacketReceiveManager.java:157)
        at org.eclipse.jdi.internal.connect.PacketReceiveManager.getCommand
(PacketReceiveManager.java:87)
        - locked <05D5DFB0> (a 
org.eclipse.jdi.internal.connect.PacketReceiveManager)
        at org.eclipse.jdi.internal.MirrorImpl.getCommandVM(MirrorImpl.java:270)
        at org.eclipse.jdi.internal.event.EventQueueImpl.remove
(EventQueueImpl.java:57)
        at org.eclipse.jdi.internal.event.EventQueueImpl.remove
(EventQueueImpl.java:42)
        at org.eclipse.jdt.internal.debug.core.EventDispatcher.run
(EventDispatcher.java:197)
        at java.lang.Thread.run(Thread.java:536)

"Packet Send Manager" prio=5 tid=0x1478A160 nid=0x574 in Object.wait() 
[15a1f000..15a1fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at 
org.eclipse.jdi.internal.connect.PacketSendManager.sendAvailablePackets
(PacketSendManager.java:85)
        - locked <05D5E080> (a 
org.eclipse.jdi.internal.connect.PacketSendManager)
        at org.eclipse.jdi.internal.connect.PacketSendManager.run
(PacketSendManager.java:50)
        at java.lang.Thread.run(Thread.java:536)

"Packet Receive Manager" prio=5 tid=0x1478A008 nid=0x4e0 runnable 
[159df000..159dfd8c]
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.net.SocketInputStream.read(SocketInputStream.java:182)
        at java.io.DataInputStream.readInt(DataInputStream.java:392)
        at org.eclipse.jdi.internal.jdwp.JdwpPacket.read(JdwpPacket.java:118)
        at 
org.eclipse.jdi.internal.connect.PacketReceiveManager.readAvailablePacket
(PacketReceiveManager.java:213)
        at org.eclipse.jdi.internal.connect.PacketReceiveManager.run
(PacketReceiveManager.java:64)
        at java.lang.Thread.run(Thread.java:536)

"Console Polling Thread" prio=5 tid=0x146FDE10 nid=0x544 waiting on condition 
[1595f000..1595fd8c]
        at java.lang.Thread.sleep(Native Method)
        at 
org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner.pollAndSl
eep(ConsoleDocumentPartitioner.java:486)
        at 
org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner$1.run
(ConsoleDocumentPartitioner.java:470)
        at java.lang.Thread.run(Thread.java:536)

"ServerConnection" prio=5 tid=0x13A7A6C8 nid=0x548 runnable [1591f000..1591fd8c]
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:406)
        at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:446)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:180)
        - locked <05D72718> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(InputStreamReader.java:167)
        at java.io.BufferedReader.fill(BufferedReader.java:136)
        at java.io.BufferedReader.readLine(BufferedReader.java:299)
        - locked <05D72718> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(BufferedReader.java:362)
        at org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient.readMessage
(RemoteTestRunnerClient.java:170)
        at org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient.access$8
(RemoteTestRunnerClient.java:169)
        at 
org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient$ServerConnection.run
(RemoteTestRunnerClient.java:91)

"Process Monitor" prio=5 tid=0x13A7A570 nid=0x3f0 runnable [158df000..158dfd8c]
        at java.lang.Win32Process.waitFor(Native Method)
        at org.eclipse.debug.internal.core.ProcessMonitor.monitorProcess
(ProcessMonitor.java:45)
        at org.eclipse.debug.internal.core.ProcessMonitor.access$0
(ProcessMonitor.java:42)
        at org.eclipse.debug.internal.core.ProcessMonitor$1.run
(ProcessMonitor.java:62)
        at java.lang.Thread.run(Thread.java:536)

"Input Stream Monitor" prio=5 tid=0x13A32B28 nid=0x330 in Object.wait() 
[1589f000..1589fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.debug.internal.core.InputStreamMonitor.writeNext
(InputStreamMonitor.java:118)
        - locked <05D5E3A0> (a java.lang.Object)
        at org.eclipse.debug.internal.core.InputStreamMonitor.write
(InputStreamMonitor.java:93)
        at org.eclipse.debug.internal.core.InputStreamMonitor$1.run
(InputStreamMonitor.java:69)
        at java.lang.Thread.run(Thread.java:536)

"Output Stream Monitor" prio=5 tid=0x138C9008 nid=0x550 runnable 
[1585f000..1585fd8c]
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:174)
        at org.eclipse.debug.internal.core.OutputStreamMonitor.read
(OutputStreamMonitor.java:123)
        at org.eclipse.debug.internal.core.OutputStreamMonitor.access$0
(OutputStreamMonitor.java:115)
        at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run
(OutputStreamMonitor.java:166)
        at java.lang.Thread.run(Thread.java:536)

"Output Stream Monitor" prio=5 tid=0x146DE008 nid=0x188 runnable 
[1581f000..1581fd8c]
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(FileInputStream.java:191)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
        - locked <05D624F0> (a java.io.BufferedInputStream)
        at java.io.FilterInputStream.read(FilterInputStream.java:90)
        at org.eclipse.debug.internal.core.OutputStreamMonitor.read
(OutputStreamMonitor.java:123)
        at org.eclipse.debug.internal.core.OutputStreamMonitor.access$0
(OutputStreamMonitor.java:115)
        at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run
(OutputStreamMonitor.java:166)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x13725CE8 
nid=0x1cc in Object.wait() [155ff000..155ffd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <05B0ACB8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:146)
        - locked <05B0ACB8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"CVS" prio=5 tid=0x1391BCA0 nid=0x4e4 in Object.wait() [1504f000..1504fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.team.internal.ccvs.ui.CVSDecorator.next
(CVSDecorator.java:215)
        - locked <0498DB58> (a org.eclipse.team.internal.ccvs.ui.CVSDecorator)
        at org.eclipse.team.internal.ccvs.ui.CVSDecorationRunnable.run
(CVSDecorationRunnable.java:105)
        at java.lang.Thread.run(Thread.java:536)

"Decoration" prio=2 tid=0x137AE008 nid=0x4dc in Object.wait() 
[1500f000..1500fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.ui.internal.decorators.DecorationScheduler.next
(DecorationScheduler.java:248)
        - locked <040A6A90> (a 
org.eclipse.ui.internal.decorators.DecorationScheduler)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$3.run
(DecorationScheduler.java:274)
        at java.lang.Thread.run(Thread.java:536)

"Java indexing" daemon prio=4 tid=0x135F6D80 nid=0x2c0 waiting on condition 
[1432f000..1432fd8c]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:322)
        at java.lang.Thread.run(Thread.java:536)

"Debug async queue" prio=5 tid=0x134E72F8 nid=0x220 in Object.wait() 
[142ef000..142efd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.debug.core.DebugPlugin$AsynchRunner.run
(DebugPlugin.java:691)
        - locked <03EDA588> (a org.eclipse.debug.core.DebugPlugin$AsynchRunner)
        at java.lang.Thread.run(Thread.java:536)

"Signal Dispatcher" daemon prio=10 tid=0x00908DC0 nid=0x450 runnable [0..0]

"Finalizer" daemon prio=9 tid=0x008F7C78 nid=0x344 in Object.wait() 
[133cf000..133cfd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <03A7AFD0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x0023E050 nid=0x1a8 in Object.wait() 
[1338f000..1338fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
        - locked <03A7B038> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00234CA0 nid=0x418 runnable [6e000..6fc40]
        at java.lang.Throwable.fillInStackTrace(Native Method)
        at java.lang.Throwable.<init>(Throwable.java:195)
        at java.lang.Exception.<init>(Exception.java:41)
        at java.lang.RuntimeException.<init>(RuntimeException.java:43)
        at java.lang.IndexOutOfBoundsException.<init>
(IndexOutOfBoundsException.java:37)
        at java.lang.ArrayIndexOutOfBoundsException.<init>
(ArrayIndexOutOfBoundsException.java:46)
        at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextToken
(Scanner.java:812)
        at 
org.eclipse.jdt.internal.debug.ui.actions.BreakpointLocationVerifier.getValidBre
akpointLocation(BreakpointLocationVerifier.java:88)
        at 
org.eclipse.jdt.internal.debug.ui.actions.ManageBreakpointRulerAction.addMarker
(ManageBreakpointRulerAction.java:215)
        at 
org.eclipse.jdt.internal.debug.ui.actions.ManageBreakpointRulerAction.run
(ManageBreakpointRulerAction.java:165)
        at org.eclipse.ui.texteditor.AbstractRulerActionDelegate.run
(AbstractRulerActionDelegate.java:98)
        at org.eclipse.ui.internal.PluginAction.runWithEvent
(PluginAction.java:250)
        at org.eclipse.ui.internal.PluginAction.run(PluginAction.java:212)
        at org.eclipse.ui.texteditor.AbstractTextEditor$4.triggerAction
(AbstractTextEditor.java:1602)
        at org.eclipse.ui.texteditor.AbstractTextEditor$4.mouseDoubleClick
(AbstractTextEditor.java:1616)
        at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:134)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1405)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1388)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:841)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
        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:324)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:247)
        at org.eclipse.core.launcher.Main.run(Main.java:703)
        at org.eclipse.core.launcher.Main.main(Main.java:539)

"VM Thread" prio=5 tid=0x008DC988 nid=0x50c runnable

"VM Periodic Task Thread" prio=10 tid=0x00904FD8 nid=0x130 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x00902E90 nid=0x430 runnable
Comment 1 Jerome Lanneluc CLA 2002-12-09 04:46:34 EST
Problem with ITerminalSymbols.TokenNameEOF which changed value. 

Moving to JDT/Core
Comment 2 Philipe Mulet CLA 2002-12-09 05:54:35 EST
Fixed, duplicated Scanner implementation (with ITerminalSymbols) for public 
usage. Internal implementation may differ, but public one is backward 
compatible with 2.0 standards.
Comment 3 Philipe Mulet CLA 2002-12-09 05:54:49 EST
Fixed
Comment 4 David Audel CLA 2002-12-17 09:26:04 EST
Verified.