You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Pascal Schumacher (JIRA)" <ji...@apache.org> on 2016/05/20 19:35:12 UTC
[jira] [Resolved] (GROOVY-7832) NullPointerException in
GroovyConsole with an input method
[ https://issues.apache.org/jira/browse/GROOVY-7832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pascal Schumacher resolved GROOVY-7832.
---------------------------------------
Resolution: Fixed
Assignee: Jochen Theodorou
Fix Version/s: 2.4.7
merged Jochens pull request
> NullPointerException in GroovyConsole with an input method
> ----------------------------------------------------------
>
> Key: GROOVY-7832
> URL: https://issues.apache.org/jira/browse/GROOVY-7832
> Project: Groovy
> Issue Type: Bug
> Components: Groovy Console
> Affects Versions: 2.4.6
> Environment: OS X El Capitan (version 10.11.4), JDK 7u71, Google Japanese Input 2.17.2400.1
> Reporter: Muneyuki Noguchi
> Assignee: Jochen Theodorou
> Fix For: 2.4.7
>
> Attachments: NullPointerException_in_groovyConsole.png
>
>
> When an input method is enabled and focus is set to a Groovy Console window, the Groovy Console sometimes throws NullPointerException.
> Here is a message from the Groovy Console:
> {code}
> Exception in thread "AWT-EventQueue-0"
> java.lang.NullPointerException
> at groovy.ui.text.StructuredSyntaxDocumentFilter.replaceMetaCharacters(StructuredSyntaxDocumentFilter.java:285)
> at groovy.ui.text.StructuredSyntaxDocumentFilter.replace(StructuredSyntaxDocumentFilter.java:274)
> at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:662)
> at javax.swing.JTextPane.replaceSelection(JTextPane.java:192)
> at javax.swing.JTextPane.replaceSelection(JTextPane.java:175)
> at groovy.ui.text.TextEditor.replaceSelection(TextEditor.java:367)
> at javax.swing.text.JTextComponent.replaceInputMethodText(JTextComponent.java:4767)
> at javax.swing.text.JTextComponent.processInputMethodEvent(JTextComponent.java:4506)
> at java.awt.Component.processEvent(Component.java:6298)
> at java.awt.Container.processEvent(Container.java:2229)
> at java.awt.Component.dispatchEventImpl(Component.java:4872)
> at java.awt.Container.dispatchEventImpl(Container.java:2287)
> at java.awt.Component.dispatchEvent(Component.java:4698)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
> at java.awt.EventQueue.access$200(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:694)
> at java.awt.EventQueue$3.run(EventQueue.java:692)
> 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:708)
> at java.awt.EventQueue$4.run(EventQueue.java:706)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
> at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> java.lang.reflect.InvocationTargetException
> at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:572)
> at sun.lwawt.macosx.CInputMethod.attributedSubstringFromRange(CInputMethod.java:586)
> Caused by: java.lang.IllegalArgumentException: Invalid substring range
> at java.text.AttributedString$AttributedStringIterator.<init>(AttributedString.java:756)
> at java.text.AttributedString.getIterator(AttributedString.java:583)
> at sun.lwawt.macosx.CInputMethod$3.run(CInputMethod.java:605)
> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
> at java.awt.EventQueue.access$200(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:694)
> at java.awt.EventQueue$3.run(EventQueue.java:692)
> 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:708)
> at java.awt.EventQueue$4.run(EventQueue.java:706)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
> at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> Exception in thread "AWT-EventQueue-0"
> java.lang.NullPointerException
> at groovy.ui.text.StructuredSyntaxDocumentFilter.replaceMetaCharacters(StructuredSyntaxDocumentFilter.java:285)
> at groovy.ui.text.StructuredSyntaxDocumentFilter.replace(StructuredSyntaxDocumentFilter.java:274)
> at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:662)
> at javax.swing.JTextPane.replaceSelection(JTextPane.java:192)
> at javax.swing.JTextPane.replaceSelection(JTextPane.java:175)
> at groovy.ui.text.TextEditor.replaceSelection(TextEditor.java:367)
> at javax.swing.text.JTextComponent.replaceInputMethodText(JTextComponent.java:4767)
> at javax.swing.text.JTextComponent.processInputMethodEvent(JTextComponent.java:4506)
> at java.awt.Component.processEvent(Component.java:6298)
> at java.awt.Container.processEvent(Container.java:2229)
> at java.awt.Component.dispatchEventImpl(Component.java:4872)
> at java.awt.Container.dispatchEventImpl(Container.java:2287)
> at java.awt.Component.dispatchEvent(Component.java:4698)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
> at java.awt.EventQueue.access$200(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:694)
> at java.awt.EventQueue$3.run(EventQueue.java:692)
> 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:708)
> at java.awt.EventQueue$4.run(EventQueue.java:706)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
> at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> Exception in thread "AWT-EventQueue-0"
> java.lang.NullPointerException
> at groovy.ui.text.StructuredSyntaxDocumentFilter.replaceMetaCharacters(StructuredSyntaxDocumentFilter.java:285)
> at groovy.ui.text.StructuredSyntaxDocumentFilter.replace(StructuredSyntaxDocumentFilter.java:274)
> at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:662)
> at javax.swing.JTextPane.replaceSelection(JTextPane.java:192)
> at javax.swing.JTextPane.replaceSelection(JTextPane.java:175)
> at groovy.ui.text.TextEditor.replaceSelection(TextEditor.java:367)
> at javax.swing.text.JTextComponent.replaceInputMethodText(JTextComponent.java:4767)
> at javax.swing.text.JTextComponent.processInputMethodEvent(JTextComponent.java:4506)
> at java.awt.Component.processEvent(Component.java:6298)
> at java.awt.Container.processEvent(Container.java:2229)
> at java.awt.Component.dispatchEventImpl(Component.java:4872)
> at java.awt.Container.dispatchEventImpl(Container.java:2287)
> at java.awt.Component.dispatchEvent(Component.java:4698)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
> at java.awt.EventQueue.access$200(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:694)
> at java.awt.EventQueue$3.run(EventQueue.java:692)
> 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:708)
> at java.awt.EventQueue$4.run(EventQueue.java:706)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
> at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> java.lang.reflect.InvocationTargetException
> at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:572)
> at sun.lwawt.macosx.CInputMethod.characterIndexForPoint(CInputMethod.java:757)
> Caused by: java.lang.NullPointerException
> at javax.swing.text.JTextComponent$InputMethodRequestsHandler.getLocationOffset(JTextComponent.java:4651)
> at sun.awt.im.InputMethodContext.getLocationOffset(InputMethodContext.java:286)
> at sun.lwawt.macosx.CInputMethod$7.run(CInputMethod.java:759)
> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
> at java.awt.EventQueue.access$200(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:694)
> at java.awt.EventQueue$3.run(EventQueue.java:692)
> 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:708)
> at java.awt.EventQueue$4.run(EventQueue.java:706)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
> at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> java.lang.reflect.InvocationTargetException
> at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:572)
> at sun.lwawt.macosx.CInputMethod.characterIndexForPoint(CInputMethod.java:757)
> Caused by: java.lang.NullPointerException
> at javax.swing.text.JTextComponent$InputMethodRequestsHandler.getLocationOffset(JTextComponent.java:4651)
> at sun.awt.im.InputMethodContext.getLocationOffset(InputMethodContext.java:286)
> at sun.lwawt.macosx.CInputMethod$7.run(CInputMethod.java:759)
> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
> at java.awt.EventQueue.access$200(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:694)
> at java.awt.EventQueue$3.run(EventQueue.java:692)
> 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:708)
> at java.awt.EventQueue$4.run(EventQueue.java:706)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
> at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> {code}
> Here is a message from Terminal.app:
> {code}
> $ bin/groovyConsole
> ^[[A2016-05-03 13:22:04.418 java[2464:278618] An uncaught exception was raised
> 2016-05-03 13:22:04.418 java[2464:278618] NSConcreteAttributedString initWithString:: nil value
> 2016-05-03 13:22:04.421 java[2464:278618] (
> 0 CoreFoundation 0x00007fff903554f2 __exceptionPreprocess + 178
> 1 libobjc.A.dylib 0x00007fff88c7073c objc_exception_throw + 48
> 2 CoreFoundation 0x00007fff903bc4bd +[NSException raise:format:] + 205
> 3 Foundation 0x00007fff8e4b5255 -[NSConcreteAttributedString initWithString:] + 132
> 4 liblwawt.dylib 0x000000011b3193fe -[AWTView attributedSubstringForProposedRange:actualRange:] + 135
> 5 AppKit 0x00007fff87fba58d -[NSTextInputContext(NSInputContext_WithCompletion) attributedSubstringForProposedRange:completionHandler:] + 105
> 6 AppKit 0x00007fff87fb60a2 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke_3520 + 115
> 7 AppKit 0x00007fff87fb361a -[NSTextInputContext tryHandleTSMEvent_attributedSubstringForProposedRange_withContext:dispatchCondition:dispatchWork:continuation:] + 101
> 8 AppKit 0x00007fff87fb6005 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke516 + 461
> 9 AppKit 0x00007fff87fb5d09 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke_2499 + 474
> 10 AppKit 0x00007fff87fba873 -[NSTextInputContext(NSInputContext_WithCompletion) firstRectForCharacterRange:completionHandler:] + 397
> 11 AppKit 0x00007fff87fb5b24 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke498 + 198
> 12 AppKit 0x00007fff87fb3279 __178-[NSTextInputContext tryHandleTSMEvent_offsetToPos_markedOrSelRange_withContext:markedOrSelRangeDispatchCondition:markedRangeContinuation:selectedRangeContinuation:continuation:]_block_invoke + 99
> 13 AppKit 0x00007fff87fb3209 -[NSTextInputContext tryHandleTSMEvent_offsetToPos_markedOrSelRange_withContext:markedOrSelRangeDispatchCondition:markedRangeContinuation:selectedRangeContinuation:continuation:] + 213
> 14 AppKit 0x00007fff87fb56cb __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke461 + 372
> 15 AppKit 0x00007fff878a4947 -[NSTextInputContext handleTSMEvent:completionHandler:] + 2429
> 16 AppKit 0x00007fff878a3f5e _NSTSMEventHandler + 324
> 17 HIToolbox 0x00007fff948987be _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1231
> 18 HIToolbox 0x00007fff94897c48 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 404
> 19 HIToolbox 0x00007fff94897aab SendEventToEventTargetWithOptions + 43
> 20 HIToolbox 0x00007fff948ecf7d SendTSMEvent_WithCompletionHandler + 417
> 21 HIToolbox 0x00007fff94a9f105 __SendTextInputEvent_WithCompletionHandler_block_invoke + 586
> 22 HIToolbox 0x00007fff94a9d3fd SendTextInputEvent_WithCompletionHandler + 1228
> 23 HIToolbox 0x00007fff94b09474 -[IMKInputSession _postEvent:completionHandler:] + 184
> 24 HIToolbox 0x00007fff94b09336 -[IMKInputSession _createAndSendOffsetToPointEvent:completionHandler:] + 300
> 25 HIToolbox 0x00007fff94b1d014 -[IMKInputSession attributesForCharacterIndex_andLineRect:completionHandler:] + 597
> 26 HIToolbox 0x00007fff94b1dcc8 -[IMKInputSession attributesForCharacterIndex:completionHandler:] + 113
> 27 HIToolbox 0x00007fff94b0b19b __60-[IMKInputSession imkxpc_attributesForCharacterIndex:reply:]_block_invoke + 502
> 28 CoreFoundation 0x00007fff902ea4ac __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
> 29 CoreFoundation 0x00007fff902c9d05 __CFRunLoopDoBlocks + 341
> 30 CoreFoundation 0x00007fff902c94ce __CFRunLoopRun + 910
> 31 CoreFoundation 0x00007fff902c8ed8 CFRunLoopRunSpecific + 296
> 32 HIToolbox 0x00007fff948c0935 RunCurrentEventLoopInMode + 235
> 33 HIToolbox 0x00007fff948c0677 ReceiveNextEventCommon + 184
> 34 HIToolbox 0x00007fff948c05af _BlockUntilNextEventMatchingListInModeWithFilter + 71
> 35 AppKit 0x00007fff876fdefa _DPSNextEvent + 1067
> 36 AppKit 0x00007fff876fd32a -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
> 37 libosxapp.dylib 0x000000011b16a4e3 -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 124
> 38 AppKit 0x00007fff876f1e84 -[NSApplication run] + 682
> 39 libosxapp.dylib 0x000000011b16a346 +[NSApplicationAWT runAWTLoopWithApp:] + 156
> 40 liblwawt.dylib 0x000000011b30c539 -[AWTStarter starter:] + 873
> 41 Foundation 0x00007fff8e4dcf5e __NSThreadPerformPerform + 279
> 42 CoreFoundation 0x00007fff902ea881 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
> 43 CoreFoundation 0x00007fff902c9fbc __CFRunLoopDoSources0 + 556
> 44 CoreFoundation 0x00007fff902c94df __CFRunLoopRun + 927
> 45 CoreFoundation 0x00007fff902c8ed8 CFRunLoopRunSpecific + 296
> 46 java 0x000000010fbd23b0 CreateExecutionEnvironment + 871
> 47 java 0x000000010fbccb5c JLI_Launch + 1952
> 48 java 0x000000010fbd270d main + 101
> 49 java 0x000000010fbcc3b4 start + 52
> 50 ??? 0x0000000000000011 0x0 + 17
> )
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)