Tracker: Bugs

5 Exception with Macro File/Insert Selection - ID: 3596616
Last Update: Comment added ( kpouer )

The following steps will throw an exception in JEdit 5.0.0

1. Start jEdit with an empty file
2. Follow the menu Macros/Files/Insert Selection

Exception trace

Command not found: getToolkit() : at Line: 37 :

at org.gjt.sp.jedit.bsh.Name.invokeLocalMethod(Name.java:949)
at org.gjt.sp.jedit.bsh.Name.invokeMethod(Name.java:801)
at org.gjt.sp.jedit.bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
at org.gjt.sp.jedit.bsh.BSHPrimarySuffix.doSuffix(BSHPrimarySuffix.java:102)
at org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:80)
at org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at org.gjt.sp.jedit.bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
at org.gjt.sp.jedit.bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:80)
at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:46)
at org.gjt.sp.jedit.bsh.BSHIfStatement.eval(BSHIfStatement.java:51)
at org.gjt.sp.jedit.bsh.Interpreter.eval(Interpreter.java:644)
at org.gjt.sp.jedit.BeanShell._runScript(BeanShell.java:339)
at org.gjt.sp.jedit.BeanShell._runScript(BeanShell.java:287)
at org.gjt.sp.jedit.BeanShell.runScript(BeanShell.java:213)
at org.gjt.sp.jedit.Macros$BeanShellHandler.runMacro(Macros.java:1151)
at org.gjt.sp.jedit.Macros$Macro.invoke(Macros.java:573)
at org.gjt.sp.jedit.gui.InputHandler.invokeAction(InputHandler.java:342)
at org.gjt.sp.jedit.jEdit$4.invokeAction(jEdit.java:3386)
at org.gjt.sp.jedit.jEdit$4.invokeAction(jEdit.java:1)
at org.gjt.sp.jedit.EditAction$Wrapper.actionPerformed(EditAction.java:212)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:873)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6389)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
at java.awt.Component.processEvent(Component.java:6154)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4750)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2518)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.awt.EventQueue$3.run(EventQueue.java:643)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)


Bao N. Nguyen ( baonn ) - 2012-12-16 10:29:38 PST

5

Closed

Fixed

Thomas Meyer

None

None

Public


Comments ( 5 )

Date: 2013-01-14 02:52:04 PST
Sender: kpouerProject Admin

Oh you are right, it is now "package protected"


Date: 2013-01-12 03:48:26 PST
Sender: thomasmey

Hi,

yes, the macro doesn't work if the selection contains an existing file
path, because Buffer.close() method doesn't exists (class visibility or was
it removed?!).

Backtrace is:
Sourced file:
/home/thomas/workspace/jEdit/macros/Files/Insert_Selection.bsh : Error in
method invocation: Method close() not found in
class'org.gjt.sp.jedit.Buffer' : at Line: 27 :
in file: /home/thomas/workspace/jEdit/macros/Files/Insert_Selection.bsh
: b .close ( )

at
org.gjt.sp.jedit.bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:77)
at
org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at
org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at org.gjt.sp.jedit.bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
at org.gjt.sp.jedit.bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:80)
at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:46)
at org.gjt.sp.jedit.bsh.BSHTryStatement.eval(BSHTryStatement.java:179)
at org.gjt.sp.jedit.bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:80)
at org.gjt.sp.jedit.bsh.BshMethod.invokeImpl(BshMethod.java:362)
at org.gjt.sp.jedit.bsh.BshMethod.invoke(BshMethod.java:258)
at org.gjt.sp.jedit.bsh.BshMethod.invoke(BshMethod.java:186)
at org.gjt.sp.jedit.bsh.Name.invokeLocalMethod(Name.java:914)
at org.gjt.sp.jedit.bsh.Name.invokeMethod(Name.java:801)
at
org.gjt.sp.jedit.bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
at
org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at
org.gjt.sp.jedit.bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at org.gjt.sp.jedit.bsh.BSHIfStatement.eval(BSHIfStatement.java:51)
at org.gjt.sp.jedit.bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:80)
at org.gjt.sp.jedit.bsh.BSHBlock.eval(BSHBlock.java:46)
at org.gjt.sp.jedit.bsh.BSHIfStatement.eval(BSHIfStatement.java:51)
at org.gjt.sp.jedit.bsh.Interpreter.eval(Interpreter.java:644)
at org.gjt.sp.jedit.BeanShell._runScript(BeanShell.java:339)
at org.gjt.sp.jedit.BeanShell._runScript(BeanShell.java:287)
at org.gjt.sp.jedit.BeanShell.runScript(BeanShell.java:213)
at org.gjt.sp.jedit.Macros$BeanShellHandler.runMacro(Macros.java:1151)
at org.gjt.sp.jedit.Macros$Macro.invoke(Macros.java:573)
at org.gjt.sp.jedit.gui.InputHandler.invokeAction(InputHandler.java:342)
at org.gjt.sp.jedit.jEdit$4.invokeAction(jEdit.java:3393)
at org.gjt.sp.jedit.jEdit$4.invokeAction(jEdit.java:1)
at
org.gjt.sp.jedit.EditAction$Wrapper.actionPerformed(EditAction.java:212)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at
javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at
javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:943)
at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:585)
at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:482)
at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:428)
at
javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:321)
at
javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:859)
at
java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2434)
at
java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2326)
at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2284)
at java.awt.Component.dispatchEventImpl(Component.java:4757)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)


My proposed patch #3598726 uses the jEdit._closeBuffer(null, b) method
instead of Buffer.close().

I also contains a fix for jEdit._closeBuffer(null, b) when this method is
called for a temporary buffer, which currently doesn't work correctly.


Date: 2013-01-11 08:36:27 PST
Sender: kpouerProject Admin

Oh I did a quick fix without seeing there was a patch.
The patch looks complex, why changing everything ? There was something else
that was wrong with that macro ?


Date: 2012-12-20 09:10:36 PST
Sender: ezustProject AdminAccepting Donations

Thomas, you should create a new patches ticket and attach your patch to
that, otherwise it could be left here unseen by other devs.




Date: 2012-12-18 12:25:23 PST
Sender: thomasmey

Proposed patch attached.


Attached File ( 1 )

Filename Description Download
Fix-Insert_Selection.patch v1 Download

Changes ( 6 )

Field Old Value Date By
close_date - 2013-01-11 08:36:28 PST kpouer
allow_comments 1 2013-01-11 08:36:28 PST kpouer
resolution_id None 2013-01-11 08:36:28 PST kpouer
status_id Open 2013-01-11 08:36:28 PST kpouer
File Added 457996: Fix-Insert_Selection.patch 2012-12-18 12:26:55 PST thomasmey
assigned_to nobody 2012-12-18 10:26:20 PST thomasmey