Project: SWT
Bug 326311 Bus error in org.eclipse.swt.internal.cocoa.OS.object_getInstanceVariable (called from Tree.expandItem)
Reported: 2010-09-27 10:43:58 | Status: resolved fixed

Happened in a recent 4.1 stream build. I had a bunch of incoming changes in the sync view (displayed as change sets), selected them all and picked "Update". While the tree in the sync view changed (the change sets disappeared incrementally), I tried to expand one of the items, hoping to see what the change set contained before it disappeared. The crash may have happened because the item to expand didn't exist anymore when the event was processed. I'm going to attach the thread dump. Here are the first few lines from it: Process: eclipse [218] Path: /Users/bokowski/Desktop/4.1M2a/Eclipse.app/Contents/MacOS/eclipse Identifier: org.eclipse.eclipse Version: 3.6 (3.6) Code Type: X86-64 (Native) Parent Process: launchd [70] Interval Since Last Report: 22944436 sec Crashes Since Last Report: 5 Per-App Interval Since Last Report: 2683260 sec Per-App Crashes Since Last Report: 1 Date/Time: 2010-09-27 10:40:39.631 -0400 OS Version: Mac OS X 10.5.8 (9L31a) Report Version: 6 Anonymous UUID: 16031B24-5279-4D25-9BB4-90858BD86F29 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000000770000c577 Crashed Thread: 0 Application Specific Information: Java information: Exception type: Bus Error (0xa) at pc=7fff81d8ff78 Java VM: Java HotSpot(TM) 64-Bit Server VM (16.3-b01-279 mixed mode macosx-amd64) Current thread (112801000): JavaThread "main" [_thread_in_native, id=1885091584, stack(7fff5f400000,7fff5fc00000)] Stack: [7fff5f400000,7fff5fc00000] Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J org.eclipse.swt.internal.cocoa.OS.object_getInstanceVariable(J[B[J)J J org.eclipse.swt.widgets.Display.getWidget(J)Lorg/eclipse/swt/widgets/Widget; j org.eclipse.swt.widgets.Tree.expandItem_expandChildren(JJJZ)V+6 j org.eclipse.swt.widgets.Display.windowProc(JJJJ)J+384 v ~StubRoutines::call_stub J org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Lorg/eclipse/swt/internal/cocoa/objc_super;JJ)J j org.eclipse.swt.widgets.Widget.callSuper(JJJ)V+32 j org.eclipse.swt.widgets.Widget.mouseDownSuper(JJJ)V+5 j org.eclipse.swt.widgets.Tree.mouseDownSuper(JJJ)V+200 j org.eclipse.swt.widgets.Widget.mouseDown(JJJ)V+5 j org.eclipse.swt.widgets.Control.mouseDown(JJJ)V+42 j org.eclipse.swt.widgets.Tree.mouseDown(JJJ)V+192 J org.eclipse.swt.widgets.Display.windowProc(JJJ)J v ~StubRoutines::call_stub J org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Lorg/eclipse/swt/internal/cocoa/objc_super;JJ)J j org.eclipse.swt.widgets.Widget.callSuper(JJJ)V+32 j org.eclipse.swt.widgets.Widget.windowSendEvent(JJJ)V+5 j org.eclipse.swt.widgets.Shell.windowSendEvent(JJJ)V+482 J org.eclipse.swt.widgets.Display.windowProc(JJJ)J v ~StubRoutines::call_stub J org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Lorg/eclipse/swt/internal/cocoa/objc_super;JJ)J j org.eclipse.swt.widgets.Display.applicationSendEvent(JJJ)V+383 j org.eclipse.swt.widgets.Display.applicationProc(JJJ)J+67 v ~StubRoutines::call_stub J org.eclipse.swt.internal.cocoa.OS.objc_msgSend(JJJ)J J org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run()V j org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12 j org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(Lorg/eclipse/e4/ui/model/application/MApplicationElement;Lorg/eclipse/e4/core/contexts/IEclipseContext;)Ljava/lang/Object;+19 j org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(Lorg/eclipse/e4/ui/model/application/MApplicationElement;)V+162 j org.eclipse.ui.internal.Workbench$3.run()V+124 j org.eclipse.core.databinding.observable.Realm.runWithDefault(Lorg/eclipse/core/databinding/observable/Realm;Ljava/lang/Runnable;)V+12 j org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+18 j org.eclipse.ui.PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse/ui/application/WorkbenchAdvisor;)I+2 j org.eclipse.ui.internal.ide.application.IDEApplication.start(Lorg/eclipse/equinox/app/IApplicationContext;)Ljava/lang/Object;+99 j org.eclipse.equinox.internal.app.EclipseAppHandle.run(Ljava/lang/Object;)Ljava/lang/Object;+135 j org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ljava/lang/Object;)Ljava/lang/Object;+103 j org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Ljava/lang/Object;)Ljava/lang/Object;+29 j org.eclipse.core.runtime.adaptor.EclipseStarter.run(Ljava/lang/Object;)Ljava/lang/Object;+137 j org.eclipse.core.runtime.adaptor.EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Object;+183 v ~StubRoutines::call_stub j sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0 j sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87 j sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6 j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161 j org.eclipse.equinox.launcher.Main.invokeFramework([Ljava/lang/String;[Ljava/net/URL;)V+211 j org.eclipse.equinox.launcher.Main.basicRun([Ljava/lang/String;)V+126 j org.eclipse.equinox.launcher.Main.run([Ljava/lang/String;)I+4 v ~StubRoutines::call_stub

Files changed in fix:
bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Tree.java