Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4047636

core dump in constructor of sun.awt.motif.EmbeddedFrame

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 1.1.1
    • client-libs
    • None
    • sparc
    • solaris_2.5

      The attached example crashes, with the following printout (with stack trace in
      the stack.trace attachment):

      Script started on Fri Apr 25 10:09:02 1997
      <noam:/home/jyl/ws/java> minimal
      usage: minimal windowID width heigth
      <noam:/home/jyl/ws/java> minimal 1 2 3
      got minimal 1 2 3
      going to call constructor, get ready for crash...
      SIGSEGV 11* segmentation violation
          si_signo [11]: SIGSEGV 11* segmentation violation
          si_errno [0]: Error 0
          si_code [1]: SEGV_ACCERR [addr: 0x84]

      stackbase=EFFFF908, stackpointer=EFFFF6B0

      Full thread dump:
          "Finalizer thread" (TID:0xee700220, sys_thread_t:0xee3f1de0, state:R) prio=1
          "Async Garbage Collector" (TID:0xee7001d8, sys_thread_t:0xef441de0, state:R) prio=1
          "Idle thread" (TID:0xee700190, sys_thread_t:0xef471de0, state:R) prio=0
          "Clock" (TID:0xee7000d0, sys_thread_t:0xef531de0, state:CW) prio=12
          "main" (TID:0xee7000a8, sys_thread_t:0x41290, state:R) prio=5 *current thread*
      sun.awt.motif.MComponentPeer.<init>(MComponentPeer.java:98)
      sun.awt.motif.MCanvasPeer.<init>(MCanvasPeer.java:39)
      sun.awt.motif.MPanelPeer.<init>(MPanelPeer.java:33)
      sun.awt.motif.MFramePeer.<init>(MFramePeer.java:47)
      sun.awt.motif.MEmbeddedFramePeer.<init>(MEmbeddedFramePeer.java:29)
      sun.awt.motif.MEmbeddedFrame.<init>(MEmbeddedFrame.java:32)
      EmbeddedFrame.<init>(EmbeddedFrame.java:6)
      Monitor Cache Dump:
          <unknown key> (0x0): owner "main" (0x41290, 1 entry)
      Registered Monitor Dump:
          Thread queue lock: <unowned>
          Name and type hash table lock: <unowned>
          String intern lock: <unowned>
          JNI pinning lock: <unowned>
          JNI global reference lock: <unowned>
          BinClass lock: <unowned>
          Class loading lock: <unowned>
          Java stack lock: <unowned>
          Code rewrite lock: <unowned>
          Heap lock: <unowned>
          Has finalization queue lock: <unowned>
          Finalize me queue lock: <unowned>
          Monitor IO lock: <unowned>
          Child death monitor: <unowned>
          Event monitor: <unowned>
          I/O monitor: <unowned>
          Alarm monitor: <unowned>
      Waiting to be notified:
      "Clock"
          Sbrk lock: <unowned>
          Monitor cache expansion lock: <unowned>
          Monitor registry: owner "main" (0x41290, 1 entry)
      Thread Alarm Q:
      Abort
      <noam:/home/jyl/ws/java> exit
      <noam:/home/jyl/ws/java>
      script done on Fri Apr 25 10:09:12 1997

      ---- minimal.c -----------------------------------------------------------------

      #include <jni.h>

      int
      main(argc, argv)
          int argc;
          char **argv;
      {
          int w, h, i;
          JNIEnv *env;
          JavaVM *jvm;
          JDK1_1InitArgs vm_args;
          jint res;
          jclass cls;
          jmethodID mid;
          jobject obj;

          /*
           * Check that sufficient args and the right kinds are supplied:
           */

          if (argc != 4) {
              fprintf(stderr, "usage: %s windowID width heigth\n", argv[0]);
              exit(1);
          }

          i = atoi(argv[1]);
          w = atoi(argv[2]);
          h = atoi(argv[3]);

          fprintf(stderr, "got %s %d %d %d\n", argv[0], i, w, h);
          
          /*
           * Get default args for the JVM and create JVM.
           */
          
          JNI_GetDefaultJavaVMInitArgs(&vm_args);

          res = JNI_CreateJavaVM(&jvm,&env,&vm_args);
          if (res < 0) {
              fprintf(stderr, "Can't create Java VM\n");
              exit(1);
          }

          /*
           * Find *my* EmbeddedFrame, defined in EmbeddedFrame.java.
           */
          
          cls = (*env)->FindClass(env, "EmbeddedFrame");
          if (cls == 0) {
              fprintf(stderr, "Can't find class EmbeddedFrame\n");
              exit(1);
          }

          /*
           * Get the method ID for the constructor.
           */

          mid = (*env)->GetMethodID(env, cls, "<init>", "(III)V");
          if (mid == NULL) {
              fprintf(stderr, "Can't find constructor for EmbeddedFrame\n");
              exit(1);
          }

          /*
           * Call the constructor.
           */

          fprintf(stderr, "going to call constructor, get ready for crash...\n");
          obj = (*env)->NewObject(env, cls, mid, i, w, h);
          if (obj == 0) {
              fprintf(stderr, "Can't construct new EmbeddedFrame\n");
              exit(1);
          }
      }

      ----- EmbeddedFrame.java -----------------------------------------------------
      import java.awt.*;
      import sun.awt.*;

      public class EmbeddedFrame extends sun.awt.motif.MEmbeddedFrame {
          public EmbeddedFrame(int winID, int width, int height) {
      super(winID);

      // Set the window size and show everything:

      this.setSize(width,height);
      this.show();
          }
      }

      ----- Makefile --------------------------------------------------------------
      JDK1_1_1 = /home/jyl/jdk1.1.1

      minimal:
      javac EmbeddedFrame.java
      cc -c -I$(JDK1_1_1)/include -I$(JDK1_1_1)/include/solaris -I$(JDK1_1_1)/include/green_threads/include minimal.c
      cc -o minimal minimal.o -L$(JDK1_1_1)/lib/sparc/green_threads -ljava

      clean:
      rm -f *.a *.o *.so core errs *~ \#* TAGS *.E a.out errors
         

            gsaab Georges Saab
            duke J. Duke
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: