Bug #2737
Bug #2677: fix drawing and functional differences between P2J GUI and 4GL GUI
Editor abends on double click
100%
History
#1 Updated by Hynek Cihlar almost 11 years ago
To reproduce, position the cursor so that a double click doesn't result in a word selection, for example in between the first row and the top editor edge and double click. Below is the exception stack trace.
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(String.java:646)
at com.goldencode.p2j.ui.client.gui.EditorGuiImpl.mouseClicked(EditorGuiImpl.java:1036)
at com.goldencode.p2j.ui.client.gui.EditorGuiImpl.mousePressed(EditorGuiImpl.java:794)
at com.goldencode.p2j.ui.client.gui.driver.MouseHandler.applyMouseEvent(MouseHandler.java:314)
at com.goldencode.p2j.ui.client.gui.driver.MouseHandler.handleMouseEvent(MouseHandler.java:237)
at com.goldencode.p2j.ui.client.gui.driver.AbstractGuiDriver.handleMouseEvent(AbstractGuiDriver.java:2046)
at com.goldencode.p2j.ui.client.TopLevelWindow.processEvent(TopLevelWindow.java:358)
at com.goldencode.p2j.ui.client.gui.WindowGuiImpl.processEvent(WindowGuiImpl.java:1249)
at com.goldencode.p2j.ui.chui.ThinClient.processProgressEvent(ThinClient.java:14928)
at com.goldencode.p2j.ui.chui.ThinClient.processEventsWorker(ThinClient.java:14540)
at com.goldencode.p2j.ui.chui.ThinClient.pop(ThinClient.java:13624)
at com.goldencode.p2j.ui.chui.ThinClient.eventBracket(ThinClient.java:13607)
at com.goldencode.p2j.ui.chui.ThinClient.eventDrawingBracket(ThinClient.java:13533)
at com.goldencode.p2j.ui.chui.ThinClient.applyWorker(ThinClient.java:13315)
at com.goldencode.p2j.ui.chui.ThinClient.waitForWorker(ThinClient.java:10736)
at com.goldencode.p2j.ui.chui.ThinClient.waitFor(ThinClient.java:10245)
at com.goldencode.p2j.ui.chui.ThinClient.waitFor(ThinClient.java:10199)
#2 Updated by Constantin Asofiei almost 11 years ago
Hynek, do you have a 4GL testcases and a branch/revision where you see this? I'm having trouble recreating it.
#3 Updated by Hynek Cihlar almost 11 years ago
- File Editor abends.png added
Constantin Asofiei wrote:
Hynek, do you have a 4GL testcases and a branch/revision where you see this? I'm having trouble recreating it.
I can reproduce it with trunk rev 10940 on uast/demo/demo_widgets.p. See the attached screen shot, the cursor point to the location where to double click.
The call stack when the exception is raised:
Thread [main] (Suspended (exception StringIndexOutOfBoundsException))
String.charAt(int) line: 646
EditorGuiImpl.mouseClicked(MouseEvent) line: 1036
EditorGuiImpl.mousePressed(MouseEvent) line: 794
MouseHandler.applyMouseEvent(Widget<GuiOutputManager>, MouseEvent) line: 313
MouseHandler.handleMouseEvent(int, MouseEvent) line: 236
SwingGuiDriver(AbstractGuiDriver<F>).handleMouseEvent(int, MouseEvent) line: 2051
WindowGuiImpl(TopLevelWindow<O>).processEvent(Event) line: 353
WindowGuiImpl.processEvent(Event) line: 1229
ThinClient.processProgressEvent(Event) line: 14862
ThinClient.processEventsWorker() line: 14479
ThinClient.pop() line: 13563
ThinClient.eventBracket(boolean, Runnable) line: 13546
ThinClient.eventDrawingBracket(Widget<?>, boolean, boolean, Runnable) line: 13472
ThinClient.applyWorker(Event) line: 13254
ThinClient.waitForWorker(EventList, int, int, ScreenBuffer, boolean, boolean, boolean, BlockingOperation) line: 10712
ThinClient.waitFor(EventList, int, int, ScreenBuffer, BlockingOperation, boolean) line: 10221
ThinClient.waitFor(EventList, int, int, ScreenBuffer) line: 10175
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 497
MethodInvoker.invoke(Object[]) line: 76
Dispatcher.processInbound(InboundRequest, boolean, NetResource) line: 703
Conversation.block() line: 319
Conversation.waitMessage(int) line: 257
Queue.transactImpl(Message, int) line: 1128
Queue.transact(Message, int) line: 585
DirectSession(BaseSession).transact(Message, int) line: 223
HighLevelObject.transact(RoutingKey, Object[]) line: 163
RemoteObject$RemoteAccess.invokeCore(Object, Method, Object[]) line: 1425
RemoteObject$RemoteAccess(InvocationStub).invoke(Object, Method, Object[]) line: 97
$Proxy4.standardEntry(ClientParameters) line: not available
ClientCore.start(BootstrapConfig, boolean, boolean) line: 277
ClientCore.start(BootstrapConfig, boolean) line: 100
ClientDriver.start(BootstrapConfig) line: 201
ClientDriver(CommonDriver).process(String[]) line: 398
ClientDriver.process(String[]) line: 1
ClientDriver.main(String[]) line: 267
#4 Updated by Constantin Asofiei almost 11 years ago
OK, I've managed to duplicate it in rev 1811r, too.
#5 Updated by Greg Shah almost 11 years ago
- Parent task set to #2677
- Start date deleted (
09/27/2015)
#6 Updated by Greg Shah almost 11 years ago
- Assignee set to Constantin Asofiei
#7 Updated by Constantin Asofiei almost 11 years ago
Fixed in #1811 (1811r rev 10967)
#8 Updated by Greg Shah almost 11 years ago
- Target version set to Milestone 12
- Status changed from New to Closed
#9 Updated by Greg Shah over 10 years ago
- % Done changed from 0 to 100
#10 Updated by Greg Shah over 9 years ago
- Target version changed from Milestone 12 to GUI Support for a Complex ADM2 App