It looks that is the bug in the GTK or Eclipse SWT library.
During window close process method org.eclipse.widgets.Display.removeWidget() 
calls native method org.eclipse.swt.internal.gtk.OS._g_object_get_qdata() which 
causes segmentation fault (it not cause Java exception due we are in native 
code).
Display.removeWidget() source code:
Widget removeWidget (long /*int*/ handle) {
        if (handle == 0) return null;
        lastWidget = null;
        Widget widget = null;
        int index = (int)/*64*/ OS.g_object_get_qdata (handle, 
SWT_OBJECT_INDEX) - 1;
        if (0 <= index && index < widgetTable.length) {
                widget = widgetTable [index];
                widgetTable [index] = null;
                indexTable [index] = freeSlot;
                freeSlot = index;
                OS.g_object_set_qdata (handle, SWT_OBJECT_INDEX, 0);
        }
        return widget;  
}

native method implementation:
JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1object_1get_1qdata)
        (JNIEnv *env, jclass that, jintLong arg0, jint arg1)
{
        jintLong rc = 0;
        OS_NATIVE_ENTER(env, that, _1g_1object_1get_1qdata_FUNC);
        rc = (jintLong)g_object_get_qdata((GObject *)arg0, (GQuark)arg1);
        OS_NATIVE_EXIT(env, that, _1g_1object_1get_1qdata_FUNC);
        return rc;
}

-- 
Java crashes during Eclipse Helios Start
https://bugs.launchpad.net/bugs/598371
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to