jogl with thread -> An unexpected error

Hi,
I am trying to create a simple skybox which I intend to use as a 3D Album. For this reason I also want a very simple slide show but when I tried to accomplish that goal I got the error at the end of the post.
glRenderer.display(canvas); causes the error

  
 private void jButton2MouseClicked(MouseEvent evt) {                                      
        if (jButton2.getText().equals("Start Slide Show")) {
            glRenderer.setSLIDE_SHOW_CNTRL(true);
            noStopRequested = true;
            Runnable r = new Runnable() {

                public void run() {
                    try {
                        runWork();
                    } catch (Exception x) {
                        x.printStackTrace();
                    }
                }
            };
            internalThread = new Thread(r, "SlideShow");
            internalThread.start();
        } else {
            Thread.currentThread().stop();
            glRenderer.setSLIDE_SHOW_CNTRL(false);
            jButton2.setText("Start Slide Show");
        }
    }                                     

    private void runWork() {
        while (noStopRequested) {
            try {
                Thread.sleep(100); // 10 frames per second
                glRenderer.display(canvas);
                repaint();
            } catch (InterruptedException x) {
                Thread.currentThread().interrupt();
            }
        }
    }

#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x8f97a596, pid=12488, tid=2383408016
#
# Java VM: Java HotSpot(TM) Server VM (11.0-b15 mixed mode linux-x86)
# Problematic frame:
# C  [libGL.so.1+0x99596]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x08cbb000):  JavaThread "SlideShow" [_thread_in_native, id=12505, stack(0x8e0ae000,0x8e0ff000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000270

Registers:
EAX=0x00000000, EBX=0x8eb67588, ECX=0x08cbb114, EDX=0x91b48fc0
ESP=0x8e0fdc6c, EBP=0x8e0fdc78, ESI=0x91a9a5a4, EDI=0x08cbb000
EIP=0x8f97a596, CR2=0x00000270, EFLAGS=0x00210286

Top of Stack: (sp=0x8e0fdc6c)
0x8e0fdc6c:   8eadab77 00004100 91a9a5a8 8e0fdcb0
0x8e0fdc7c:   b4d284aa 08cbb114 8e0fdcc4 00004100
0x8e0fdc8c:   00000000 8e0fdc90 00000000 8e0fdcc4
0x8e0fdc9c:   91b48fc0 00000000 91a9a5a8 00000000
0x8e0fdcac:   8e0fdcc0 8e0fdce8 b4d21569 00000000
0x8e0fdcbc:   b4d26439 00004100 957fccf8 8e0fdcc8
0x8e0fdccc:   9195718f 8e0fdcf8 91957ec0 00000000
0x8e0fdcdc:   91957258 8e0fdcc0 8e0fdcf4 8e0fdd1c 

Instructions: (pc=0x8f97a596)
0x8f97a586:   cc cc cc cc cc cc cc cc cc cc 65 a1 c0 ff ff ff
0x8f97a596:   ff a0 70 02 00 00 cc cc cc cc cc cc cc cc cc cc 

Stack: [0x8e0ae000,0x8e0ff000],  sp=0x8e0fdc6c,  free space=319k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libGL.so.1+0x99596]
j  com.sun.opengl.impl.GLImpl.glClear(I)V+0
j  org.yourorghere.GLRenderer.display(Ljavax/media/opengl/GLAutoDrawable;)V+11
j  org.yourorghere.SimpleGLCanvas.runWork()V+21
j  org.yourorghere.SimpleGLCanvas.access$400(Lorg/yourorghere/SimpleGLCanvas;)V+1
j  org.yourorghere.SimpleGLCanvas$5.run()V+4
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub
V  [libjvm.so+0x375a7d]
V  [libjvm.so+0x5055d8]
V  [libjvm.so+0x375390]
V  [libjvm.so+0x37541d]
V  [libjvm.so+0x3e5a85]
V  [libjvm.so+0x5cdbfd]
V  [libjvm.so+0x506709]
C  [libpthread.so.0+0x650f]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.opengl.impl.GLImpl.glClear(I)V+0
j  org.yourorghere.GLRenderer.display(Ljavax/media/opengl/GLAutoDrawable;)V+11
j  org.yourorghere.SimpleGLCanvas.runWork()V+21
j  org.yourorghere.SimpleGLCanvas.access$400(Lorg/yourorghere/SimpleGLCanvas;)V+1
j  org.yourorghere.SimpleGLCanvas$5.run()V+4
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
=>0x08cbb000 JavaThread "SlideShow" [_thread_in_native, id=12505, stack(0x8e0ae000,0x8e0ff000)]
  0x083ddc00 JavaThread "DestroyJavaVM" [_thread_blocked, id=12489, stack(0xb7da8000,0xb7df9000)]
  0x08514c00 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=12504, stack(0x90518000,0x90569000)]
  0x086e6c00 JavaThread "AWT-Shutdown" [_thread_blocked, id=12503, stack(0x905de000,0x9062f000)]
  0x086e3c00 JavaThread "AWT-XAWT" daemon [_thread_in_native, id=12502, stack(0x9062f000,0x90680000)]
  0x085da400 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=12500, stack(0x906b3000,0x90704000)]
  0x0847e000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=12498, stack(0x90a66000,0x90ab7000)]
  0x0847c000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=12497, stack(0x90ab7000,0x90b38000)]
  0x08479400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=12496, stack(0x90b38000,0x90bb9000)]
  0x08477c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=12495, stack(0x90bb9000,0x90c0a000)]
  0x08466c00 JavaThread "Finalizer" daemon [_thread_blocked, id=12494, stack(0x90c49000,0x90c9a000)]
  0x08462400 JavaThread "Reference Handler" daemon [_thread_blocked, id=12493, stack(0x90c9a000,0x90ceb000)]

Other Threads:
  0x0845ec00 VMThread [stack: 0x90ceb000,0x90d6c000] [id=12492]
  0x0847fc00 WatcherThread [stack: 0x909e5000,0x90a66000] [id=12499]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 40832K, used 28063K [0xb1420000, 0xb45a0000, 0xb4c50000)
  eden space 40768K, 68% used [0xb1420000,0xb2f83c80,0xb3bf0000)
  from space 64K, 25% used [0xb4590000,0xb4594000,0xb45a0000)
  to   space 1472K, 0% used [0xb42c0000,0xb42c0000,0xb4430000)
 PSOldGen        total 28800K, used 10954K [0x95250000, 0x96e70000, 0xb1420000)
  object space 28800K, 38% used [0x95250000,0x95d02b50,0x96e70000)
 PSPermGen       total 25856K, used 12909K [0x91250000, 0x92b90000, 0x95250000)
  object space 25856K, 49% used [0x91250000,0x91eeb7f8,0x92b90000)

Dynamic libraries:
06000000-06676000 r-xp 00000000 08:01 2187499    /usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/server/libjvm.so
06676000-066bb000 rwxp 00675000 08:01 2187499    /usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/server/libjvm.so
066bb000-06add000 rwxp 066bb000 00:00 0 
08048000-08052000 r-xp 00000000 08:01 2187480    /usr/lib/jvm/java-6-sun-1.6.0.10/jre/bin/java
08052000-08053000 rwxp 00009000 08:01 2187480    /usr/lib/jvm/java-6-sun-1.6.0.10/jre/bin/java
...

You are only allowed to use a GL object on one thread.

Try reading the Multithreading Issues section at Jogl - User’s Guide.

Look at Gears.java

Thanks.