Sunday, February 08, 2009

Software errors

Nothing worse than having a bizarre error creep into someone else's software that you have to use, and it's too complex for you to fix...

take this example: google for "eclipse ioconsole updater error" and see what you get. I just moved to eclipse 3.4 yesterday, because it looks like I'm going to have to do some C code soon (feh!).

tweaked an older program today, to try out an enhancement (from a friend), and suddenly I've got the below error. This is something that has gone wrong in eclipse, has to do with your doing too much System.out typeout. Most of the complaints (man's favorite activity) you find in google on this subject suggest it's something about line length, but it's not. It's just total typeout.

Here's the actual error:

!ENTRY org.eclipse.ui 4 0 2009-02-08 17:43:10.270
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ArrayIndexOutOfBoundsException)
at org.eclipse.swt.SWT.error(SWT.java:3777)
at org.eclipse.swt.SWT.error(SWT.java:3695)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
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:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.eclipse.swt.custom.StyledTextRenderer.textChanging(StyledTextRenderer.java:1295)
at org.eclipse.swt.custom.StyledText.handleTextChanging(StyledText.java:5467)
at org.eclipse.swt.custom.StyledText$6.textChanging(StyledText.java:4850)
at org.eclipse.ui.internal.console.ConsoleDocumentAdapter.documentAboutToBeChanged(ConsoleDocumentAdapter.java:302)
at org.eclipse.jface.text.AbstractDocument.fireDocumentAboutToBeChanged(AbstractDocument.java:645)
at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1148)
at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176)
at org.eclipse.ui.internal.console.ConsoleDocument.replace(ConsoleDocument.java:82)
at org.eclipse.ui.internal.console.IOConsolePartitioner$QueueProcessingJob.runInUIThread(IOConsolePartitioner.java:533)
at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:94)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
... 22 more



So it's just an array OOB problem. It arrived in 3.3, and is still present in 3.4, which I just started using yesterday.

Looking at the reported msgs and responses, it seems to be a problem in more than one place in the eclipse source code.

Gad.

Looks like I'm going back to 3.2, I can't live with this. Will only do the C dev with 3.4. Not worth my time to try to fix it for them.

No comments: