[
https://issues.apache.org/jira/browse/NETBEANS-217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16296831#comment-16296831
]
Antonio Vieiro commented on NETBEANS-217:
-----------------------------------------
This looks plain wrong, casting an UndoableEditEvent to a DefaultDocumentEvent
seems a hack.
Even more, an initial evaluation indicates that this is a PlainDocument, and
not an AbstractDocument.
I think the UndoRedoSupport should go away.
{code:java}
public void undoableEditHappened(UndoableEditEvent e) {
if (edit == null) {
startNewEdit(e.getEdit());
processDocumentChange();
return;
}
AbstractDocument.DefaultDocumentEvent event =
(AbstractDocument.DefaultDocumentEvent) e.getEdit();
{code}
> ClassCastException when editing Git commit message
> --------------------------------------------------
>
> Key: NETBEANS-217
> URL: https://issues.apache.org/jira/browse/NETBEANS-217
> Project: NetBeans
> Issue Type: Bug
> Components: versioncontrol - Git
> Affects Versions: 9.0
> Environment: Windows 10
> Java 9
> Build: incubator-netbeans-linux-268-on-20171213
> Reporter: Thomas Kellerer
> Labels: Java9-IDE
>
> When editing the commit message in a Git commit window, every keystroke
> generates the following exception:
> {noformat}
> java.lang.ClassCastException:
> java.desktop/javax.swing.text.AbstractDocument$DefaultDocumentEventUndoableWrapper
> cannot be cast to
> java.desktop/javax.swing.text.AbstractDocument$DefaultDocumentEvent
> at
> org.netbeans.modules.versioning.util.UndoRedoSupport$CompoundUndoManager.undoableEditHappened(UndoRedoSupport.java:111)
> at
> java.desktop/javax.swing.text.AbstractDocument.fireUndoableEditUpdate(AbstractDocument.java:293)
> at
> java.desktop/javax.swing.text.AbstractDocument.handleRemove(AbstractDocument.java:632)
> at
> java.desktop/javax.swing.text.AbstractDocument.remove(AbstractDocument.java:596)
> at
> java.desktop/javax.swing.text.DefaultEditorKit$DeletePrevCharAction.actionPerformed(DefaultEditorKit.java:1075)
> at
> java.desktop/javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1805)
> at
> java.desktop/javax.swing.JComponent.processKeyBinding(JComponent.java:2901)
> at
> java.desktop/javax.swing.JComponent.processKeyBindings(JComponent.java:2949)
> at
> java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2863)
> at java.desktop/java.awt.Component.processEvent(Component.java:6355)
> at java.desktop/java.awt.Container.processEvent(Container.java:2259)
> at
> java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4961)
> at
> java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2317)
> at java.desktop/java.awt.Component.dispatchEvent(Component.java:4793)
> at
> java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1955)
> at
> java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:827)
> at
> java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1096)
> at
> java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:966)
> at
> java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:792)
> at
> java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4842)
> at
> java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2317)
> at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2758)
> at java.desktop/java.awt.Component.dispatchEvent(Component.java:4793)
> at
> java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
> at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
> at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
> at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
> at
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:99)
> at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:739)
> at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:737)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
> at
> org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
> [catch] at
> java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
> at
> java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
> at
> java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
> at
> java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at
> java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
> at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
> at
> org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1060)
> at
> org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1110)
> at
> org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1082)
> at
> org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:105)
> at
> org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:115)
> at
> org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:75)
> at
> org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:71)
> at org.openide.util.Mutex.readAccess(Mutex.java:193)
> at
> org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1067)
> at java.desktop/java.awt.Component.show(Component.java:1669)
> at java.desktop/java.awt.Component.setVisible(Component.java:1616)
> at java.desktop/java.awt.Window.setVisible(Window.java:1017)
> at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005)
> at
> org.netbeans.modules.versioning.util.common.VCSCommitPanel.open(VCSCommitPanel.java:608)
> at
> org.netbeans.modules.git.ui.commit.GitCommitPanel.open(GitCommitPanel.java:166)
> at
> org.netbeans.modules.git.ui.commit.CommitAction$1.run(CommitAction.java:131)
> at
> java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
> at
> java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
> at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
> at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
> at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at
> java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
> at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
> at
> org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
> at
> java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
> at
> java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
> at
> java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists