costin 02/05/23 21:30:07
Modified: jk/native2/jni jk_jni_aprImpl.c
Log:
Remove the mutex code ( move to a separate jk component ).
Add few extra checks.
Revision Changes Path
1.23 +21 -85 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.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- jk_jni_aprImpl.c 23 May 2002 23:45:07 -0000 1.22
+++ jk_jni_aprImpl.c 24 May 2002 04:30:07 -0000 1.23
@@ -93,8 +93,6 @@
#include "signal.h"
-#include "apr_proc_mutex.h"
-
static apr_pool_t *jniAprPool;
static jk_workerEnv_t *workerEnv;
static int jniDebug=0;
@@ -182,6 +180,9 @@
static void jk2_SigAction(int sig) {
fprintf(stderr, "Signal %d\n", sig );
+
+ /* Make a callback using the jni channel */
+
signal( sig, jk2_SigAction );
}
#endif
@@ -193,13 +194,12 @@
*/
JNIEXPORT jint JNICALL
-Java_org_apache_jk_apr_AprImpl_signal(JNIEnv *jniEnv, jobject _jthis, jint bitMask,
- jobject func)
+Java_org_apache_jk_apr_AprImpl_signal(JNIEnv *jniEnv, jobject _jthis, jint signalNr
)
{
#ifdef HAVE_SIGNALS
memset(& jkAction, 0, sizeof(jkAction));
jkAction.sa_handler=jk2_SigAction;
- sigaction((int)bitMask, &jkAction, (void *) NULL);
+ sigaction((int)signalNr, &jkAction, (void *) NULL);
#endif
return 0;
}
@@ -214,21 +214,14 @@
/* -------------------- User related functions -------------------- */
-JNIEXPORT jlong JNICALL
-Java_org_apache_jk_apr_AprImpl_userId(JNIEnv *jniEnv, jobject _jthis)
-{
-
- return 0;
-}
-
-JNIEXPORT jlong JNICALL
+JNIEXPORT jint JNICALL
Java_org_apache_jk_apr_AprImpl_getPid(JNIEnv *jniEnv, jobject _jthis)
{
- return (jlong) getpid();
+ return (jint) getpid();
}
-JNIEXPORT jlong JNICALL
+JNIEXPORT jint JNICALL
Java_org_apache_jk_apr_AprImpl_setUser(JNIEnv *jniEnv, jobject _jthis,
jstring userJ, jstring groupJ)
{
@@ -259,78 +252,11 @@
#endif
- return rc;
+ return (jint)rc;
}
/* -------------------- interprocess mutexes -------------------- */
-JNIEXPORT jlong JNICALL
-Java_org_apache_jk_apr_AprImpl_mutexCreate(JNIEnv *jniEnv, jobject _jthis, jlong
poolP,
- jstring fileJ,
- jint mechJ )
-{
- apr_proc_mutex_t *mutex;
- apr_lockmech_e mech=(apr_lockmech_e)mechJ;
- apr_pool_t *pool=(apr_pool_t *)(void *)(long)poolP;
- apr_status_t st;
- char *fname=(char *)(*jniEnv)->GetStringUTFChars(jniEnv, fileJ, 0);
-
- st=apr_proc_mutex_create( &mutex, fname, mech, pool );
-
- (*jniEnv)->ReleaseStringUTFChars(jniEnv, fileJ, fname);
-
- return (jlong)(long)(void *)mutex;
-}
-
-JNIEXPORT jlong JNICALL
-Java_org_apache_jk_apr_AprImpl_mutexLock(JNIEnv *jniEnv, jobject _jthis, jlong
poolP,
- jlong mutexP )
-{
- apr_proc_mutex_t *mutex=(apr_proc_mutex_t *)(void *)(long)mutexP;
- apr_status_t st;
-
- st=apr_proc_mutex_lock( mutex );
-
- return (jlong)(long)st;
-}
-
-JNIEXPORT jlong JNICALL
-Java_org_apache_jk_apr_AprImpl_mutexTryLock(JNIEnv *jniEnv, jobject _jthis, jlong
poolP,
- jlong mutexP )
-{
- apr_proc_mutex_t *mutex=(apr_proc_mutex_t *)(void *)(long)mutexP;
- apr_status_t st;
-
- st=apr_proc_mutex_trylock( mutex );
-
- return (jlong)(long)st;
-}
-
-JNIEXPORT jlong JNICALL
-Java_org_apache_jk_apr_AprImpl_mutexUnLock(JNIEnv *jniEnv, jobject _jthis, jlong
poolP,
- jlong mutexP )
-{
- apr_proc_mutex_t *mutex=(apr_proc_mutex_t *)(void *)(long)mutexP;
- apr_status_t st;
-
- st=apr_proc_mutex_unlock( mutex );
-
- return (jlong)(long)st;
-}
-
-JNIEXPORT jlong JNICALL
-Java_org_apache_jk_apr_AprImpl_mutexDestroy(JNIEnv *jniEnv, jobject _jthis, jlong
poolP,
- jlong mutexP )
-{
- apr_proc_mutex_t *mutex=(apr_proc_mutex_t *)(void *)(long)mutexP;
- apr_status_t st;
-
- st=apr_proc_mutex_destroy( mutex );
-
- return (jlong)(long)st;
-}
-
-
/* ==================== Unix sockets ==================== */
/* It seems apr doesn't support them yet, so this code will use the
'native' calls. For 'tcp' sockets we just use what java provides.
@@ -765,7 +691,7 @@
jk_env_t *env = (jk_env_t *)(void *)(long)envJ;
jk_bean_t *compCtx=(jk_bean_t *)(void *)(long)endpointP;
void *target=(void *)(long)componentP;
- jk_endpoint_t *ep = compCtx->object;
+ jk_endpoint_t *ep;
jbyte *nbuf;
jboolean iscopy;
@@ -774,7 +700,17 @@
jint rc = -1;
unsigned acc = 0;
- /*env->l->jkLog(env, env->l, JK_LOG_INFO,"jkInvoke()\n"); */
+ if( compCtx==NULL || data==NULL || endpointP==NULL ) {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,"jni.jkInvoke() NPE\n");
+ return JK_ERR;
+ }
+
+ ep = compCtx->object;
+
+ if( ep==NULL || ep->reply==NULL) {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,"jni.jkInvoke() NPE ep==null\n");
+ return JK_ERR;
+ }
nbuf = (*jniEnv)->GetByteArrayElements(jniEnv, data, &iscopy);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>