costin      02/04/25 12:12:58

  Modified:    jk/native2/common jk_env.c
  Log:
  Added the recycle.
  
  jk_env has now some extra printf() debugging to test it's use from
  java, will go away soon.
  
  Revision  Changes    Path
  1.19      +27 -5     jakarta-tomcat-connectors/jk/native2/common/jk_env.c
  
  Index: jk_env.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_env.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- jk_env.c  12 Apr 2002 21:49:03 -0000      1.18
  +++ jk_env.c  25 Apr 2002 19:12:57 -0000      1.19
  @@ -74,9 +74,11 @@
    */
   jk_env_t* JK_METHOD jk2_env_getEnv( char *id, jk_pool_t *pool ) {
     if( jk_env_globalEnv == NULL ) {
  +      if( pool == NULL ) return NULL;
         jk_env_globalEnv=(jk_env_t *)pool->calloc( NULL, pool, sizeof( jk_env_t ));
         jk_env_globalEnv->globalPool = pool;
         jk2_env_initEnv( (jk_env_t *)jk_env_globalEnv, id );
  +      fprintf( stderr, "env: top level env %p\n", jk_env_globalEnv);
     }
     return jk_env_globalEnv;
   }
  @@ -113,17 +115,25 @@
           env->globalPool=parentEnv->globalPool;
           env->envCache=parentEnv->envCache;
   
  -        fprintf( stderr, "Create env %d\n", env->id);
  +        fprintf( stderr, "env:Create child env %p %p\n", parentEnv, env);
       }
       return env;
   }
   
   /** Release the env ( clean and recycle )
    */
  +static int JK_METHOD jk2_env_recycleEnv( jk_env_t *env )
  +{
  +    env->tmpPool->reset(env, env->tmpPool);
  +    env->jkClearException(env);
  +    return JK_OK;
  +}
  +
  +/** Release the env ( clean and recycle )
  + */
   static int JK_METHOD jk2_env_put( jk_env_t *parent, jk_env_t *chld )
   {
  -    chld->tmpPool->reset(parent, chld->tmpPool);
  -    chld->jkClearException(chld);
  +    jk2_env_recycleEnv( chld );
       return parent->envCache->put( parent, parent->envCache, chld);
   }
   
  @@ -225,13 +235,19 @@
       fac( env, workerPool, result, result->type, result->name );
   
       if( result->object==NULL ) {
  -        if( env->l )
  +        if( env->l ) {
               env->l->jkLog(env, env->l, JK_LOG_ERROR,
                             "env.createBean2(): Factory error creating %s ( %s, 
%s)\n", name,
                             type, localName);
  +        } else {
  +            fprintf(stderr, "env.createBean2(): Factory error creating %s ( %s, 
%s)\n", name,
  +                    type, localName);
  +        }
           return NULL;
       }
   
  +    fprintf(stderr,"env.createBean2(): register %s %p\n", result->name, 
result->object);
  +
       jk_env_globalEnv->_objects->put( env, jk_env_globalEnv->_objects, result->name, 
result, NULL );
   
       if( strcmp(localName,"")==0 ) {
  @@ -259,6 +275,7 @@
           return ;
       }
       
  +    fprintf(stderr,"env.alias(): alias %s %s\n", name, alias);
       jk_env_globalEnv->_objects->put( env, jk_env_globalEnv->_objects, alias, jkb, 
NULL );
   }
   
  @@ -268,8 +285,12 @@
   {
       jk_bean_t *result=env->getBean( env, name );
           
  -    if( result==NULL ) return NULL;
  +    if( result==NULL ) {
  +        fprintf(stderr,"env.alias(): Can't find %p %s\n", env, name);
  +        return NULL;
  +    }
       
  +    fprintf(stderr,"env.alias(): Get by name %s %p\n", name, result->object);
       return result->object;
   }    
   
  @@ -380,6 +401,7 @@
       env->createBean= jk2_env_createBean;
       env->alias= jk2_env_alias;
       env->getEnv= jk2_env_get; 
  +    env->recycleEnv= jk2_env_recycleEnv; 
       env->releaseEnv= jk2_env_put; 
   
       env->jkClearException=jk_env_jkClearException;
  
  
  

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

Reply via email to