costin 02/05/10 17:07:26 Modified: jk/native2/jni jk_jni_aprImpl.c Log: Similar warnings if the array is not pinned. Revision Changes Path 1.17 +20 -11 jakarta-tomcat-connectors/jk/native2/jni/jk_jni_aprImpl.c Index: jk_jni_aprImpl.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/jni/jk_jni_aprImpl.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- jk_jni_aprImpl.c 9 May 2002 23:47:32 -0000 1.16 +++ jk_jni_aprImpl.c 11 May 2002 00:07:26 -0000 1.17 @@ -436,18 +436,23 @@ JNIEXPORT jint JNICALL Java_org_apache_jk_apr_AprImpl_unRead(JNIEnv *jniEnv, jobject _jthis, jlong poolJ, jlong unSocketJ, - jbyteArray bufJ, jint from, jint cnt) + jbyteArray jbuf, jint from, jint cnt) { apr_pool_t *pool=(apr_pool_t *)(void *)(long)poolJ; jbyte *nbuf; int rd; - jboolean iscommit; + jboolean iscopy; - nbuf = (*jniEnv)->GetByteArrayElements(jniEnv, bufJ, &iscommit); + /* We can't use Critical with blocking ops. + */ + nbuf = (*jniEnv)->GetByteArrayElements(jniEnv, jbuf, &iscopy); if( ! nbuf ) { return -1; } + if( iscopy==JNI_TRUE ) + fprintf( stderr, "aprImpl.unRead() get java bytes iscopy %d\n", iscopy); + while( 1 ) { /* Read */ rd=read( (int)unSocketJ, nbuf + from, cnt ); @@ -458,29 +463,29 @@ } else { fprintf(stderr, "Error reading %d %d %s\n", (int)unSocketJ, errno, strerror(errno)); - (*jniEnv)->ReleaseByteArrayElements(jniEnv, bufJ, nbuf, 0); + (*jniEnv)->ReleaseByteArrayElements(jniEnv, jbuf, nbuf, 0); return -1; } } /* fprintf(stderr, "Read %d from %d\n", */ /* rd, unSocketJ); */ - (*jniEnv)->ReleaseByteArrayElements(jniEnv, bufJ, nbuf, 0); + (*jniEnv)->ReleaseByteArrayElements(jniEnv, jbuf, nbuf, 0); return (jint)rd; } } JNIEXPORT jint JNICALL Java_org_apache_jk_apr_AprImpl_unWrite(JNIEnv *jniEnv, jobject _jthis, - jlong poolJ, jlong unSocketJ, jbyteArray bufJ, jint from, jint cnt) + jlong poolJ, jlong unSocketJ, jbyteArray jbuf, jint from, jint cnt) { apr_status_t status; apr_pool_t *pool=(apr_pool_t *)(void *)(long)poolJ; jbyte *nbuf; int rd; - jboolean iscommit; + jboolean iscopy; - nbuf = (*jniEnv)->GetByteArrayElements(jniEnv, bufJ, &iscommit); + nbuf = (*jniEnv)->GetByteArrayElements(jniEnv, jbuf, &iscopy); if( ! nbuf ) { return -1; } @@ -488,7 +493,7 @@ /* write */ write( (int) unSocketJ, nbuf + from, cnt ); - (*jniEnv)->ReleaseByteArrayElements(jniEnv, bufJ, nbuf, 0); + (*jniEnv)->ReleaseByteArrayElements(jniEnv, jbuf, nbuf, 0); return (jint)rd; } @@ -707,7 +712,7 @@ jk_endpoint_t *ep = compCtx->object; jbyte *nbuf; - jboolean iscommit; + jboolean iscopy; int cnt=0; jint rc = -1; @@ -715,7 +720,11 @@ /*env->l->jkLog(env, env->l, JK_LOG_INFO,"jkInvoke()\n"); */ - nbuf = (*jniEnv)->GetByteArrayElements(jniEnv, data, &iscommit); + nbuf = (*jniEnv)->GetByteArrayElements(jniEnv, data, &iscopy); + + if( iscopy ) + env->l->jkLog(env, env->l, JK_LOG_INFO, + "aprImpl.jkInvoke() get java bytes iscopy %d\n", iscopy); if(nbuf==NULL) { env->l->jkLog(env, env->l, JK_LOG_ERROR,
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>