[ https://issues.apache.org/jira/browse/GROOVY-7832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Muneyuki Noguchi updated GROOVY-7832: ------------------------------------- Environment: OS X El Capitan (version 10.11.4), JDK 7u71, Google Japanese Input 2.17.2400.1 (was: OS X El Capitan (version 10.11.4), Google Japanese Input 2.17.2400.1 ) > 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 > 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)