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 211034

Summary: NullPointerException at org.netbeans.modules.html.HtmlEditorSupport.updateEncoding
Product: cnd Reporter: Vladimir Voskresensky <vv159170>
Component: -- Other --Assignee: issues@cnd <issues>
Status: RESOLVED FIXED    
Severity: normal CC: issues, jtulach, mfukala
Priority: P1    
Version: 7.2   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:
Bug Depends on:    
Bug Blocks: 209745    

Description Vladimir Voskresensky 2012-04-11 16:41:58 UTC
even after fixing http://netbeans.org/bugzilla/show_bug.cgi?id=210541 Studio IDE can not work with HTML files. Now it is NPE when just adding HTML file to project.

java.lang.NullPointerException
    at
org.netbeans.modules.html.HtmlEditorSupport.updateEncoding(HtmlEditorSupport.java:178)
    at
org.netbeans.modules.html.HtmlEditorSupport.saveDocument(HtmlEditorSupport.java:135)
    at org.netbeans.modules.editor.EditorModule.reformat(EditorModule.java:637)
    at
org.netbeans.modules.editor.EditorModule.access$100(EditorModule.java:109)
    at
org.netbeans.modules.editor.EditorModule$5.operationCreateFromTemplate(EditorModule.java:294)
    at
org.openide.loaders.DataLoaderPool.fireOperationEvent(DataLoaderPool.java:240)
    at org.openide.loaders.DataObject.fireOperationEvent(DataObject.java:870)
    at org.openide.loaders.DataObject.createFromTemplate(DataObject.java:843)
    at
org.openide.loaders.TemplateWizard$DefaultIterator.instantiate(TemplateWizard.java:888)
    at
org.openide.loaders.TemplateWizard.handleInstantiate(TemplateWizard.java:587)
    at
org.openide.loaders.TemplateWizard.instantiateNewObjects(TemplateWizard.java:426)
    at
org.openide.loaders.TemplateWizardIterImpl.instantiate(TemplateWizardIterImpl.java:247)
    at
org.openide.loaders.TemplateWizardIteratorWrapper.instantiate(TemplateWizardIteratorWrapper.java:160)
    at
org.openide.WizardDescriptor.callInstantiateOpen(WizardDescriptor.java:1600)
    at org.openide.WizardDescriptor.callInstantiate(WizardDescriptor.java:1541)
    at org.openide.WizardDescriptor.access$2000(WizardDescriptor.java:139)
[catch] at
org.openide.WizardDescriptor$Listener$2$1.run(WizardDescriptor.java:2165)
    at org.openide.WizardDescriptor$Listener$2.run(WizardDescriptor.java:2222)
    at org.openide.WizardDescriptor.lazyValidate(WizardDescriptor.java:1516)
    at org.openide.WizardDescriptor.access$1600(WizardDescriptor.java:139)
    at
org.openide.WizardDescriptor$Listener.actionPerformed(WizardDescriptor.java:2229)
    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.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:457)
    at $Proxy15.actionPerformed(Unknown Source)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6290)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6055)
    at java.awt.Container.processEvent(Container.java:2039)
    at java.awt.Component.dispatchEventImpl(Component.java:4653)
    at java.awt.Container.dispatchEventImpl(Container.java:2097)
    at java.awt.Component.dispatchEvent(Component.java:4481)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
    at java.awt.Container.dispatchEventImpl(Container.java:2083)
    at java.awt.Window.dispatchEventImpl(Window.java:2482)
    at java.awt.Component.dispatchEvent(Component.java:4481)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:648)
    at java.awt.EventQueue.access$000(EventQueue.java:84)
    at java.awt.EventQueue$1.run(EventQueue.java:607)
    at java.awt.EventQueue$1.run(EventQueue.java:605)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:621)
    at java.awt.EventQueue$2.run(EventQueue.java:619)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
    at
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
    at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
    at java.awt.Dialog$1.run(Dialog.java:1044)
    at java.awt.Dialog$3.run(Dialog.java:1096)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Dialog.show(Dialog.java:1094)
    at
org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1051)
    at
org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1085)
    at
org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1073)
    at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:125)
    at org.openide.util.Mutex.doEventAccess(Mutex.java:1361)
    at org.openide.util.Mutex.readAccess(Mutex.java:271)
    at
org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1058)
    at java.awt.Component.show(Component.java:1584)
    at java.awt.Component.setVisible(Component.java:1536)
    at java.awt.Window.setVisible(Window.java:841)
    at java.awt.Dialog.setVisible(Dialog.java:984)
    at
org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.showDialog(DialogDisplayerImpl.java:260)
    at
org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.run(DialogDisplayerImpl.java:186)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
    at java.awt.EventQueue.access$000(EventQueue.java:84)
    at java.awt.EventQueue$1.run(EventQueue.java:607)
    at java.awt.EventQueue$1.run(EventQueue.java:605)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
    at
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
    at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Comment 1 Vladimir Voskresensky 2012-04-11 16:43:09 UTC
P1, because we still can not make Studio IDE workable and tests are failing.
Comment 2 Marek Fukala 2012-04-12 10:01:26 UTC
changeset:   219605:642b75c7366c
summary:     #210541 - more robust code with respect to a CES redirectors

No NPE should be thrown now, but if HtmlEditorSupport.getDocument()  returns null due to a registered CES redirector which return null from getDocument() then the file encoding is not properly used when saving the document to the FileObject.

I cannot reproduce the issue so I just guess it may be caused by a problem in the registered redirector.

BTW do you mean CND distribution by "Studio IDE"???

Please give me more info how to reproduce or ideally create a complete failing unit test for me. Then I'll try to make more elegant solution, otherwise I cannot fix properly. Please reopen the issue then. Thank you for understanding.
Comment 3 Marek Fukala 2012-04-12 10:04:17 UTC
BTW when the problem started to appear? I haven't done any change in the related code for long time so it may be caused by some platform (Jarda's) changes (not necessarily regression, could just reveal an old bug in html).
Comment 4 Vladimir Voskresensky 2012-04-12 11:12:30 UTC
it appeared exactly after Jarda's fix of  http://netbeans.org/bugzilla/show_bug.cgi?id=210541