Modified: tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/loader/ModuleClassLoader.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/loader/ModuleClassLoader.java?view=diff&rev=442109&r1=442108&r2=442109 ============================================================================== --- tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/loader/ModuleClassLoader.java (original) +++ tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/loader/ModuleClassLoader.java Sun Sep 10 23:09:56 2006 @@ -24,8 +24,6 @@ import java.net.URLClassLoader; import java.util.Enumeration; -import org.apache.catalina.LifecycleException; - /* * Initially, I started with WebappClassLoader attempting to clean up and * refactor it. Because of complexity and very weird ( and likely buggy )
Modified: tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Endpoint.java?view=diff&rev=442109&r1=442108&r2=442109 ============================================================================== --- tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Endpoint.java (original) +++ tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Endpoint.java Sun Sep 10 23:09:56 2006 @@ -17,9 +17,7 @@ package org.apache.tomcat.util.net.http11; import java.io.IOException; -import java.net.BindException; import java.net.InetAddress; -import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; import java.util.ArrayList; @@ -48,7 +46,7 @@ // Socket properties protected static final int BACKLOG = 100; - protected static final int TIMEOUT = 1000; + protected static final int TIMEOUT = 5000; protected int backlog = BACKLOG; protected int serverTimeout = TIMEOUT; protected InetAddress inet; Modified: tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Processor.java?view=diff&rev=442109&r1=442108&r2=442109 ============================================================================== --- tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Processor.java (original) +++ tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Processor.java Sun Sep 10 23:09:56 2006 @@ -50,7 +50,6 @@ import org.apache.tomcat.util.buf.MessageBytes; import org.apache.tomcat.util.http.FastHttpDateFormat; import org.apache.tomcat.util.http.MimeHeaders; -import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.simple.SimpleEndpoint; import org.apache.tomcat.util.res.StringManager; @@ -190,12 +189,6 @@ /** - * SSL information. - */ - protected SSLSupport sslSupport; - - - /** * Socket associated with the current connection. */ protected Socket socket; @@ -641,14 +634,6 @@ /** - * Set the SSL information for this HTTP connection. - */ - public void setSSLSupport(SSLSupport sslSupport) { - this.sslSupport = sslSupport; - } - - - /** * Set the flag to control upload time-outs. */ public void setDisableUploadTimeout(boolean isDisabled) { @@ -890,9 +875,6 @@ // Recycle inputBuffer.recycle(); outputBuffer.recycle(); - - // Recycle ssl info - sslSupport = null; } @@ -985,29 +967,8 @@ } else if (actionCode == ActionCode.ACTION_REQ_SSL_ATTRIBUTE ) { - try { - if (sslSupport != null) { - Object sslO = sslSupport.getCipherSuite(); - if (sslO != null) - request.setAttribute - (SSLSupport.CIPHER_SUITE_KEY, sslO); - sslO = sslSupport.getPeerCertificateChain(false); - if (sslO != null) - request.setAttribute - (SSLSupport.CERTIFICATE_KEY, sslO); - sslO = sslSupport.getKeySize(); - if (sslO != null) - request.setAttribute - (SSLSupport.KEY_SIZE_KEY, sslO); - sslO = sslSupport.getSessionId(); - if (sslO != null) - request.setAttribute - (SSLSupport.SESSION_ID_KEY, sslO); - } - } catch (Exception e) { - log.warn(sm.getString("http11processor.socket.ssl"), e); - } - + // nothing - nio implementation later + } else if (actionCode == ActionCode.ACTION_REQ_HOST_ADDR_ATTRIBUTE) { if ((remoteAddr == null) && (socket != null)) { @@ -1067,26 +1028,7 @@ request.setLocalPort(localPort); } else if (actionCode == ActionCode.ACTION_REQ_SSL_CERTIFICATE) { - if( sslSupport != null) { - /* - * Consume and buffer the request body, so that it does not - * interfere with the client's handshake messages - */ - InputFilter[] inputFilters = inputBuffer.getFilters(); - ((BufferedInputFilter) inputFilters[Constants.BUFFERED_FILTER]) - .setLimit(maxSavePostSize); - inputBuffer.addActiveFilter - (inputFilters[Constants.BUFFERED_FILTER]); - try { - Object sslO = sslSupport.getPeerCertificateChain(true); - if( sslO != null) { - request.setAttribute - (SSLSupport.CERTIFICATE_KEY, sslO); - } - } catch (Exception e) { - log.warn(sm.getString("http11processor.socket.ssl"), e); - } - } + } else if (actionCode == ActionCode.ACTION_REQ_SET_BODY_REPLAY) { ByteChunk body = (ByteChunk) param; @@ -1136,9 +1078,9 @@ http09 = false; contentDelimitation = false; expectation = false; - if (sslSupport != null) { - request.scheme().setString("https"); - } +// if (sslSupport != null) { +// request.scheme().setString("https"); +// } MessageBytes protocolMB = request.protocol(); if (protocolMB.equals(Constants.HTTP_11)) { http11 = true; @@ -1342,13 +1284,13 @@ } if (colonPos < 0) { - if (sslSupport == null) { +// if (sslSupport == null) { // 80 - Default HTTP port request.setServerPort(80); - } else { - // 443 - Default HTTPS port - request.setServerPort(443); - } +// } else { +// // 443 - Default HTTPS port +// request.setServerPort(443); +// } request.serverName().setChars(hostNameC, 0, valueL); } else { Modified: tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Protocol.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Protocol.java?view=diff&rev=442109&r1=442108&r2=442109 ============================================================================== --- tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Protocol.java (original) +++ tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/http11/Http11Protocol.java Sun Sep 10 23:09:56 2006 @@ -21,8 +21,6 @@ import java.util.HashMap; import java.util.Iterator; -import javax.management.MBeanRegistration; -import javax.management.MBeanServer; import javax.management.ObjectName; import org.apache.coyote.ActionCode; @@ -30,11 +28,7 @@ import org.apache.coyote.Adapter; import org.apache.coyote.ProtocolHandler; import org.apache.coyote.RequestGroupInfo; -import org.apache.coyote.RequestInfo; import org.apache.coyote.http11.Constants; -import org.apache.tomcat.util.modeler.Registry; -import org.apache.tomcat.util.net.SSLImplementation; -import org.apache.tomcat.util.net.ServerSocketFactory; import org.apache.tomcat.util.net.nio.NioEndpoint; import org.apache.tomcat.util.net.simple.SimpleEndpoint; import org.apache.tomcat.util.res.StringManager; @@ -48,8 +42,7 @@ * @author Remy Maucherat * @author Costin Manolache */ -public class Http11Protocol - implements ProtocolHandler, MBeanRegistration { +public class Http11Protocol implements ProtocolHandler { protected static org.apache.commons.logging.Log log @@ -65,7 +58,8 @@ // ------------------------------------------------------------ Constructor - public Http11Protocol() { + public Http11Protocol(Endpoint ep) { + this.endpoint = ep; endpoint.setSoLinger(Constants.DEFAULT_CONNECTION_LINGER); endpoint.setSoTimeout(Constants.DEFAULT_CONNECTION_TIMEOUT); //setServerSoTimeout(Constants.DEFAULT_SERVER_SOCKET_TIMEOUT); @@ -77,18 +71,14 @@ protected Http11ConnectionHandler cHandler = new Http11ConnectionHandler(this); - protected NioEndpoint endpoint = new NioEndpoint(); + //protected NioEndpoint endpoint = new NioEndpoint(); + protected Endpoint endpoint; // * protected ObjectName tpOname = null; // * protected ObjectName rgOname = null; - - protected ServerSocketFactory socketFactory = null; - protected SSLImplementation sslImplementation = null; - - // ----------------------------------------- ProtocolHandler Implementation // * @@ -145,15 +135,6 @@ } */ - if (socketFactory!=null) { - Iterator attE = attributes.keySet().iterator(); - while( attE.hasNext() ) { - String key = (String)attE.next(); - Object v=attributes.get(key); - socketFactory.setAttribute(key, v); - } - } - try { endpoint.initEndpoint(); } catch (Exception ex) { @@ -166,29 +147,12 @@ } public void start() throws Exception { - if (this.domain != null) { - try { - tpOname = new ObjectName - (domain + ":" + "type=ThreadPool,name=" + getName()); - Registry.getRegistry(null, null) - .registerComponent(endpoint, tpOname, null ); - } catch (Exception e) { - log.error("Can't register endpoint"); - } - rgOname=new ObjectName - (domain + ":type=GlobalRequestProcessor,name=" + getName()); - Registry.getRegistry(null, null).registerComponent - ( cHandler.global, rgOname, null ); - } - try { endpoint.startEndpoint(); } catch (Exception ex) { log.error(sm.getString("http11protocol.endpoint.starterror"), ex); throw ex; } - if (log.isInfoEnabled()) - log.info(sm.getString("http11protocol.start", getName())); } public void pause() throws Exception { @@ -198,8 +162,6 @@ log.error(sm.getString("http11protocol.endpoint.pauseerror"), ex); throw ex; } - if (log.isInfoEnabled()) - log.info(sm.getString("http11protocol.pause", getName())); } public void resume() throws Exception { @@ -209,18 +171,12 @@ log.error(sm.getString("http11protocol.endpoint.resumeerror"), ex); throw ex; } - if (log.isInfoEnabled()) - log.info(sm.getString("http11protocol.resume", getName())); } public void destroy() throws Exception { if (log.isInfoEnabled()) log.info(sm.getString("http11protocol.stop", getName())); endpoint.stopEndpoint(); - if (tpOname!=null) - Registry.getRegistry(null, null).unregisterComponent(tpOname); - if (rgOname != null) - Registry.getRegistry(null, null).unregisterComponent(rgOname); } @@ -499,33 +455,12 @@ processor.setMaxSavePostSize(protocol.maxSavePostSize); processor.setServer(protocol.server); localProcessor.set(processor); - if (protocol.getDomain() != null) { - synchronized (this) { - try { - RequestInfo rp = processor.getRequest().getRequestProcessor(); - rp.setGlobalProcessor(global); - ObjectName rpName = new ObjectName - (protocol.getDomain() + ":type=RequestProcessor,worker=" - + protocol.getName() + ",name=HttpRequest" + count++); - Registry.getRegistry(null, null).registerComponent(rp, rpName, null); - } catch (Exception e) { - log.warn("Error registering request"); - } - } - } } if (processor instanceof ActionHook) { ((ActionHook) processor).action(ActionCode.ACTION_START, null); } - if (protocol.secure && (protocol.sslImplementation != null)) { - processor.setSSLSupport - (protocol.sslImplementation.getSSLSupport(socket)); - } else { - processor.setSSLSupport(null); - } - processor.process(socket); return false; @@ -567,31 +502,8 @@ // * protected String domain; - protected ObjectName oname; - protected MBeanServer mserver; - - public ObjectName getObjectName() { - return oname; - } public String getDomain() { return domain; - } - - public ObjectName preRegister(MBeanServer server, - ObjectName name) throws Exception { - oname=name; - mserver=server; - domain=name.getDomain(); - return name; - } - - public void postRegister(Boolean registrationDone) { - } - - public void preDeregister() throws Exception { - } - - public void postDeregister() { } } Modified: tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/simple/SimpleEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/simple/SimpleEndpoint.java?view=diff&rev=442109&r1=442108&r2=442109 ============================================================================== --- tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/simple/SimpleEndpoint.java (original) +++ tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/util/net/simple/SimpleEndpoint.java Sun Sep 10 23:09:56 2006 @@ -23,11 +23,8 @@ import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; -import java.security.AccessControlException; import java.util.ArrayList; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.tomcat.util.net.http11.Endpoint; @@ -403,29 +400,28 @@ Socket accepted = null; try { - accepted = serverSocket.accept(); - if (null == accepted) { - log.warn("Accepted null socket"); - } else { - if (!running) { + System.err.println("Before accept"); + while (running) { + try { + accepted = serverSocket.accept(); + if (accepted == null) { + System.err.println("Accepted null socket"); + } + } catch(InterruptedIOException iioe) { + // normal part -- should happen regularly so + // that the endpoint can release if the server + // is shutdown. This will happen every serverTimeout secs. + //System.err.println("INT " + Thread.currentThread()); + } + if (null != accepted) { + return accepted; + } + } + if (!running) { accepted.close(); // rude, but unlikely! accepted = null; - } } - } - catch(InterruptedIOException iioe) { - // normal part -- should happen regularly so - // that the endpoint can release if the server - // is shutdown. - } - catch (AccessControlException ace) { - // When using the Java SecurityManager this exception - // can be thrown if you are restricting access to the - // socket with SocketPermission's. - // Log the unauthorized access and continue - log.warn("AccessControlException", ace); - } - catch (IOException e) { + } catch (IOException e) { if (running) { log.error("IOException", e); @@ -441,47 +437,52 @@ } if( ! running ) return null; + reinitializing = true; - // Restart endpoint when getting an IOException during accept - synchronized (threadSync) { - if (reinitializing) { - reinitializing = false; - // 1) Attempt to close server socket - closeServerSocket(); - initialized = false; - // 2) Reinit endpoint (recreate server socket) + reinit(); + } + + return accepted; + } + + private void reinit() throws ThreadDeath { + // Restart endpoint when getting an IOException during accept + synchronized (threadSync) { + if (reinitializing) { + reinitializing = false; + // 1) Attempt to close server socket + closeServerSocket(); + initialized = false; + // 2) Reinit endpoint (recreate server socket) + try { + log.warn("Reinit endpoint"); + initEndpoint(); + } catch (Throwable t) { + log.error("Error in reinit", t); + } + // 3) If failed, attempt to restart endpoint + if (!initialized) { + log.warn("Restart endpoint"); try { - log.warn("Reinit endpoint"); + stopEndpoint(); initEndpoint(); + startEndpoint(); } catch (Throwable t) { - log.error("Error in reinit", t); - } - // 3) If failed, attempt to restart endpoint - if (!initialized) { - log.warn("Restart endpoint"); - try { - stopEndpoint(); - initEndpoint(); - startEndpoint(); - } catch (Throwable t) { - log.error("Error in restart", t); - } - // Current thread is now invalid: kill it - throw new ThreadDeath(); + log.error("Error in restart", t); } + // Current thread is now invalid: kill it + throw new ThreadDeath(); } } - } - - return accepted; } public void processSocket(Socket s) { // Process the connection int step = 1; try { - + System.err.println("process socket " + s); + if (s == null) return; // 1: Set socket options: timeout, linger, etc setSocketOptions(s); @@ -509,7 +510,8 @@ } // Try to close the socket try { - s.close(); + if ( s!= null ) + s.close(); } catch (IOException e) { } } finally { @@ -552,7 +554,7 @@ } Socket socket = acceptSocket(); - + System.err.println("Accepted socket " + socket + " " + Thread.currentThread()); curThreads++; // Process the request from this socket Added: tomcat/sandbox/tomcat-lite/resources/deploy.MF URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/resources/deploy.MF?view=auto&rev=442109 ============================================================================== --- tomcat/sandbox/tomcat-lite/resources/deploy.MF (added) +++ tomcat/sandbox/tomcat-lite/resources/deploy.MF Sun Sep 10 23:09:56 2006 @@ -0,0 +1,2 @@ +Manifest-version: 1.0 +Main-Class: org.apache.tomcat.servlets.deploy.Main Propchange: tomcat/sandbox/tomcat-lite/resources/deploy.MF ------------------------------------------------------------------------------ svn:executable = * --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]