tuliob / jsyntaxpane

Automatically exported from code.google.com/p/jsyntaxpane
0 stars 0 forks source link

autocompletion bug #52

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
jsyntaxpane 0.9.4 autocompletion gives a null pointer exception at row 66
in jsyntaxpane.actions.ComboCompletionAction if the component is used in a
jdialog instead of a frame.
This is the bug report:

Exception occurred during event dispatching:
java.lang.NullPointerException
    at
jsyntaxpane.actions.ComboCompletionAction.actionPerformed(ComboCompletionAction.
java:66)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2884)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
    at java.awt.Component.processEvent(Component.java:5911)
    at java.awt.Container.processEvent(Container.java:2023)
    at java.awt.Component.dispatchEventImpl(Component.java:4501)
    at java.awt.Container.dispatchEventImpl(Container.java:2081)
    at java.awt.Component.dispatchEvent(Component.java:4331)
    at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
    at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManage
r.java:704)
    at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusMan
ager.java:969)
    at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusMan
ager.java:841)
    at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.j
ava:668)
    at java.awt.Component.dispatchEventImpl(Component.java:4373)
    at java.awt.Container.dispatchEventImpl(Container.java:2081)
    at java.awt.Window.dispatchEventImpl(Window.java:2458)
    at java.awt.Component.dispatchEvent(Component.java:4331)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    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:1047)
    at java.awt.Dialog$3.run(Dialog.java:1099)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Dialog.show(Dialog.java:1097)
    at java.awt.Component.show(Component.java:1447)
    at java.awt.Component.setVisible(Component.java:1400)
    at java.awt.Window.setVisible(Window.java:824)
    at java.awt.Dialog.setVisible(Dialog.java:987)
    at
com.SintesiSCpA.OrchestraDesigner.Actions.EditDLCAction.actionPerformed(EditDLCA
ction.java:60)
    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.AbstractButton.doClick(AbstractButton.java:357)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)
    at
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.jav
a:1266)
    at java.awt.Component.processMouseEvent(Component.java:6134)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    at java.awt.Component.processEvent(Component.java:5899)
    at java.awt.Container.processEvent(Container.java:2023)
    at java.awt.Component.dispatchEventImpl(Component.java:4501)
    at java.awt.Container.dispatchEventImpl(Container.java:2081)
    at java.awt.Component.dispatchEvent(Component.java:4331)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
    at java.awt.Container.dispatchEventImpl(Container.java:2067)
    at java.awt.Window.dispatchEventImpl(Window.java:2458)
    at java.awt.Component.dispatchEvent(Component.java:4331)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    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)

Original issue reported on code.google.com by enrica.i...@gmail.com on 19 Jan 2009 at 10:28

GoogleCodeExporter commented 9 years ago
This happens because the new autocomplete is implemented as a JDialog, which 
requires
a Frame as its parent.  I'll test a fix.  
How urgent is this?  Why not have the EditorPane in a JFrame?  
I'm asking to see the best time to release a fix.  Now or with next release 
(0.9.5)

Original comment by ayman.al...@gmail.com on 20 Jan 2009 at 5:13

GoogleCodeExporter commented 9 years ago
This is urgent and I can't have the EditorPane in a JFrame.

Proposed patch in ComboCompletionAction.java:
//Frame frame = ActionUtils.getFrameFor(target);
Window frame = SwingUtilities.getWindowAncestor(target);
if (dlg == null) 
{
    dlg = new ComboCompletionDialog(frame, true, items);
}

Proposed patch in ComboCompletionDialog.java:
public ComboCompletionDialog(Window parent, boolean modal,String[] items) 
{
   super(parent, ModalityType.APPLICATION_MODAL);
   ...
}

Original comment by enrica.i...@gmail.com on 20 Jan 2009 at 11:40

GoogleCodeExporter commented 9 years ago
This is now fixed for 0.9.5 pre-release in r73 and r74

Original comment by ayman.al...@gmail.com on 25 Jan 2009 at 1:50