anjlab / eclipse-tapestry5-plugin

Eclipse Plugin for Tapestry5
Apache License 2.0
21 stars 9 forks source link

java.lang.StringIndexOutOfBoundsException on some java classes #12

Closed micw closed 10 years ago

micw commented 10 years ago

It happens for some java classes, that the eclipse error log shows an exception (see below). In this case most editing funtions (including autocomplete) stop to work.

The exception is: java.lang.StringIndexOutOfBoundsException: String index out of range: -5 at java.lang.String.substring(String.java:1875) at com.anjlab.eclipse.tapestry5.LocalTapestryContext.findTapestryFiles(LocalTapestryContext.java:215) at com.anjlab.eclipse.tapestry5.LocalTapestryContext.findTapestryFiles(LocalTapestryContext.java:91) at com.anjlab.eclipse.tapestry5.TapestryContext.findComplementFile(TapestryContext.java:495) at com.anjlab.eclipse.tapestry5.TapestryContext.addWithComplementFile(TapestryContext.java:314) at com.anjlab.eclipse.tapestry5.TapestryContext.initFromJavaOrTemplateFile(TapestryContext.java:306) at com.anjlab.eclipse.tapestry5.TapestryContext.initFromFile(TapestryContext.java:98) at com.anjlab.eclipse.tapestry5.LocalTapestryContext.(LocalTapestryContext.java:29) at com.anjlab.eclipse.tapestry5.TapestryUtils.createTapestryContext(TapestryUtils.java:203) at com.anjlab.eclipse.tapestry5.TapestryUtils.getTapestryFileFromPage(TapestryUtils.java:365) at com.anjlab.eclipse.tapestry5.watchdog.TapestryContextWatchdog$3.selectionChanged(TapestryContextWatchdog.java:156) at org.eclipse.ui.internal.e4.compatibility.SelectionService.notifyListeners(SelectionService.java:154) at org.eclipse.ui.internal.e4.compatibility.SelectionService.updateSelection(SelectionService.java:119) at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:191) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$2.run(PartServiceImpl.java:183) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:181) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:600) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:544) at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:104) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$1.handleEvent(ContributedPartRenderer.java:59) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1416) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1401) at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1675) at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:3004) at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:2940) at org.eclipse.swt.widgets.Composite.gtk_button_press_event(Composite.java:706) at org.eclipse.swt.widgets.Tree.gtk_button_press_event(Tree.java:1843) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2078) at org.eclipse.swt.widgets.Control.windowProc(Control.java:5467) at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:3557) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4569) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8742) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1243) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2288) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3361) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) at org.eclipse.equinox.launcher.Main.run(Main.java:1450) at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

micw commented 10 years ago

The line numbers of the stacktrace above applies to this version: https://github.com/anjlab/eclipse-tapestry5-plugin/blob/fc57b5078ccf2e06eadd54dafe1ffb3965e3f1f7/com.anjlab.eclipse.tapestry5/src/com/anjlab/eclipse/tapestry5/LocalTapestryContext.java

The exception occued on a class in src/test/java which is not a tapestry page. There is no .tml with the same name!

It seems to happen for every new class I create in my project!

The problem disappeared after I closed the TapestryContext view and restarted eclipse. It occurs again as soon as I add the TapestryContext view.

dmitrygusev commented 10 years ago

@micw Can you try this with version 2.2.4?

micw commented 10 years ago

@dmitrygusev ATM I cannot reproduce it with 2.2.3 - so i cannot say if it is fixed with 2.2.4. I have upgraded and let you know if it happens again. It used to happen about once per week - so if it is still pressent, there's a good chanche to hit the bug ;-)

micw commented 10 years ago

The issue stopped to occur. Seems to be fixed.