Netbeans Version: NetBeans IDE 8.0.2 (Build 201411181905)
Java: 1.8.0_11; Java HotSpot(TM) 64-Bit Server VM 25.11-b03
Runtime: Java(TM) SE Runtime Environment 1.8.0_11-b12
Plugin version:1.1
Source: Plugin Portal
step by step to reproduce:
open an html file with netbeans.
put the cursor anywhere in the editor without selecting any text.
run the command "wrap with abbreviation"
write any tag in the text box. for exemple strong.
clic OK button.
expected result (i dont know the specification but I guess there are two options):
<tag></tag> is displayed
---- or ----
nothing happens
seen result:
Java exception (see attached or traces below).
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 12
at java.lang.String.charAt(String.java:646)
at org.lorenzos.zencoding.zeneditor.ZenEditor.getIndentation(ZenEditor.java:263)
at org.lorenzos.zencoding.zeneditor.ZenEditor.replaceContent(ZenEditor.java:107)
=> in functions getIndentation, there is :
String line = this.getLine();
the string "line" may contain null or may be empty according to how getLine function works.
proposed solution :
I think make null &/or empty string tests before using "line" variable or surround the "while (Character.isWhitespace(line.charAt(i))) ws += line.charAt(i++);" by try-catch at least to prevent displaying the exeption in netbeans output to the end user.
org.mozilla.javascript.WrappedException: Wrapped java.lang.StringIndexOutOfBoundsException: String index out of range: 12 (zencoding-java.js#3346)
at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1773)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:183)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
at org.mozilla.javascript.gen.c1._c138(zencoding-java.js:3346)
at org.mozilla.javascript.gen.c1.call(zencoding-java.js)
at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2408)
at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:282)
at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:129)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at org.mozilla.javascript.gen.c1._c104(zencoding-java.js:2632)
at org.mozilla.javascript.gen.c1.call(zencoding-java.js)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at org.mozilla.javascript.gen.c1._c379(zencoding-java.js:7561)
at org.mozilla.javascript.gen.c1.call(zencoding-java.js)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
at org.mozilla.javascript.gen.c1.call(zencoding-java.js)
at ru.zencoding.JSExecutor.runAction(JSExecutor.java:75)
at org.lorenzos.zencoding.actions.ZenCodingAbstractAction$1.run(ZenCodingAbstractAction.java:44)
at org.netbeans.editor.GuardedDocument.runAtomic(GuardedDocument.java:323)
at org.openide.text.NbDocument.runAtomic(NbDocument.java:436)
at org.lorenzos.zencoding.actions.ZenCodingAbstractAction.actionPerformed(ZenCodingAbstractAction.java:49)
at org.openide.awt.InjectorAny.actionPerformed(InjectorAny.java:73)
at org.openide.awt.ContextAction$Performer.actionPerformed(ContextAction.java:226)
at org.openide.awt.ContextManager.actionPerformed(ContextManager.java:260)
at org.openide.awt.ContextAction.actionPerformed(ContextAction.java:109)
at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:93)
at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
at org.openide.awt.GeneralAction$BaseDelAction.actionPerformed(GeneralAction.java:234)
at org.openide.windows.TopComponent.processKeyBinding(TopComponent.java:1176)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2940)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2842)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
at java.awt.Component.dispatchEventImpl(Component.java:4754)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 12
at java.lang.String.charAt(String.java:646)
at org.lorenzos.zencoding.zeneditor.ZenEditor.getIndentation(ZenEditor.java:263)
at org.lorenzos.zencoding.zeneditor.ZenEditor.replaceContent(ZenEditor.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
... 65 more
Netbeans Version: NetBeans IDE 8.0.2 (Build 201411181905) Java: 1.8.0_11; Java HotSpot(TM) 64-Bit Server VM 25.11-b03 Runtime: Java(TM) SE Runtime Environment 1.8.0_11-b12
Plugin version:1.1 Source: Plugin Portal
step by step to reproduce:
expected result (i dont know the specification but I guess there are two options):
seen result: Java exception (see attached or traces below).
=> in functions getIndentation, there is :
the string "line" may contain null or may be empty according to how getLine function works.
proposed solution :
I think make null &/or empty string tests before using "line" variable or surround the "while (Character.isWhitespace(line.charAt(i))) ws += line.charAt(i++);" by try-catch at least to prevent displaying the exeption in netbeans output to the end user.