This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 133236 - Editor System Hangs when restoring a file too big
Summary: Editor System Hangs when restoring a file too big
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Text (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: mslama
URL:
Keywords:
: 143856 144469 145431 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-04-18 19:49 UTC by ngx472
Modified: 2008-12-22 14:40 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
big sql sample file (11.92 KB, text/plain)
2008-04-23 18:51 UTC, ngx472
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ngx472 2008-04-18 19:49:28 UTC
- When you open a big file >1M the editor warns you, but allows for edition
- If you don't close the file before quitting, upon restart of the platform, the serialized data tries to restore the
big file and hangs forever
- stack trace:

"AWT-EventQueue-1" prio=6 tid=0x2b6d1000 nid=0x8d0 in Object.wait() [0x2c69f000..0x2c69fc14]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04a0c930> (a org.openide.text.CloneableEditor$DoInitialize)
        at java.lang.Object.wait(Object.java:485)
        at org.openide.text.CloneableEditor$DoInitialize.initDocument(CloneableEditor.java:351)
        - locked <0x04a0c930> (a org.openide.text.CloneableEditor$DoInitialize)
        at org.openide.text.CloneableEditor$DoInitialize.initVisual(CloneableEditor.java:367)
        at org.openide.text.CloneableEditor$DoInitialize.run(CloneableEditor.java:246)
        at org.openide.text.CloneableEditor$DoInitialize.<init>(CloneableEditor.java:210)
        at org.openide.text.CloneableEditor.initialize(CloneableEditor.java:180)
        at org.openide.text.CloneableEditor.getEditorPane(CloneableEditor.java:809)
        at org.openide.text.CloneableEditorSupport.getOpenedPanes(CloneableEditorSupport.java:942)
        at org.netbeans.modules.debugger.jpda.projects.EditorContextImpl.getCurrentEditorCookie(EditorContextImpl.java:1885)
        - locked <0x04b05128> (a java.lang.Object)
        at org.netbeans.modules.debugger.jpda.projects.EditorContextImpl.getCurrentLineNumber_(EditorContextImpl.java:445)
        at org.netbeans.modules.debugger.jpda.projects.EditorContextImpl.getCurrentLineNumber(EditorContextImpl.java:426)
        at
org.netbeans.modules.debugger.jpda.projects.RunToCursorActionProvider.shouldBeEnabled(RunToCursorActionProvider.java:170)

        at
org.netbeans.modules.debugger.jpda.projects.RunToCursorActionProvider.access$100(RunToCursorActionProvider.java:86)
        at
org.netbeans.modules.debugger.jpda.projects.RunToCursorActionProvider$Listener.propertyChange(RunToCursorActionProvider.j
ava:217)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
        at org.netbeans.core.windows.RegistryImpl.doFirePropertyChange(RegistryImpl.java:314)
        at org.netbeans.core.windows.RegistryImpl.topComponentOpened(RegistryImpl.java:183)
        - locked <0x052c0ae0> (a org.netbeans.core.windows.RegistryImpl)
        at org.netbeans.core.windows.WindowManagerImpl.notifyRegistryTopComponentOpened(WindowManagerImpl.java:1007)
        at org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentOpened(WindowManagerImpl.java:976)
        at org.netbeans.core.windows.Central.addModeOpenedTopComponent(Central.java:761)
        at org.netbeans.core.windows.ModeImpl.addOpenedTopComponent(ModeImpl.java:311)
        at org.netbeans.core.windows.PersistenceHandler.initModeFromConfig(PersistenceHandler.java:388)
        at org.netbeans.core.windows.PersistenceHandler.load(PersistenceHandler.java:205)
        at org.netbeans.core.windows.WindowSystemImpl.load(WindowSystemImpl.java:69)
        at org.netbeans.core.NonGui$2.run(NonGui.java:190)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

- This happened in 6.0 but one could recover. Now it forces to go and kill the serialized settings file before restarting

Suggestion: maybe for big files we should not set persisted state to NONE ?
Comment 1 ngx472 2008-04-18 19:56:08 UTC
Typo in suggestion:
Suggestion: maybe for big files we SHOULD set persisted state to NONE ?
Comment 2 ngx472 2008-04-19 10:38:43 UTC
One could think that editing big files is stupid anyway.
However, in SQL files editing, it is frequent to manipulate very big files.
For example you can edit a file representing generated insert statements from a table to be replayed...
Comment 3 mslama 2008-04-23 14:01:36 UTC
I tried to reproduce with 6MB text file (many times replicated small diff file) but cannot reproduce. I need more
details how to reproduce it. Is it possible that IDE reaches maximum heap size? In my case I have heap 88/129MB and
-Xmx365m.
Comment 4 ngx472 2008-04-23 18:50:00 UTC
Easy to reproduce. Steps to reproduce
- launch "C:\Program Files\NetBeans 6.1 RC2\bin\netbeans.exe" with no special memory flags
- open sample.sql size = 2 914 686 bytes
- quit Netbeans
- launch "C:\Program Files\NetBeans 6.1 RC2\bin\netbeans.exe" with no special memory flags
- progam hangs forever
- JDK = 1.6.0_05

Stack
"AWT-EventQueue-1" prio=6 tid=0x2b4e3800 nid=0x478 in Object.wait() [0x2c8bf000..0x2c8bfb94]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x03b4b048> (a org.openide.text.CloneableEditor$DoInitialize)
        at java.lang.Object.wait(Object.java:485)
        at org.openide.text.CloneableEditor$DoInitialize.initDocument(CloneableEditor.java:351)
        - locked <0x03b4b048> (a org.openide.text.CloneableEditor$DoInitialize)
        at org.openide.text.CloneableEditor$DoInitialize.initVisual(CloneableEditor.java:367)
        at org.openide.text.CloneableEditor$DoInitialize.run(CloneableEditor.java:246)
        at org.openide.text.CloneableEditor$DoInitialize.<init>(CloneableEditor.java:210)
        at org.openide.text.CloneableEditor.initialize(CloneableEditor.java:180)
        at org.openide.text.CloneableEditor.getEditorPane(CloneableEditor.java:809)
        at org.openide.text.CloneableEditorSupport.getOpenedPanes(CloneableEditorSupport.java:942)
        at org.netbeans.modules.debugger.jpda.projects.EditorContextImpl.getCurrentEditorCookie(EditorContextImpl.java:1885)
        - locked <0x05097f58> (a java.lang.Object)
        at org.netbeans.modules.debugger.jpda.projects.EditorContextImpl.getCurrentLineNumber_(EditorContextImpl.java:445)
        at org.netbeans.modules.debugger.jpda.projects.EditorContextImpl.getCurrentLineNumber(EditorContextImpl.java:426)
        at
org.netbeans.modules.debugger.jpda.projects.RunToCursorActionProvider.shouldBeEnabled(RunToCursorActionProvider.java:170)

        at
org.netbeans.modules.debugger.jpda.projects.RunToCursorActionProvider.access$100(RunToCursorActionProvider.java:86)
        at
org.netbeans.modules.debugger.jpda.projects.RunToCursorActionProvider$Listener.propertyChange(RunToCursorActionProvider.j
ava:217)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
        at org.netbeans.core.windows.RegistryImpl.doFirePropertyChange(RegistryImpl.java:314)
        at org.netbeans.core.windows.RegistryImpl.topComponentOpened(RegistryImpl.java:183)
        - locked <0x05298240> (a org.netbeans.core.windows.RegistryImpl)
        at org.netbeans.core.windows.WindowManagerImpl.notifyRegistryTopComponentOpened(WindowManagerImpl.java:1007)
        at org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentOpened(WindowManagerImpl.java:976)
        at org.netbeans.core.windows.Central.addModeOpenedTopComponent(Central.java:761)
        at org.netbeans.core.windows.ModeImpl.addOpenedTopComponent(ModeImpl.java:311)
        at org.netbeans.core.windows.PersistenceHandler.initModeFromConfig(PersistenceHandler.java:388)
        at org.netbeans.core.windows.PersistenceHandler.load(PersistenceHandler.java:205)
        at org.netbeans.core.windows.WindowSystemImpl.load(WindowSystemImpl.java:69)
        at org.netbeans.core.NonGui$2.run(NonGui.java:190)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

- only way out is to kill NB
- delete corresponding settings file
- restart
Comment 5 ngx472 2008-04-23 18:51:16 UTC
Created attachment 60618 [details]
big sql sample file
Comment 6 ngx472 2008-04-23 18:52:46 UTC
- see sql file attached
- REM: I don't think it is related to the handling of sql file as it happens for me and I have my own sql file handling
- true that it does not happen for text
Comment 7 Lukas Hasik 2008-04-24 09:26:24 UTC
seems as duplicate of issue 132386. Please, try to verify it with a trunk build. 

*** This issue has been marked as a duplicate of 132386 ***
Comment 8 mslama 2008-04-24 10:54:17 UTC
Still happens. NPE on different line.
Comment 9 mslama 2008-04-24 12:48:24 UTC
Confirmed. Variable prepareTask is null for some reason.
Comment 10 mslama 2008-08-15 13:12:42 UTC
*** Issue 143856 has been marked as a duplicate of this issue. ***
Comment 11 Samaresh Panda 2008-08-19 15:51:24 UTC
See issue 144321. No longer an issue with large documents.
Comment 12 mslama 2008-08-19 15:59:20 UTC
Samaresh I have no idea what is your comment about. This (#133236) is still valid issue. I am working on it.
Comment 13 Jan Lahoda 2008-08-20 00:40:44 UTC
*** Issue 144469 has been marked as a duplicate of this issue. ***
Comment 14 mslama 2008-08-21 15:30:28 UTC
Fixed eefe8ba954b4.

It is fast fix to avoid hang. Problem is that CES.prepareDocument() returns null in this case. It is not correct and
should be fixed. But it is bigger change. I filed separate issue #144722 for this.
Comment 15 Quality Engineering 2008-08-22 06:07:17 UTC
Integrated into 'main-golden', available in build *200808220201* on http://bits.netbeans.org/dev/nightly/
Changeset: http://hg.netbeans.org/main/rev/eefe8ba954b4
User: Marek Slama <mslama@netbeans.org>
Log: #133236: Handle null task returned from CES.prepareDocument().
Comment 16 mslama 2008-09-01 12:37:15 UTC
*** Issue 145431 has been marked as a duplicate of this issue. ***