hgomez      2002/09/30 09:00:04

  Modified:    jk/native/common jk_jni_worker.c
  Log:
  More update to JNI support for iSeries.
  OS400 compiler is more strict with pointers and there is many assumption
  here (like gcc like this pointer -> int -> jlong) which make me think that
  the code here should be seriously studied (in jk2 ;)
  
  Revision  Changes    Path
  1.23      +28 -14    jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c
  
  Index: jk_jni_worker.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_jni_worker.c,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- jk_jni_worker.c   30 Sep 2002 15:40:17 -0000      1.22
  +++ jk_jni_worker.c   30 Sep 2002 16:00:04 -0000      1.23
  @@ -107,7 +107,11 @@
   
   jint (JNICALL *jni_get_default_java_vm_init_args)(void *) = NULL;
   jint (JNICALL *jni_create_java_vm)(JavaVM **, JNIEnv **, void *) = NULL;
  +#ifdef AS400
  +jint (JNICALL *jni_get_created_java_vms)(JavaVM **, long, long *) = NULL;
  +#else
   jint (JNICALL *jni_get_created_java_vms)(JavaVM **, int, int *) = NULL;
  +#endif
   
   #define TC33_JAVA_BRIDGE_CLASS_NAME ("org/apache/tomcat/modules/server/JNIEndpoint")
   #define TC32_JAVA_BRIDGE_CLASS_NAME ("org/apache/tomcat/service/JNIEndpoint")
  @@ -337,8 +341,14 @@
                                       p->worker->jk_service_method,
       /* [V] For some reason gcc likes this pointer -> int -> jlong conversion, */
       /*     but not the direct pointer -> jlong conversion. I hope it's okay.  */
  +#ifdef AS400
  +                                    s,
  +                                    l
  +#else
                                       (jlong)(int)s,
  -                                    (jlong)(int)l);
  +                                    (jlong)(int)l
  +#endif
  +);
   
       /* [V] Righ now JNIEndpoint::service() only returns 1 or 0 */
       if(rc) {
  @@ -533,9 +543,9 @@
   
       /* if(env = attach_to_jvm(p,l)) { */
       if((env = p->tmp_env)) {
  -        jstring cmd_line = NULL;
  -        jstring stdout_name = NULL;
  -        jstring stderr_name = NULL;
  +        jstring cmd_line = (jstring)NULL;
  +        jstring stdout_name = (jstring)NULL;
  +        jstring stderr_name = (jstring)NULL;
           jint rc = 0;
   
                /* AS400/BS2000 need EBCDIC to ASCII conversion for JNI */
  @@ -699,11 +709,11 @@
       private_data->was_initialized       = JK_FALSE;
       private_data->jvm                   = NULL;
       private_data->tmp_env               = NULL;
  -    private_data->jk_java_bridge_object = NULL;
  -    private_data->jk_java_bridge_class  = NULL;
  -    private_data->jk_startup_method     = NULL;
  -    private_data->jk_service_method     = NULL;
  -    private_data->jk_shutdown_method    = NULL;
  +    private_data->jk_java_bridge_object = (jobject)NULL;
  +    private_data->jk_java_bridge_class  = (jclass)NULL;
  +    private_data->jk_startup_method     = (jmethodID)NULL;
  +    private_data->jk_service_method     = (jmethodID)NULL;
  +    private_data->jk_shutdown_method    = (jmethodID)NULL;
       private_data->tomcat_cmd_line       = NULL;
       private_data->tomcat_classpath      = NULL;
       private_data->bridge_type                = TC33_BRIDGE_TYPE;
  @@ -1045,7 +1055,11 @@
       err=jni_create_java_vm(&(p->jvm), &penv, &vm_args);
   
       if (JNI_EEXIST == err) {
  -        int vmCount;
  +#ifdef AS400
  +        long vmCount;
  +#else
  +        int  vmCount;
  +#endif
          jk_log(l, JK_LOG_DEBUG, "JVM alread instantiated."
                 "Trying to attach instead.\n");
   
  @@ -1118,7 +1132,7 @@
                                                   strdup_ascii(&p->p, "()V"));   /* 
method sign */
   
       if(!constructor_method_id) {
  -         p->jk_java_bridge_class = NULL;
  +         p->jk_java_bridge_class = (jclass)NULL;
            jk_log(l, JK_LOG_EMERG, 
                  "Can't find constructor\n");
            return JK_FALSE;
  @@ -1128,7 +1142,7 @@
                                                    p->jk_java_bridge_class,
                                                    constructor_method_id);
       if(! p->jk_java_bridge_object) {
  -         p->jk_java_bridge_class = NULL;
  +         p->jk_java_bridge_class = (jclass)NULL;
            jk_log(l, JK_LOG_EMERG, 
                  "Can't create new bridge object\n");
            return JK_FALSE;
  @@ -1137,8 +1151,8 @@
       p->jk_java_bridge_object = (jobject)(*env)->NewGlobalRef(env, 
p->jk_java_bridge_object);
       if(! p->jk_java_bridge_object) {
            jk_log(l, JK_LOG_EMERG, "Can't create global ref to bridge object\n");
  -         p->jk_java_bridge_class = NULL;
  -        p->jk_java_bridge_object = NULL;
  +         p->jk_java_bridge_class = (jclass)NULL;
  +        p->jk_java_bridge_object = (jobject)NULL;
            return JK_FALSE;
       }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to