3 Replies Latest reply on Nov 20, 2014 4:38 PM by Gary Graham-Oracle

    SQL Developer 4.0.3 often freezes unrecoverably

    cwd

      There's been a bug with SQL Developer that's been driving me nuts since I starting using 4.0 (not sure about before then, as I found the earlier versions unstable for other reasons that seem to have been resolved since).  I have updated versions since then and am now using 4.0.3.16 (Build MAIN-16.84, as installed from sqldeveloper-4.0.3.16.84-no-jre), but I am still experiencing the issue.  I get this bug on my work machine, where I'm still currently stuck on Win XP.  I haven't tried to replicate it on any other machine.  I have read quite a number of discussions about earlier versions having similar problems to what I experience, but they seem to be about older versions and some of the specifics I've noticed don't seem to be covered in the others I've read, so I'm creating a new discussion.

       

      The impact of the bug is that SQL Developer stops responding altogether, endlessly consuming around 25% of my CPU from that point onwards without changes to memory usage and without any IO activity.  I have to kill the process and start again, upon which SQL Developer looses track of which files I had open before the crash.

       

      Through observation over the last 6 months or more, I've narrowed one trigger for it down to a small combination of user actions.   I have been able to recreate the crash scenario somewhat repeatably, although I'm still a little uncertain as to the EXACT sequence of key/mouse actions required, as this seems to happen when I'm doing things rapidly.  I was able to recreate it by following these steps...

      1. open a new instance SQL Developer (currently via exe in bin, but not necessary for replication of crash - I've been replicating while having only a single instance of SQL Developer running on my machine)

      2. open an SQL file in it [Why oh why can't I drag from Windows Explorer straight into a new empty SQL Dev window?  Why do I have to have an existing file already opened in code editor before I can drag new files straight in from Windows Explorer?]  I've recently used the same file multiple times to replicate this, but I've experieinced this before with other files. The file I've been recently replicating via contains 1227 lines.  I've recently been replicating this with an instance of SQL developer that initially has no files already open.

      3. copy a word to the clipboard (I've recently been doing this via Ctrl+C with a word that exists in multiple places in the file)

      4. use Ctrl+V, mouse clicks and mouse scroll wheel to replace multiple instances of the word with the same word from the clipboard, in various places in the file that require scrolling between.  There's no apparent pattern to the location in the file at which the crash occurs, or how many pastes, scrolls and clicks need to occur before the freeeze.  On some occasions, I'm pretty sure I've been able to get it to crash on the first scroll after pasting a couple of times within the currently visible text.

       

      The majority of the file I've recently been using to replicate this consists of hefty WITH ... AS ... , ... AS ... , .... SELECT ... statements, NOT a package, procedure, funciton or any other type of object definitiion, anonymous or otherwise.  Later versions of the file use the WITH statement as the basis for a CREATE TABLE AS command, but I was having these troubles before I started creating a table from the results (which I did in order to ensure that the output of the command is not lost along with the SQL Developer session that I ran it from, if something else I'm doing in SQL Developer causes an SQL Developer crash).

       

      IMPORTANT NOTE: this can be replicated whether or not I have SQL Developer connected to a database at the time.  Also, I have had this problem many times with various SQL file and DB combinations and thus it doesn't seem to be isolated to any specific connection or SQL content.

       

      The crash currently seems to be happening at the time of a scroll wheel movement, possibly while still holding down Ctrl key, but I can't seem to pinpoint the EXACT combination that does it.  Sometimes it takes longer than others to replicate it.

       

      I have at times also experienced a freeze with the same consequences when clicking on the worksheet while holding Ctrl, or when executing a save command (normally I do so via Ctrl+S, but I'm not sure that it is isolated to the keyborad trigger).  However, I haven't been able to repeatably recreate those two scenarios, so I'm primarily focusing on the more repeatable issues when using a combination of clipboard keyboard shortcuts and mouse interaction.

       

      Less than a week ago, after SQL Developer froze following the above 4-step sequence, I captured the output (which I'm pasting in at the bottom of this post) by Ctrl+Break in the console output window generated by the exe.

       

      If there's a more appropriate place to log this, or something else I can do to help identify the root cause, please let me know.

       

      This bug really annoys me as I loose all unsaved worksheet data output and edited files at the time it happens and some days I have to terminate and start SQL Dev again many many times in the day.  And if I'm running a long-running query in one worksheet at the time the freeze occurs, I may loose the results of that also.  If the command I'm running is DDL and I leave the frozen SQL Developer instance running at 25% (usually, but sometimes I see 50%) until the DDL completes, then I can avoid lossing the results.  If I terminate the frozen SQL Dev process before the session on the DB goes inactive, then the DDL doesn't seem to complete.  Or if I was running a DML statement, then forget it, the results will never come back.

       

      I hope someone can get to the bottom of this.  My #1 complaint with SQL Developer has always been that it crashes too often.  I am a compulsive Ctrl+S kind of guy, but I still find I loose work too often due to SQL Dev crashes.  Other than this current issue though, I think it seems much more stable in the later releases than it was in the earlier ones I was using.

       

      Here's the captured output...

       

      LOAD TIME : 2192014-11-13 10:44:33

      Full thread dump Java HotSpot(TM) Client VM (24.51-b03 mixed mode):

       

      "status-0" prio=2 tid=0x4b4f7000 nid=0xf34 waiting on condition [0x4c97f000]

         java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x17d9efd0> (a java.util.concurrent.locks.AbstractQueuedSynchro

      nizer$ConditionObject)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Abstract

      QueuedSynchronizer.java:2043)

              at java.util.concurrent.DelayQueue.take(DelayQueue.java:209)

              at oracle.ide.status.StatusExecutor$StatusQueue.take(StatusExecutor.java:338)

              at oracle.ide.status.StatusExecutor$StatusQueue.take(StatusExecutor.java:300)

              at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

              at java.lang.Thread.run(Thread.java:744)

       

      "WeakDataReference polling" prio=2 tid=0x4b58f400 nid=0x5f0 in Object.wait() [0x4c3cf000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x17d276a0> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x17d276a0> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)

              at oracle.ide.util.WeakDataReference$Cleaner.run(WeakDataReference.java:88)

              at java.lang.Thread.run(Thread.java:744)

       

      "Background Parser" prio=6 tid=0x4af83800 nid=0x1588 waiting on condition [0x4c2cf000]

         java.lang.Thread.State: TIMED_WAITING (sleeping)

              at java.lang.Thread.sleep(Native Method)

              at oracle.dbtools.raptor.plsql.BackgroundParser$1.construct(BackgroundParser.java:142)

              at oracle.dbtools.raptor.utils.NamedSwingWorker$2.run(NamedSwingWorker.java:115)

              at java.lang.Thread.run(Thread.java:744)

       

      "TextBufferScavenger" prio=6 tid=0x4af7b400 nid=0x17ec in Object.wait() [0x4a6cf000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x17b324c8> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x17b324c8> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)

              at oracle.ide.model.FacadeBufferReference$PollingThread.run(FacadeBufferReference.java:

      145)

       

      "Thread-17" prio=6 tid=0x461b8000 nid=0x169c runnable [0x00000000]

         java.lang.Thread.State: RUNNABLE

       

      "WaitCursor-Timer" prio=6 tid=0x461c8000 nid=0xa20 in Object.wait() [0x4c6cf000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x17962e50> (a java.util.TaskQueue)

              at java.lang.Object.wait(Object.java:503)

              at java.util.TimerThread.mainLoop(Timer.java:526)

              - locked <0x17962e50> (a java.util.TaskQueue)

              at java.util.TimerThread.run(Timer.java:505)

       

      "Thread-10" daemon prio=6 tid=0x4b1cb800 nid=0x17f8 in Object.wait() [0x4bf0f000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x14fc40f8> (a java.util.LinkedList)

              at java.lang.Object.wait(Object.java:503)

              at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java

      :1476)

              - locked <0x14fc40f8> (a java.util.LinkedList)

       

      "ChangeSetService" daemon prio=2 tid=0x4b0b6000 nid=0xed4 in Object.wait() [0x4c1cf000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x160e72f0> (a oracle.jdevimpl.vcs.changeset.ChangeSetService)

              at java.lang.Object.wait(Object.java:503)

              at oracle.jdevimpl.vcs.changeset.ChangeSetService.awaitEvents(ChangeSetService.java:131

      )

              - locked <0x160e72f0> (a oracle.jdevimpl.vcs.changeset.ChangeSetService)

              at oracle.jdevimpl.vcs.changeset.ChangeSetService.eventLoop(ChangeSetService.java:152)

              at oracle.jdevimpl.vcs.changeset.ChangeSetService.access$000(ChangeSetService.java:60)

              at oracle.jdevimpl.vcs.changeset.ChangeSetService$1.run(ChangeSetService.java:99)

              at java.lang.Thread.run(Thread.java:744)

       

      "RaptorTask: Usage Data" prio=6 tid=0x4a37f400 nid=0x1a4 waiting on condition [0x4ad0f000]

         java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x15a33d90> (a java.util.concurrent.SynchronousQueue$TransferSt

      ack)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.ja

      va:458)

              at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:3

      59)

              at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)

              at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

              at java.lang.Thread.run(Thread.java:744)

       

      "Scheduler" daemon prio=6 tid=0x4a531400 nid=0x14b8 in Object.wait() [0x4ac0f000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x159c1ee8> (a oracle.dbtools.raptor.backgroundTask.TaskLinkedList)

              at java.lang.Object.wait(Object.java:503)

              at oracle.dbtools.raptor.backgroundTask.TaskLinkedList.takeNextTask(TaskLinkedList.java

      :47)

              - locked <0x159c1ee8> (a oracle.dbtools.raptor.backgroundTask.TaskLinkedList)

              at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$SchedulerThread.run(RaptorTas

      kManager.java:479)

       

      "Log Poller" prio=2 tid=0x4a348400 nid=0x15ac waiting on condition [0x4ab0f000]

         java.lang.Thread.State: WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x156babc0> (a java.util.concurrent.locks.AbstractQueuedSynchro

      nizer$ConditionObject)

              at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Abstract

      QueuedSynchronizer.java:2043)

              at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)

              at oracle.ide.log.QueuedLoggingHandler.take(QueuedLoggingHandler.java:60)

              at oracle.ideimpl.log.TabbedLogManager$4.run(TabbedLogManager.java:321)

              at java.lang.Thread.run(Thread.java:744)

       

      "JarIndex Timer" daemon prio=6 tid=0x4a0e7800 nid=0xc04 in Object.wait() [0x4a8ff000]

         java.lang.Thread.State: TIMED_WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x14f0d640> (a java.util.TaskQueue)

              at java.util.TimerThread.mainLoop(Timer.java:552)

              - locked <0x14f0d640> (a java.util.TaskQueue)

              at java.util.TimerThread.run(Timer.java:505)

       

      "TimedCache-Timer" daemon prio=6 tid=0x4644e400 nid=0x1354 in Object.wait() [0x49dcf000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x14a83670> (a java.util.TaskQueue)

              at java.lang.Object.wait(Object.java:503)

              at java.util.TimerThread.mainLoop(Timer.java:526)

              - locked <0x14a83670> (a java.util.TaskQueue)

              at java.util.TimerThread.run(Timer.java:505)

       

      "Framework Event Dispatcher" daemon prio=6 tid=0x4638cc00 nid=0xe74 in Object.wait() [0x49bcf00

      0]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x141c5608> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThre

      ad)

              at java.lang.Object.wait(Object.java:503)

              at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManag

      er.java:400)

              - locked <0x141c5608> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)

              at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:3

      36)

       

      "State Data Manager" daemon prio=6 tid=0x46341400 nid=0xd88 waiting on condition [0x49acf000]

         java.lang.Thread.State: TIMED_WAITING (sleeping)

              at java.lang.Thread.sleep(Native Method)

              at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:297)

              at java.lang.Thread.run(Thread.java:744)

       

      "Framework Active Thread" prio=6 tid=0x462ff400 nid=0x1418 in Object.wait() [0x499cf000]

         java.lang.Thread.State: TIMED_WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x141c5790> (a org.eclipse.osgi.framework.internal.core.Framework)

              at org.eclipse.osgi.framework.internal.core.Framework.run(Framework.java:1863)

              - locked <0x141c5790> (a org.eclipse.osgi.framework.internal.core.Framework)

              at java.lang.Thread.run(Thread.java:744)

       

      "Active Reference Queue Daemon" daemon prio=2 tid=0x46128000 nid=0x1290 in Object.wait() [0x465

      5f000]

         java.lang.Thread.State: TIMED_WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x13dc1248> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x13dc1248> (a java.lang.ref.ReferenceQueue$Lock)

              at org.openide.util.lookup.implspi.ActiveQueue$Daemon.run(ActiveQueue.java:180)

              - locked <0x13dc1248> (a java.lang.ref.ReferenceQueue$Lock)

       

      "TimerQueue" daemon prio=6 tid=0x4561e800 nid=0x4bc waiting on condition [0x4605f000]

         java.lang.Thread.State: TIMED_WAITING (parking)

              at sun.misc.Unsafe.park(Native Method)

              - parking to wait for  <0x13dc12d8> (a java.util.concurrent.locks.AbstractQueuedSynchro

      nizer$ConditionObject)

              at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)

              at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Abs

      tractQueuedSynchronizer.java:2082)

              at java.util.concurrent.DelayQueue.take(DelayQueue.java:220)

              at javax.swing.TimerQueue.run(TimerQueue.java:171)

              at java.lang.Thread.run(Thread.java:744)

       

      "AWT-EventQueue-0" prio=6 tid=0x45570400 nid=0x14f0 runnable [0x45f5b000]

         java.lang.Thread.State: RUNNABLE

              at java.util.HashMap.getEntry(HashMap.java:469)

              at java.util.HashMap.get(HashMap.java:421)

              at oracle.dbtools.parser.Earley.tree(Earley.java:852)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followScan(Earley.java:891)

              at oracle.dbtools.parser.Earley.tree(Earley.java:855)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followScan(Earley.java:891)

              at oracle.dbtools.parser.Earley.tree(Earley.java:855)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followScan(Earley.java:891)

              at oracle.dbtools.parser.Earley.tree(Earley.java:855)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followScan(Earley.java:891)

              at oracle.dbtools.parser.Earley.tree(Earley.java:855)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:947)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:945)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followScan(Earley.java:891)

              at oracle.dbtools.parser.Earley.tree(Earley.java:855)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.followComplete(Earley.java:950)

              at oracle.dbtools.parser.Earley.tree(Earley.java:857)

              at oracle.dbtools.parser.Earley.treeForACell(Earley.java:832)

              at oracle.dbtools.parser.Parser.forest(Parser.java:84)

              at oracle.dbtools.parser.plsql.LazyNode.expand(LazyNode.java:225)

              at oracle.dbtools.parser.plsql.IdentifiersDb.collectIdentifiers(IdentifiersDb.java:204)

       

              at oracle.dbtools.parser.plsql.IdentifierDefinitionLookup.getIdentifierDefinition(Ident

      ifierDefinitionLookup.java:743)

              at oracle.dbtools.parser.plsql.IdentifierDefinitionLookup.parseIdentifierAtOffset(Ident

      ifierDefinitionLookup.java:409)

              at oracle.dbtools.parser.plsql.IdentifierDefinitionLookup.finishIdSelection(IdentifierD

      efinitionLookup.java:803)

              at oracle.dbtools.parser.plsql.IdentifierDefinitionLookup.getIdentifierAtOffset(Identif

      ierDefinitionLookup.java:794)

              at oracle.ide.ceditor.AbstractBrowseClickPlugin.getRegionFor(AbstractBrowseClickPlugin.

      java:150)

              at oracle.javatools.editor.plugins.AbstractClickPlugin.updateHighlight(AbstractClickPlu

      gin.java:442)

              at oracle.javatools.editor.plugins.AbstractClickPlugin.actionPerformed(AbstractClickPlu

      gin.java:240)

              at javax.swing.Timer.fireActionPerformed(Timer.java:312)

              at javax.swing.Timer$DoPostEvent.run(Timer.java:244)

              at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)

              at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)

              at java.awt.EventQueue.access$200(EventQueue.java:103)

              at java.awt.EventQueue$3.run(EventQueue.java:694)

              at java.awt.EventQueue$3.run(EventQueue.java:692)

              at java.security.AccessController.doPrivileged(Native Method)

              at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

              at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)

              at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java

      :169)

              at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:

      151)

              at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)

              at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)

              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)

              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

              at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

       

      "AWT-Windows" daemon prio=6 tid=0x4556e400 nid=0x1380 runnable [0x45e5f000]

         java.lang.Thread.State: RUNNABLE

              at sun.awt.windows.WToolkit.eventLoop(Native Method)

              at sun.awt.windows.WToolkit.run(WToolkit.java:299)

              at java.lang.Thread.run(Thread.java:744)

       

      "AWT-Shutdown" prio=6 tid=0x4556cc00 nid=0xda4 in Object.wait() [0x45d5f000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x13dc14e8> (a java.lang.Object)

              at java.lang.Object.wait(Object.java:503)

              at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)

              - locked <0x13dc14e8> (a java.lang.Object)

              at java.lang.Thread.run(Thread.java:744)

       

      "Java2D Disposer" daemon prio=10 tid=0x4556ac00 nid=0xdc4 in Object.wait() [0x45c5f000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x13dc1578> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x13dc1578> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)

              at sun.java2d.Disposer.run(Disposer.java:145)

              at java.lang.Thread.run(Thread.java:744)

       

      "Service Thread" daemon prio=6 tid=0x45472c00 nid=0x940 runnable [0x00000000]

         java.lang.Thread.State: RUNNABLE

       

      "C1 CompilerThread0" daemon prio=10 tid=0x4546d800 nid=0x11a8 waiting on condition [0x00000000]

       

         java.lang.Thread.State: RUNNABLE

       

      "Attach Listener" daemon prio=10 tid=0x4546bc00 nid=0x9ec runnable [0x00000000]

         java.lang.Thread.State: RUNNABLE

       

      "Signal Dispatcher" daemon prio=10 tid=0x4546a800 nid=0x1674 waiting on condition [0x00000000]

         java.lang.Thread.State: RUNNABLE

       

      "Finalizer" daemon prio=8 tid=0x00c99000 nid=0x1724 in Object.wait() [0x4545f000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x13dc17a8> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)

              - locked <0x13dc17a8> (a java.lang.ref.ReferenceQueue$Lock)

              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)

              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:189)

       

      "Reference Handler" daemon prio=10 tid=0x00c93000 nid=0x1230 in Object.wait() [0x4535f000]

         java.lang.Thread.State: WAITING (on object monitor)

              at java.lang.Object.wait(Native Method)

              - waiting on <0x13dc1830> (a java.lang.ref.Reference$Lock)

              at java.lang.Object.wait(Object.java:503)

              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)

              - locked <0x13dc1830> (a java.lang.ref.Reference$Lock)

       

      "main" prio=6 tid=0x0093e000 nid=0x16a4 waiting on condition [0x00000000]

         java.lang.Thread.State: RUNNABLE

       

      "VM Thread" prio=10 tid=0x00c91400 nid=0x15c0 runnable

       

      "VM Periodic Task Thread" prio=10 tid=0x45487400 nid=0x1710 waiting on condition

       

      JNI global references: 1262

       

      Heap

      def new generation   total 63104K, used 21665K [0x030d0000, 0x07540000, 0x13b70000)

        eden space 56128K,  27% used [0x030d0000, 0x03fcfb70, 0x067a0000)

        from space 6976K,  90% used [0x067a0000, 0x06dc88e0, 0x06e70000)

        to   space 6976K,   0% used [0x06e70000, 0x06e70000, 0x07540000)

      tenured generation   total 139984K, used 89722K [0x13b70000, 0x1c424000, 0x350d0000)

         the space 139984K,  64% used [0x13b70000, 0x1930eb28, 0x1930ec00, 0x1c424000)

      compacting perm gen  total 54784K, used 54771K [0x350d0000, 0x38650000, 0x450d0000)

         the space 54784K,  99% used [0x350d0000, 0x3864ce18, 0x3864d000, 0x38650000)

      No shared spaces configured.

        • 1. Re: SQL Developer 4.0.3 often freezes unrecoverably
          thatJeffSmith-Oracle

          >>3. copy a word to the clipboard (I've recently been doing this via Ctrl+C with a word that exists in multiple places in the file)

          >>4. use Ctrl+V, mouse clicks and mouse scroll wheel to replace multiple instances of the word with the same word from the clipboard, in various places in the file that require scrolling between. 

           

          Freezing after pasting text has been fixed, we think, for 4.1. When the EA is released/announced here, please give it a try and let us know if we've been successful in squashing this bug.

          1 person found this helpful
          • 2. Re: SQL Developer 4.0.3 often freezes unrecoverably
            cwd

            Thanks thatJeffSmith-Oracle, for your prompt reply.  I appreciate your work and how helpful you are for everyone.  Many of my questions in the past have already been answered by you, so you've helped me many times without me needing to even contact you.  So Thanks!

             

            I look forward to testing out 4.1 and hopefully then marking this as answered.

             

            If it's believed this bug has been fixed in 4.1, then presumably someone can now shed some light as to the exact trigger(s) for the bug, so that everyone using pre-4.1 can do their best to avoid it in the interim?

            • 3. Re: SQL Developer 4.0.3 often freezes unrecoverably
              Gary Graham-Oracle

              Avoid using shortcut keys to do copy/paste -- use the Edit menu or context menu items instead.