billbarker 2004/01/16 19:24:51
Modified: jk/java/org/apache/jk/core WorkerEnv.java
Log:
Fix the problem that every Handler was getting added twice.
Also, fix the case where we are attempting to replace a Handler (only possible if
you are using your own JMX code to control Jk).
Revision Changes Path
1.12 +13 -3
jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java
Index: WorkerEnv.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- WorkerEnv.java 25 Sep 2003 15:24:44 -0000 1.11
+++ WorkerEnv.java 17 Jan 2004 03:24:51 -0000 1.12
@@ -133,6 +133,11 @@
}
public void addHandler( String name, JkHandler w ) {
+ JkHandler oldH = getHandler(name);
+ if(oldH == w) {
+ // Already added
+ return;
+ }
w.setWorkerEnv( this );
w.setName( name );
handlersMap.put( name, w );
@@ -141,9 +146,14 @@
System.arraycopy( handlersTable, 0, newT, 0, handlersTable.length );
handlersTable=newT;
}
- handlersTable[handlerCount]=w;
- w.setId( handlerCount );
- handlerCount++;
+ if(oldH == null) {
+ handlersTable[handlerCount]=w;
+ w.setId( handlerCount );
+ handlerCount++;
+ } else {
+ handlersTable[oldH.getId()]=w;
+ w.setId(oldH.getId());
+ }
// Notify all other handlers of the new one
// XXX Could be a Coyote action ?
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]