costin 02/04/17 17:14:34 Modified: jk/java/org/apache/jk/apr AprImpl.java Log: The quick hack I mentioned in the previous commit. Now both 3.3 and 4.1 ( and I suppose 4.0 didn't changed since yesterday ) are working with all 3 channels. ( httpd -X for jni channel please - shm is not yet ready :-) That doesn't mean everything is fine - requests are forwarded but the response is 'no context' in 4.1 ( even if the standalone is working fine ). Still investigating. Revision Changes Path 1.9 +70 -0 jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java Index: AprImpl.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- AprImpl.java 17 Apr 2002 22:43:58 -0000 1.8 +++ AprImpl.java 18 Apr 2002 00:14:34 -0000 1.9 @@ -1,6 +1,7 @@ package org.apache.jk.apr; import java.io.*; +import java.lang.reflect.*; import java.util.*; import org.apache.jk.core.*; @@ -206,6 +207,75 @@ } } + // Hack for Catalina who hungs the calling thread. + public static void main( String args[] ) { + System.err.println("Main"); + try { + // Find the class + Class c=null; + int i=0; + + for( i=0; i<args.length; i++ ) { + String classN=args[i]; + if( "-".equals( classN ) ) { + // end of options. + break; + } + if( c!=null ) continue; + try { + System.err.println("Try " + classN); + c=Class.forName( classN ); + } catch( ClassNotFoundException ex ) { + continue; + } + } + + i++; + if( c==null ) { + System.err.println("No class found "); + return; + } + + if( args.length >= i ) { + String newArgs[]=new String[ args.length - i ]; + System.out.println("Replacing args: " + i + " " + args.length); + for( int j=0; j<newArgs.length; j++ ) { + newArgs[j]=args[i+j]; + System.out.println("ARG: " + newArgs[j]); + } + args=newArgs; + } else { + System.out.println("No extra args: " + i + " " + args.length); + args=new String[0]; + } + + System.err.println("Starting"); + Thread startThread=new Thread( new TomcatStartThread(c, args)); + startThread.start(); + } catch (Throwable t ) { + t.printStackTrace(System.err); + } + } + + static class TomcatStartThread implements Runnable { + Class c; + String args[]; + TomcatStartThread( Class c, String args[] ) { + this.c=c; + this.args=args; + } + + public void run() { + try { + Class argClass=args.getClass(); + Method m=c.getMethod( "main", new Class[] {argClass} ); + m.invoke( c, new Object[] { args } ); + } catch( Throwable t ) { + t.printStackTrace(System.err); + } + } + } + private static org.apache.commons.logging.Log log= org.apache.commons.logging.LogFactory.getLog( AprImpl.class );
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>