remm 02/02/27 00:24:08 Modified: coyote/src/java/org/apache/coyote/tomcat4 CoyoteConnector.java CoyoteProcessor.java Log: - Code cleanup: remove old debug code for the thread pool, use exclusively internationalized strings. Revision Changes Path 1.2 +62 -97 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteConnector.java Index: CoyoteConnector.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteConnector.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CoyoteConnector.java 17 Jan 2002 21:08:44 -0000 1.1 +++ CoyoteConnector.java 27 Feb 2002 08:24:08 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteConnector.java,v 1.1 2002/01/17 21:08:44 remm Exp $ - * $Revision: 1.1 $ - * $Date: 2002/01/17 21:08:44 $ + * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteConnector.java,v 1.2 2002/02/27 08:24:08 remm Exp $ + * $Revision: 1.2 $ + * $Date: 2002/02/27 08:24:08 $ * * ==================================================================== * @@ -103,7 +103,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.1 $ $Date: 2002/01/17 21:08:44 $ + * @version $Revision: 1.2 $ $Date: 2002/02/27 08:24:08 $ */ @@ -326,12 +326,6 @@ "org.apache.coyote.http11.Http11Processor"; - /** - * Coyote Processor class. - */ - private Class processorClass = null; - - // ------------------------------------------------------------- Properties @@ -839,11 +833,9 @@ */ public Request createRequest() { - // if (debug >= 2) - // log("createRequest: Creating new request"); CoyoteRequest request = new CoyoteRequest(); request.setConnector(this); - return null;//(request); + return (request); } @@ -854,11 +846,9 @@ */ public Response createResponse() { - // if (debug >= 2) - // log("createResponse: Creating new response"); CoyoteResponse response = new CoyoteResponse(); response.setConnector(this); - return null;//(response); + return (response); } @@ -873,8 +863,6 @@ */ void recycle(CoyoteProcessor processor) { - // if (debug >= 2) - // log("recycle: Recycling processor " + processor); processors.push(processor); } @@ -893,22 +881,14 @@ synchronized (processors) { if (processors.size() > 0) { - // if (debug >= 2) - // log("createProcessor: Reusing existing processor"); return ((CoyoteProcessor) processors.pop()); } if ((maxProcessors > 0) && (curProcessors < maxProcessors)) { - // if (debug >= 2) - // log("createProcessor: Creating new processor"); return (newProcessor()); } else { if (maxProcessors < 0) { - // if (debug >= 2) - // log("createProcessor: Creating new processor"); return (newProcessor()); } else { - // if (debug >= 2) - // log("createProcessor: Cannot create new processor"); return (null); } } @@ -964,14 +944,12 @@ */ private CoyoteProcessor newProcessor() { - // if (debug >= 2) - // log("newProcessor: Creating new processor"); CoyoteProcessor processor = new CoyoteProcessor(this, curProcessors++); if (processor instanceof Lifecycle) { try { ((Lifecycle) processor).start(); } catch (LifecycleException e) { - log("newProcessor", e); + log(sm.getString("coyoteConnector.newProcessor"), e); return (null); } } @@ -991,14 +969,15 @@ * KeyStore from file (SSL only) * @exception NoSuchAlgorithmException KeyStore algorithm unsupported * by current provider (SSL only) - * @exception CertificateException general certificate error (SSL only) + * @exception CertificateException general certificate error + * (SSL only) * @exception UnrecoverableKeyException internal KeyStore problem with * the certificate (SSL only) * @exception KeyManagementException problem in the key management * layer (SSL only) */ private ServerSocket open() - throws IOException, KeyStoreException, NoSuchAlgorithmException, + throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, KeyManagementException { @@ -1024,6 +1003,41 @@ } + /** + * Open server socket. + */ + private Exception openServerSocket() { + + Exception result = null; + + // Establish a server socket on the specified port + try { + serverSocket = open(); + } catch (IOException e) { + log(sm.getString("coyoteConnector.IOProblem"), e); + result = e; + } catch (KeyStoreException e) { + log(sm.getString("coyoteConnector.keystoreProblem"), e); + result = e; + } catch (NoSuchAlgorithmException e) { + log(sm.getString("coyoteConnector.keystoreAlgorithmProblem"), e); + result = e; + } catch (CertificateException e) { + log(sm.getString("coyoteConnector.certificateProblem"), e); + result = e; + } catch (UnrecoverableKeyException e) { + log(sm.getString("coyoteConnector.unrecoverableKey"), e); + result = e; + } catch (KeyManagementException e) { + log(sm.getString("coyoteConnector.keyManagementProblem"), e); + result = e; + } + + return result; + + } + + // ---------------------------------------------- Background Thread Methods @@ -1039,56 +1053,29 @@ // Accept the next incoming connection from the server socket Socket socket = null; try { - // if (debug >= 3) - // log("run: Waiting on serverSocket.accept()"); socket = serverSocket.accept(); - // if (debug >= 3) - // log("run: Returned from serverSocket.accept()"); if (connectionTimeout > 0) socket.setSoTimeout(connectionTimeout); socket.setTcpNoDelay(tcpNoDelay); - } catch (AccessControlException ace) { - log("socket accept security exception", ace); + } catch (AccessControlException e) { + log(sm.getString("coyoteConnector.securityException"), e); continue; } catch (IOException e) { - // if (debug >= 3) - // log("run: Accept returned IOException", e); try { // If reopening fails, exit synchronized (threadSync) { if (started && !stopped) log("accept: ", e); if (!stopped) { - // if (debug >= 3) - // log("run: Closing server socket"); serverSocket.close(); - // if (debug >= 3) - // log("run: Reopening server socket"); - serverSocket = open(); + openServerSocket(); } } - // if (debug >= 3) - // log("run: IOException processing completed"); } catch (IOException ioe) { - log("socket reopen, io problem: ", ioe); - break; - } catch (KeyStoreException kse) { - log("socket reopen, keystore problem: ", kse); - break; - } catch (NoSuchAlgorithmException nsae) { - log("socket reopen, keystore algorithm problem: ", nsae); - break; - } catch (CertificateException ce) { - log("socket reopen, certificate problem: ", ce); - break; - } catch (UnrecoverableKeyException uke) { - log("socket reopen, unrecoverable key: ", uke); - break; - } catch (KeyManagementException kme) { - log("socket reopen, key management problem: ", kme); + log(sm.getString("coyoteConnector.serverSocketReopenFail"), + ioe); break; } - continue; } @@ -1103,8 +1090,6 @@ } continue; } - // if (debug >= 3) - // log("run: Assigning socket to processor " + processor); processor.assign(socket); // The processor will recycle itself when it finishes @@ -1112,8 +1097,6 @@ } // Notify the threadStop() method that we have shut ourselves down - // if (debug >= 3) - // log("run: Notifying threadStop() that we have shut down"); synchronized (threadSync) { threadSync.notifyAll(); } @@ -1195,39 +1178,21 @@ * Initialize this connector (create ServerSocket here!) */ public void initialize() - throws LifecycleException { + throws LifecycleException { + if (initialized) - throw new LifecycleException ( - sm.getString("coyoteConnector.alreadyInitialized")); + throw new LifecycleException + (sm.getString("coyoteConnector.alreadyInitialized")); - this.initialized=true; - Exception eRethrow = null; + this.initialized = true; - // Establish a server socket on the specified port - try { - serverSocket = open(); - } catch (IOException ioe) { - log("coyoteConnector, io problem: ", ioe); - eRethrow = ioe; - } catch (KeyStoreException kse) { - log("coyoteConnector, keystore problem: ", kse); - eRethrow = kse; - } catch (NoSuchAlgorithmException nsae) { - log("coyoteConnector, keystore algorithm problem: ", nsae); - eRethrow = nsae; - } catch (CertificateException ce) { - log("coyoteConnector, certificate problem: ", ce); - eRethrow = ce; - } catch (UnrecoverableKeyException uke) { - log("coyoteConnector, unrecoverable key: ", uke); - eRethrow = uke; - } catch (KeyManagementException kme) { - log("coyoteConnector, key management problem: ", kme); - eRethrow = kme; - } + Exception eRethrow = openServerSocket(); - if ( eRethrow != null ) - throw new LifecycleException(threadName + ".open", eRethrow); + if (eRethrow != null) { + throw new LifecycleException + (sm.getString("coyoteConnector.initException", threadName), + eRethrow); + } } @@ -1282,7 +1247,7 @@ try { ((Lifecycle) processor).stop(); } catch (LifecycleException e) { - log("coyoteConnector.stop", e); + log(sm.getString("coyoteConnector.stopException"), e); } } } 1.4 +67 -51 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java Index: CoyoteProcessor.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- CoyoteProcessor.java 1 Feb 2002 17:13:48 -0000 1.3 +++ CoyoteProcessor.java 27 Feb 2002 08:24:08 -0000 1.4 @@ -1,6 +1,6 @@ -/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.3 2002/02/01 17:13:48 remm Exp $ - * $Revision: 1.3 $ - * $Date: 2002/02/01 17:13:48 $ +/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.4 2002/02/27 08:24:08 remm Exp $ + * $Revision: 1.4 $ + * $Date: 2002/02/27 08:24:08 $ * * ==================================================================== * @@ -111,7 +111,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.3 $ $Date: 2002/02/01 17:13:48 $ + * @version $Revision: 1.4 $ $Date: 2002/02/27 08:24:08 $ */ final class CoyoteProcessor @@ -282,6 +282,31 @@ private int status = Constants.PROCESSOR_IDLE; + // -------------------------------------------------------- Adapter Methods + + + /** + * Service method. + */ + public void service(Request req, Response res) + throws Exception { + + // Wrapping the Coyote requests + request.setCoyoteRequest(req); + response.setCoyoteResponse(res); + + try { + // Calling the container + connector.getContainer().invoke(request, response); + } finally { + // Recycle the wrapper request and response + request.recycle(); + response.recycle(); + } + + } + + // --------------------------------------------------------- Public Methods @@ -360,35 +385,6 @@ /** - * Log a message on the Logger associated with our Container (if any) - * - * @param message Message to be logged - */ - private void log(String message) { - - Logger logger = connector.getContainer().getLogger(); - if (logger != null) - logger.log(threadName + " " + message); - - } - - - /** - * Log a message on the Logger associated with our Container (if any) - * - * @param message Message to be logged - * @param throwable Associated exception - */ - private void log(String message, Throwable throwable) { - - Logger logger = connector.getContainer().getLogger(); - if (logger != null) - logger.log(threadName + " " + message, throwable); - - } - - - /** * Process an incoming HTTP request on the Socket that has been assigned * to this Processor. Any exceptions that occur during processing must be * swallowed and dealt with. @@ -400,6 +396,7 @@ InputStream input = null; OutputStream output = null; + // Process requests try { input = socket.getInputStream(); output = socket.getOutputStream(); @@ -408,15 +405,18 @@ log(sm.getString("coyoteProcessor.process"), t); } + // Consuming leftover bytes try { int available = input.available(); // skip any unread (bogus) bytes if (available > 0) { input.skip(available); } - } catch (Exception e) { + } catch (IOException e) { ; } + + // Closing the socket try { socket.close(); } catch (IOException e) { @@ -428,23 +428,30 @@ /** - * Service method. + * Log a message on the Logger associated with our Container (if any) + * + * @param message Message to be logged */ - public void service(Request req, Response res) - throws Exception { + private void log(String message) { - // Wrapping the Coyote requests - request.setCoyoteRequest(req); - response.setCoyoteResponse(res); + Logger logger = connector.getContainer().getLogger(); + if (logger != null) + logger.log(threadName + " " + message); + + } - try { - // Calling the container - //connector.getContainer().invoke(request, response); - } finally { - // Recycle the wrapper request and response - request.recycle(); - response.recycle(); - } + + /** + * Log a message on the Logger associated with our Container (if any) + * + * @param message Message to be logged + * @param throwable Associated exception + */ + private void log(String message, Throwable throwable) { + + Logger logger = connector.getContainer().getLogger(); + if (logger != null) + logger.log(threadName + " " + message, throwable); } @@ -466,8 +473,16 @@ if (socket == null) continue; + status = Constants.PROCESSOR_ACTIVE; + // Process the request from this socket - process(socket); + try { + process(socket); + } catch (Throwable t) { + log(sm.getString("coyoteProcessor.run"), t); + } finally { + status = Constants.PROCESSOR_IDLE; + } // Finish up this request connector.recycle(this); @@ -577,10 +592,11 @@ String className = connector.getProcessorClassName(); try { Class clazz = Class.forName(className); - processor = (Processor) clazz.newInstance(); + processor = (Processor) clazz.newInstance(); } catch (Exception e) { throw new LifecycleException - (sm.getString("coyoteProcessor.processorInstantiationFailed", e)); + (sm.getString + ("coyoteProcessor.processorInstantiationFailed", e)); } processor.setAdapter(this);
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>