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

JNI HotSpot Virtual Error : EXCEPTION_ACCESS_VIOLATION;Error ID : 4F530E4350

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 1.4.0
    • hotspot
    • x86
    • windows_2000



      Name: ddT132432 Date: 09/26/2001


      java version "1.3.1_01"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01)
      Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)



      Glue.java
      =========

      import java.io .*;
      public class Glue
      {
      static int si;
      static
      {
      // load Glue.dll containing Glue.nativeWidthInBits
      //Given absolute path since, it is not picking up the .dll if i give only "Glue"
      System.load("c:/java/jdk1.3.1/include/win32/Glue/debug/Glue.dll");
      }
      Glue(){
      System.out.println("Java Class Initialized...");
      }
      public static native int widthInBits(int n);

      public void testMethod(){
      System.out.println("In side testMethod....");
      }
      public static void main(String args[]){

      Glue g=new Glue();
      si=101;
      System.out.println("inside java ,si ="+si);
      int r=g.widthInBits(10);
      System.out.println("inside java ,result is ;"+r);
      }
      }


      Glue.c
      ======

      #include "Glue.h"
      static jclass cls = 0;
      static jmethodID mid =0;
      static jfieldID fid=0;
      jint si;

      JNIEXPORT jint JNICALL Java_Glue_widthInBits (JNIEnv *env, jobject obj, jint n)
      {
      jclass cls1 = (*env)->GetObjectClass(env, obj);
         if(cls1 ==0 ){
      printf("In Side C, cls is 0 ....");
      }
        
        fid = (*env)->GetStaticFieldID(env, cls, "si", "I");
        si = (*env)->GetStaticIntField(env, cls, fid);

      printf("In Side C si is....%d\n",si);

      mid = (*env)->GetMethodID(env, cls, "testMethod", "()V");
      if (mid == 0) {
      (*env)->DeleteLocalRef(env, cls);
      printf("In Side C, mid is 0 ....");
           return 0;
      }
          (*env)->CallVoidMethod(env,obj,mid);
      printf("In Side C ....");
      return n*2;
      }
      (Review ID: 132650)
      ======================================================================

            collins Gary Collins (Inactive)
            ddressersunw Daniel Dresser (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: