Author: markt Date: Wed Oct 3 09:38:08 2012 New Revision: 1393376 URL: http://svn.apache.org/viewvc?rev=1393376&view=rev Log: Sycn with trunk
Modified: tomcat/sandbox/trunk-resources/ (props changed) tomcat/sandbox/trunk-resources/build.properties.default tomcat/sandbox/trunk-resources/java/org/apache/catalina/filters/CsrfPreventionFilter.java tomcat/sandbox/trunk-resources/java/org/apache/catalina/manager/JMXProxyServlet.java tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/AccessLogValve.java tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/ExtendedAccessLogValve.java tomcat/sandbox/trunk-resources/res/maven/mvn-pub.xml tomcat/sandbox/trunk-resources/webapps/docs/manager-howto.xml Propchange: tomcat/sandbox/trunk-resources/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1392656-1393374 Modified: tomcat/sandbox/trunk-resources/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/build.properties.default?rev=1393376&r1=1393375&r2=1393376&view=diff ============================================================================== --- tomcat/sandbox/trunk-resources/build.properties.default (original) +++ tomcat/sandbox/trunk-resources/build.properties.default Wed Oct 3 09:38:08 2012 @@ -188,7 +188,7 @@ junit.jar=${junit.lib}/junit-4.8.2.jar junit.loc=http://cloud.github.com/downloads/KentBeck/junit/junit4.8.2.zip # ----- Checkstyle, version 5.1 or later ----- -checkstyle.version=5.5 +checkstyle.version=5.6 checkstyle.home=${base.path}/checkstyle-${checkstyle.version} checkstyle.loc=${base-sf.loc}/checkstyle/checkstyle-${checkstyle.version}-bin.zip checkstyle.jar=${checkstyle.home}/checkstyle-${checkstyle.version}-all.jar Modified: tomcat/sandbox/trunk-resources/java/org/apache/catalina/filters/CsrfPreventionFilter.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/catalina/filters/CsrfPreventionFilter.java?rev=1393376&r1=1393375&r2=1393376&view=diff ============================================================================== --- tomcat/sandbox/trunk-resources/java/org/apache/catalina/filters/CsrfPreventionFilter.java (original) +++ tomcat/sandbox/trunk-resources/java/org/apache/catalina/filters/CsrfPreventionFilter.java Wed Oct 3 09:38:08 2012 @@ -33,6 +33,7 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; +import javax.servlet.http.HttpSession; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -153,15 +154,19 @@ public class CsrfPreventionFilter extend } } - LruCache<String> nonceCache = - (LruCache<String>) req.getSession(true).getAttribute( - Constants.CSRF_NONCE_SESSION_ATTR_NAME); + HttpSession session = req.getSession(false); + + @SuppressWarnings("unchecked") + LruCache<String> nonceCache = (session == null) ? null + : (LruCache<String>) session.getAttribute( + Constants.CSRF_NONCE_SESSION_ATTR_NAME); if (!skipNonceCheck) { String previousNonce = req.getParameter(Constants.CSRF_NONCE_REQUEST_PARAM); - if (nonceCache != null && !nonceCache.contains(previousNonce)) { + if (nonceCache == null || previousNonce == null || + !nonceCache.contains(previousNonce)) { res.sendError(HttpServletResponse.SC_FORBIDDEN); return; } @@ -169,7 +174,10 @@ public class CsrfPreventionFilter extend if (nonceCache == null) { nonceCache = new LruCache<>(nonceCacheSize); - req.getSession().setAttribute( + if (session == null) { + session = req.getSession(true); + } + session.setAttribute( Constants.CSRF_NONCE_SESSION_ATTR_NAME, nonceCache); } Modified: tomcat/sandbox/trunk-resources/java/org/apache/catalina/manager/JMXProxyServlet.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/catalina/manager/JMXProxyServlet.java?rev=1393376&r1=1393375&r2=1393376&view=diff ============================================================================== --- tomcat/sandbox/trunk-resources/java/org/apache/catalina/manager/JMXProxyServlet.java (original) +++ tomcat/sandbox/trunk-resources/java/org/apache/catalina/manager/JMXProxyServlet.java Wed Oct 3 09:38:08 2012 @@ -93,98 +93,33 @@ public class JMXProxyServlet extends Htt return; } - // Invoke an operation, then execute a "get" - if(null != request.getParameter("invokeAndGet")) { - try { - invokeOperationInternal(request.getParameter("invoke"), - request.getParameter("op"), - getInvokeParameters(request.getParameter("ps"))); - - getAttribute(writer, - request.getParameter("get"), - request.getParameter("att"), - request.getParameter("key")); - } catch (Exception e) { - writer.println("Error - " + e.toString()); - e.printStackTrace(writer); - } + String qry=request.getParameter("set"); + if( qry!= null ) { + String name=request.getParameter("att"); + String val=request.getParameter("val"); + + setAttribute( writer, qry, name, val ); + return; } - // Get a value first, then invoke an operation - else if(null != request.getParameter("getAndInvoke")) { - try { - getAttribute(writer, - request.getParameter("get"), - request.getParameter("att"), - request.getParameter("key")); - - invokeOperationInternal(request.getParameter("invoke"), - request.getParameter("op"), - getInvokeParameters(request.getParameter("ps"))); - } catch (Exception e) { - writer.println("Error - " + e.toString()); - e.printStackTrace(writer); - } + qry=request.getParameter("get"); + if( qry!= null ) { + String name=request.getParameter("att"); + getAttribute( writer, qry, name, request.getParameter("key") ); + return; } - // Invoke an operation, then set a value - else if(null != request.getParameter("invokeAndSet")) { - try { - invokeOperationInternal(request.getParameter("invoke"), - request.getParameter("op"), - getInvokeParameters(request.getParameter("ps"))); - - setAttribute(writer, - request.getParameter("set"), - request.getParameter("att"), - request.getParameter("val")); - } catch (Exception e) { - writer.println("Error - " + e.toString()); - e.printStackTrace(writer); - } + qry = request.getParameter("invoke"); + if(qry != null) { + String opName=request.getParameter("op"); + String[] params = getInvokeParameters(request.getParameter("ps")); + invokeOperation(writer, qry, opName, params); + return; } - // Get a value, then set its value - else if(null != request.getParameter("getAndSet")) { - try { - getAttribute(writer, - request.getParameter("get"), - request.getParameter("att"), - request.getParameter("key")); - - setAttributeInternal(request.getParameter("set"), - request.getParameter("att"), - request.getParameter("val")); - } catch (Exception e) { - writer.println("Error - " + e.toString()); - e.printStackTrace(writer); - } - } else { - String qry=request.getParameter("set"); - if( qry!= null ) { - String name=request.getParameter("att"); - String val=request.getParameter("val"); - - setAttribute( writer, qry, name, val ); - return; - } - qry=request.getParameter("get"); - if( qry!= null ) { - String name=request.getParameter("att"); - getAttribute( writer, qry, name, request.getParameter("key") ); - return; - } - qry = request.getParameter("invoke"); - if(qry != null) { - String opName=request.getParameter("op"); - String[] params = getInvokeParameters(request.getParameter("ps")); - invokeOperation(writer, qry, opName, params); - return; - } - qry=request.getParameter("qry"); - if( qry == null ) { - qry = "*:*"; - } - - listBeans( writer, qry ); + qry=request.getParameter("qry"); + if( qry == null ) { + qry = "*:*"; } + + listBeans( writer, qry ); } public void getAttribute(PrintWriter writer, String onameStr, String att, String key) { Modified: tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/AccessLogValve.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/AccessLogValve.java?rev=1393376&r1=1393375&r2=1393376&view=diff ============================================================================== --- tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/AccessLogValve.java (original) +++ tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/AccessLogValve.java Wed Oct 3 09:38:08 2012 @@ -18,6 +18,7 @@ package org.apache.catalina.valves; import java.io.BufferedWriter; +import java.io.CharArrayWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -25,7 +26,6 @@ import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.InetAddress; -import java.nio.CharBuffer; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -571,7 +571,7 @@ public class AccessLogValve extends Valv * Buffer pool used for log message generation. Pool used to reduce garbage * generation. */ - private SynchronizedStack<CharBuffer> charBuffers = + private SynchronizedStack<CharArrayWriter> charArrayWriters = new SynchronizedStack<>(); /** @@ -935,21 +935,20 @@ public class AccessLogValve extends Valv long start = request.getCoyoteRequest().getStartTime(); Date date = getDate(start + time); - CharBuffer result = charBuffers.pop(); + CharArrayWriter result = charArrayWriters.pop(); if (result == null) { - result = CharBuffer.allocate(128); + result = new CharArrayWriter(128); } for (int i = 0; i < logElements.length; i++) { logElements[i].addElement(result, date, request, response, time); } - result.flip(); log(result); - if (result.length() <= maxLogMessageBufferSize) { - result.clear(); - charBuffers.push(result); + if (result.size() <= maxLogMessageBufferSize) { + result.reset(); + charArrayWriters.push(result); } } @@ -1011,7 +1010,7 @@ public class AccessLogValve extends Valv * * @param message Message to be logged */ - public void log(CharBuffer message) { + public void log(CharArrayWriter message) { if (rotatable) { // Only do a logfile switch check once a second, max. long systime = System.currentTimeMillis(); @@ -1056,17 +1055,20 @@ public class AccessLogValve extends Valv } // Log this message - synchronized(this) { - if (writer != null) { - writer.write(message.array(), message.arrayOffset(), - message.arrayOffset() + message.limit()); - writer.println(""); - if (!buffered) { - writer.flush(); + try { + synchronized(this) { + if (writer != null) { + message.writeTo(writer); + writer.println(""); + if (!buffered) { + writer.flush(); + } } } + } catch (IOException ioe) { + log.warn(sm.getString( + "accessLogValve.writeFail", message.toString()), ioe); } - } @@ -1242,7 +1244,7 @@ public class AccessLogValve extends Valv * AccessLogElement writes the partial message into the buffer. */ protected interface AccessLogElement { - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time); } @@ -1252,7 +1254,7 @@ public class AccessLogValve extends Valv */ protected static class ThreadNameElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { RequestInfo info = request.getCoyoteRequest().getRequestProcessor(); if(info != null) { @@ -1282,7 +1284,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(LOCAL_ADDR_VALUE); } @@ -1293,7 +1295,7 @@ public class AccessLogValve extends Valv */ protected class RemoteAddrElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (requestAttributesEnabled) { Object addr = request.getAttribute(REMOTE_ADDR_ATTRIBUTE); @@ -1313,7 +1315,7 @@ public class AccessLogValve extends Valv */ protected class HostElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { String value = null; if (requestAttributesEnabled) { @@ -1337,7 +1339,7 @@ public class AccessLogValve extends Valv */ protected static class LogicalUserNameElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append('-'); } @@ -1348,7 +1350,7 @@ public class AccessLogValve extends Valv */ protected class ProtocolElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (requestAttributesEnabled) { Object proto = request.getAttribute(PROTOCOL_ATTRIBUTE); @@ -1368,7 +1370,7 @@ public class AccessLogValve extends Valv */ protected static class UserElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (request != null) { String value = request.getRemoteUser(); @@ -1504,7 +1506,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { long timestamp = date.getTime(); long frac; @@ -1561,7 +1563,7 @@ public class AccessLogValve extends Valv */ protected static class RequestElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (request != null) { String method = request.getMethod(); @@ -1590,130 +1592,130 @@ public class AccessLogValve extends Valv */ protected static class HttpStatusCodeElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (response != null) { // This approach is used to reduce GC switch (response.getStatus()) { case HttpServletResponse.SC_CONTINUE: - buf.put(Constants.SC_CONTINUE_CHAR); + buf.write(Constants.SC_CONTINUE_CHAR, 0, 3); break; case HttpServletResponse.SC_SWITCHING_PROTOCOLS: - buf.put(Constants.SC_SWITCHING_PROTOCOLS_CHAR); + buf.write(Constants.SC_SWITCHING_PROTOCOLS_CHAR, 0, 3); break; case HttpServletResponse.SC_OK: - buf.put(Constants.SC_OK_CHAR); + buf.write(Constants.SC_OK_CHAR, 0, 3); break; case HttpServletResponse.SC_CREATED: - buf.put(Constants.SC_CREATED_CHAR); + buf.write(Constants.SC_CREATED_CHAR, 0, 3); break; case HttpServletResponse.SC_ACCEPTED: - buf.put(Constants.SC_ACCEPTED_CHAR); + buf.write(Constants.SC_ACCEPTED_CHAR, 0, 3); break; case HttpServletResponse.SC_NON_AUTHORITATIVE_INFORMATION: - buf.put(Constants.SC_NON_AUTHORITATIVE_INFORMATION_CHAR); + buf.write(Constants.SC_NON_AUTHORITATIVE_INFORMATION_CHAR, 0, 3); break; case HttpServletResponse.SC_NO_CONTENT: - buf.put(Constants.SC_NO_CONTENT_CHAR); + buf.write(Constants.SC_NO_CONTENT_CHAR, 0, 3); break; case HttpServletResponse.SC_RESET_CONTENT: - buf.put(Constants.SC_RESET_CONTENT_CHAR); + buf.write(Constants.SC_RESET_CONTENT_CHAR, 0, 3); break; case HttpServletResponse.SC_PARTIAL_CONTENT: - buf.put(Constants.SC_PARTIAL_CONTENT_CHAR); + buf.write(Constants.SC_PARTIAL_CONTENT_CHAR, 0, 3); break; case HttpServletResponse.SC_MULTIPLE_CHOICES: - buf.put(Constants.SC_MULTIPLE_CHOICES_CHAR); + buf.write(Constants.SC_MULTIPLE_CHOICES_CHAR, 0, 3); break; case HttpServletResponse.SC_MOVED_PERMANENTLY: - buf.put(Constants.SC_MOVED_PERMANENTLY_CHAR); + buf.write(Constants.SC_MOVED_PERMANENTLY_CHAR, 0, 3); break; case HttpServletResponse.SC_MOVED_TEMPORARILY: - buf.put(Constants.SC_MOVED_TEMPORARILY_CHAR); + buf.write(Constants.SC_MOVED_TEMPORARILY_CHAR, 0, 3); break; case HttpServletResponse.SC_SEE_OTHER: - buf.put(Constants.SC_SEE_OTHER_CHAR); + buf.write(Constants.SC_SEE_OTHER_CHAR, 0, 3); break; case HttpServletResponse.SC_NOT_MODIFIED: - buf.put(Constants.SC_NOT_MODIFIED_CHAR); + buf.write(Constants.SC_NOT_MODIFIED_CHAR, 0, 3); break; case HttpServletResponse.SC_USE_PROXY: - buf.put(Constants.SC_USE_PROXY_CHAR); + buf.write(Constants.SC_USE_PROXY_CHAR, 0, 3); break; case HttpServletResponse.SC_TEMPORARY_REDIRECT: - buf.put(Constants.SC_TEMPORARY_REDIRECT_CHAR); + buf.write(Constants.SC_TEMPORARY_REDIRECT_CHAR, 0, 3); break; case HttpServletResponse.SC_BAD_REQUEST: - buf.put(Constants.SC_BAD_REQUEST_CHAR); + buf.write(Constants.SC_BAD_REQUEST_CHAR, 0, 3); break; case HttpServletResponse.SC_UNAUTHORIZED: - buf.put(Constants.SC_UNAUTHORIZED_CHAR); + buf.write(Constants.SC_UNAUTHORIZED_CHAR, 0, 3); break; case HttpServletResponse.SC_PAYMENT_REQUIRED: - buf.put(Constants.SC_PAYMENT_REQUIRED_CHAR); + buf.write(Constants.SC_PAYMENT_REQUIRED_CHAR, 0, 3); break; case HttpServletResponse.SC_FORBIDDEN: - buf.put(Constants.SC_FORBIDDEN_CHAR); + buf.write(Constants.SC_FORBIDDEN_CHAR, 0, 3); break; case HttpServletResponse.SC_NOT_FOUND: - buf.put(Constants.SC_NOT_FOUND_CHAR); + buf.write(Constants.SC_NOT_FOUND_CHAR, 0, 3); break; case HttpServletResponse.SC_METHOD_NOT_ALLOWED: - buf.put(Constants.SC_METHOD_NOT_ALLOWED_CHAR); + buf.write(Constants.SC_METHOD_NOT_ALLOWED_CHAR, 0, 3); break; case HttpServletResponse.SC_NOT_ACCEPTABLE: - buf.put(Constants.SC_NOT_ACCEPTABLE_CHAR); + buf.write(Constants.SC_NOT_ACCEPTABLE_CHAR, 0, 3); break; case HttpServletResponse.SC_PROXY_AUTHENTICATION_REQUIRED: - buf.put(Constants.SC_PROXY_AUTHENTICATION_REQUIRED_CHAR); + buf.write(Constants.SC_PROXY_AUTHENTICATION_REQUIRED_CHAR, 0, 3); break; case HttpServletResponse.SC_REQUEST_TIMEOUT: - buf.put(Constants.SC_REQUEST_TIMEOUT_CHAR); + buf.write(Constants.SC_REQUEST_TIMEOUT_CHAR, 0, 3); break; case HttpServletResponse.SC_CONFLICT: - buf.put(Constants.SC_CONFLICT_CHAR); + buf.write(Constants.SC_CONFLICT_CHAR, 0, 3); break; case HttpServletResponse.SC_GONE: - buf.put(Constants.SC_GONE_CHAR); + buf.write(Constants.SC_GONE_CHAR, 0, 3); break; case HttpServletResponse.SC_LENGTH_REQUIRED: - buf.put(Constants.SC_LENGTH_REQUIRED_CHAR); + buf.write(Constants.SC_LENGTH_REQUIRED_CHAR, 0, 3); break; case HttpServletResponse.SC_PRECONDITION_FAILED: - buf.put(Constants.SC_PRECONDITION_FAILED_CHAR); + buf.write(Constants.SC_PRECONDITION_FAILED_CHAR, 0, 3); break; case HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE: - buf.put(Constants.SC_REQUEST_ENTITY_TOO_LARGE_CHAR); + buf.write(Constants.SC_REQUEST_ENTITY_TOO_LARGE_CHAR, 0, 3); break; case HttpServletResponse.SC_REQUEST_URI_TOO_LONG: - buf.put(Constants.SC_REQUEST_URI_TOO_LONG_CHAR); + buf.write(Constants.SC_REQUEST_URI_TOO_LONG_CHAR, 0, 3); break; case HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE: - buf.put(Constants.SC_UNSUPPORTED_MEDIA_TYPE_CHAR); + buf.write(Constants.SC_UNSUPPORTED_MEDIA_TYPE_CHAR, 0, 3); break; case HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE: - buf.put(Constants.SC_REQUESTED_RANGE_NOT_SATISFIABLE_CHAR); + buf.write(Constants.SC_REQUESTED_RANGE_NOT_SATISFIABLE_CHAR, 0, 3); break; case HttpServletResponse.SC_EXPECTATION_FAILED: - buf.put(Constants.SC_EXPECTATION_FAILED_CHAR); + buf.write(Constants.SC_EXPECTATION_FAILED_CHAR, 0, 3); break; case HttpServletResponse.SC_INTERNAL_SERVER_ERROR: - buf.put(Constants.SC_INTERNAL_SERVER_ERROR_CHAR); + buf.write(Constants.SC_INTERNAL_SERVER_ERROR_CHAR, 0, 3); break; case HttpServletResponse.SC_NOT_IMPLEMENTED: - buf.put(Constants.SC_NOT_IMPLEMENTED_CHAR); + buf.write(Constants.SC_NOT_IMPLEMENTED_CHAR, 0, 3); break; case HttpServletResponse.SC_BAD_GATEWAY: - buf.put(Constants.SC_BAD_GATEWAY_CHAR); + buf.write(Constants.SC_BAD_GATEWAY_CHAR, 0, 3); break; case HttpServletResponse.SC_SERVICE_UNAVAILABLE: - buf.put(Constants.SC_SERVICE_UNAVAILABLE_CHAR); + buf.write(Constants.SC_SERVICE_UNAVAILABLE_CHAR, 0, 3); break; case HttpServletResponse.SC_GATEWAY_TIMEOUT: - buf.put(Constants.SC_GATEWAY_TIMEOUT_CHAR); + buf.write(Constants.SC_GATEWAY_TIMEOUT_CHAR, 0, 3); break; case HttpServletResponse.SC_HTTP_VERSION_NOT_SUPPORTED: - buf.put(Constants.SC_HTTP_VERSION_NOT_SUPPORTED_CHAR); + buf.write(Constants.SC_HTTP_VERSION_NOT_SUPPORTED_CHAR, 0, 3); break; default: // Don't use this for known codes due to the garbage the @@ -1732,7 +1734,7 @@ public class AccessLogValve extends Valv */ protected class LocalPortElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (requestAttributesEnabled) { Object port = request.getAttribute(SERVER_PORT_ATTRIBUTE); @@ -1761,7 +1763,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { // Don't need to flush since trigger for log message is after the // response has been committed @@ -1793,7 +1795,7 @@ public class AccessLogValve extends Valv */ protected static class MethodElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (request != null) { buf.append(request.getMethod()); @@ -1816,7 +1818,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (millis) { buf.append(Long.toString(time)); @@ -1838,7 +1840,7 @@ public class AccessLogValve extends Valv */ protected static class QueryElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { String query = null; if (request != null) { @@ -1856,7 +1858,7 @@ public class AccessLogValve extends Valv */ protected static class SessionIdElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (request != null) { if (request.getSession(false) != null) { @@ -1876,7 +1878,7 @@ public class AccessLogValve extends Valv */ protected static class RequestURIElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (request != null) { buf.append(request.getRequestURI()); @@ -1891,7 +1893,7 @@ public class AccessLogValve extends Valv */ protected static class LocalServerNameElement implements AccessLogElement { @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(request.getServerName()); } @@ -1908,7 +1910,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(str); } @@ -1925,7 +1927,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { Enumeration<String> iter = request.getHeaders(header); if (iter.hasMoreElements()) { @@ -1950,7 +1952,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { String value = "-"; Cookie[] c = request.getCookies(); @@ -1977,7 +1979,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (null != response) { Iterator<String> iter = response.getHeaders(header).iterator(); @@ -2004,7 +2006,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { Object value = null; if (request != null) { @@ -2035,7 +2037,7 @@ public class AccessLogValve extends Valv } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { Object value = null; if (null != request) { Modified: tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/ExtendedAccessLogValve.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/ExtendedAccessLogValve.java?rev=1393376&r1=1393375&r2=1393376&view=diff ============================================================================== --- tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/ExtendedAccessLogValve.java (original) +++ tomcat/sandbox/trunk-resources/java/org/apache/catalina/valves/ExtendedAccessLogValve.java Wed Oct 3 09:38:08 2012 @@ -17,12 +17,12 @@ package org.apache.catalina.valves; +import java.io.CharArrayWriter; import java.io.IOException; import java.io.StringReader; import java.io.UnsupportedEncodingException; import java.net.InetAddress; import java.net.URLEncoder; -import java.nio.CharBuffer; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -226,7 +226,7 @@ public class ExtendedAccessLogValve exte }; @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { ElementTimestampStruct eds = currentDate.get(); long millis = eds.currentTimestamp.getTime(); @@ -254,7 +254,7 @@ public class ExtendedAccessLogValve exte }; @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { ElementTimestampStruct eds = currentTime.get(); long millis = eds.currentTimestamp.getTime(); @@ -276,7 +276,7 @@ public class ExtendedAccessLogValve exte this.header = header; } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getHeader(header))); } @@ -290,7 +290,7 @@ public class ExtendedAccessLogValve exte } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(response.getHeader(header))); } @@ -303,7 +303,7 @@ public class ExtendedAccessLogValve exte this.attribute = attribute; } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getContext().getServletContext() .getAttribute(attribute))); @@ -317,7 +317,7 @@ public class ExtendedAccessLogValve exte this.name = name; } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { Cookie[] c = request.getCookies(); for (int i = 0; c != null && i < c.length; i++) { @@ -339,7 +339,7 @@ public class ExtendedAccessLogValve exte } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { if (null != response) { Iterator<String> iter = response.getHeaders(header).iterator(); @@ -368,7 +368,7 @@ public class ExtendedAccessLogValve exte } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getAttribute(attribute))); } @@ -381,7 +381,7 @@ public class ExtendedAccessLogValve exte this.attribute = attribute; } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { HttpSession session = null; if (request != null) { @@ -415,7 +415,7 @@ public class ExtendedAccessLogValve exte } @Override - public void addElement(CharBuffer buf, Date date, Request request, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(urlEncode(request.getParameter(parameter)))); } @@ -617,7 +617,7 @@ public class ExtendedAccessLogValve exte } else if ("dns".equals(nextToken)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { String value; try { @@ -657,9 +657,9 @@ public class ExtendedAccessLogValve exte } else if ("query".equals(token)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, - Request request, Response response, - long time) { + public void addElement(CharArrayWriter buf, + Date date, Request request, + Response response, long time) { String query = request.getQueryString(); if (query != null) { buf.append(query); @@ -672,7 +672,7 @@ public class ExtendedAccessLogValve exte } else { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { String query = request.getQueryString(); if (query == null) { @@ -779,7 +779,7 @@ public class ExtendedAccessLogValve exte if ("authType".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getAuthType())); } @@ -787,7 +787,7 @@ public class ExtendedAccessLogValve exte } else if ("remoteUser".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getRemoteUser())); } @@ -795,7 +795,7 @@ public class ExtendedAccessLogValve exte } else if ("requestedSessionId".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getRequestedSessionId())); } @@ -803,7 +803,7 @@ public class ExtendedAccessLogValve exte } else if ("requestedSessionIdFromCookie".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap("" + request.isRequestedSessionIdFromCookie())); @@ -812,7 +812,7 @@ public class ExtendedAccessLogValve exte } else if ("requestedSessionIdValid".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap("" + request.isRequestedSessionIdValid())); } @@ -820,7 +820,7 @@ public class ExtendedAccessLogValve exte } else if ("contentLength".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap("" + request.getContentLength())); } @@ -828,7 +828,7 @@ public class ExtendedAccessLogValve exte } else if ("characterEncoding".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getCharacterEncoding())); } @@ -836,7 +836,7 @@ public class ExtendedAccessLogValve exte } else if ("locale".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getLocale())); } @@ -844,7 +844,7 @@ public class ExtendedAccessLogValve exte } else if ("protocol".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap(request.getProtocol())); } @@ -852,7 +852,7 @@ public class ExtendedAccessLogValve exte } else if ("scheme".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(request.getScheme()); } @@ -860,7 +860,7 @@ public class ExtendedAccessLogValve exte } else if ("secure".equals(parameter)) { return new AccessLogElement() { @Override - public void addElement(CharBuffer buf, Date date, + public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) { buf.append(wrap("" + request.isSecure())); } Modified: tomcat/sandbox/trunk-resources/res/maven/mvn-pub.xml URL: http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/res/maven/mvn-pub.xml?rev=1393376&r1=1393375&r2=1393376&view=diff ============================================================================== --- tomcat/sandbox/trunk-resources/res/maven/mvn-pub.xml (original) +++ tomcat/sandbox/trunk-resources/res/maven/mvn-pub.xml Wed Oct 3 09:38:08 2012 @@ -320,7 +320,7 @@ </target> <target name="init-ldap"> - <input message="Enter ASF LDAP (same svn) password" + <input message="Enter ASF LDAP (same as svn) password" addproperty="asf.ldap.password" > <handler type="secure"/> </input> Modified: tomcat/sandbox/trunk-resources/webapps/docs/manager-howto.xml URL: http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/webapps/docs/manager-howto.xml?rev=1393376&r1=1393375&r2=1393376&view=diff ============================================================================== --- tomcat/sandbox/trunk-resources/webapps/docs/manager-howto.xml (original) +++ tomcat/sandbox/trunk-resources/webapps/docs/manager-howto.xml Wed Oct 3 09:38:08 2012 @@ -1371,98 +1371,6 @@ http://webserver/manager/jmxproxy/?invok http://localhost:8080/manager/jmxproxy/?invoke=Catalina%3Atype%3DService&op=findConnectors&ps= </source> </subsection> - <subsection name="Multiple operations" anchor="multiOp"> - <p> - The JMXProxyServlet can also perform certain combinations of - operations with a single HTTP request: - </p> - <ul> - <li><code>invoke</code> and <code>set</code></li> - <li><code>invoke</code> and <code>get</code></li> - <li><code>get</code> and <code>invoke</code></li> - <li><code>get</code> and <code>set</code></li> - </ul> - <subsection name="Invoke and set" anchor="invokeAndSet"> - <p> - If you want to invoke an operation and then set a value, add an - <code>invokeAndSet</code> parameter to the request and make sure you - have all the required parameters for both the <code>invoke</code> - and <code>set</code> commands: - </p> - <source> -http://webserver/manager/jmxproxy/?invokeAndSet&invoke=BEANNAME&op=METHODNAME&ps=COMMASEPARATEDPARAMETERS&set=BEANNAME&att=MYATTRIBUTE&val=NEWVALUE - </source> - <p> - Note that you can use different target MBeans if you want to, because - the <code>invoke</code> and <code>set</code> parameters can obviously - have different values. - </p> - </subsection> - <subsection name="Invoke and get" anchor="invokeAndGet"> - <p> - If you want to invoke an operation and then get a value, add an - <code>invokeAndGet</code> parameter to the request and make sure you - have all the required parameters for both the <code>invoke</code> - and <code>get</code> commands: - </p> - <source> -http://webserver/manager/jmxproxy/?invokeAndGet&invoke=BEANNAME&op=METHODNAME&ps=COMMASEPARATEDPARAMETERS&get=BEANNAME&att=MYATTRIBUTE[&key=MYKEY (optional)] - </source> - <p> - Note that you can use different target MBeans if you want to, because - the <code>invoke</code> and <code>get</code> parameters can obviously - have different values. - </p> - </subsection> - <subsection name="Get and invoke" anchor="getAndInvoke"> - <p> - If you want to get a value and then invoke an operation, add a - <code>getAndInvoke</code> parameter to the request and make sure you - have all the required parameters for both the <code>invoke</code> - and <code>get</code> commands: - </p> - <source> -http://webserver/manager/jmxproxy/?getAndInvoke&invoke=BEANNAME&op=METHODNAME&ps=COMMASEPARATEDPARAMETERS&get=BEANNAME&att=MYATTRIBUTE[&key=MYKEY (optional)] - </source> - <p> - Here is an example of how to get the current value of a request - processor's "maxTime" metric and then reset all the metrics counters: - </p> - <source> -http://webserver/manager/jmxproxy?getAndInvoke&invoke=Catalina:type=GlobalRequestProcessor,name="http-nio-127.0.0.1-8080"&op=resetCounters&get=Catalina:type=GlobalRequestProcessor,name="http-nio-127.0.0.1-8080"&att=maxTime - </source> - <p> - Note that you can use different target MBeans if you want to, because - the <code>invoke</code> and <code>get</code> parameters can obviously - have different values. - </p> - </subsection> - <subsection name="Get and set" anchor="getAndSet"> - <p> - If you want to get a value and then set a value, add a - <code>getAndSet</code> parameter to the request and make sure you - have all the required parameters for both the <code>get</code> - and <code>set</code> commands: - </p> - <source> -http://webserver/manager/jmxproxy/?getAndSet&get=BEANNAME&att=MYATTRIBUTE[&key=MYKEY (optional)]&set=BEANNAME&val=NEWVALUE - </source> - <p> - Here is an example of how to get the current value of a request - processor's "maxTime" metric and then set that value to 0: - </p> - <source> -http://webserver/manager/jmxproxy?getAndSet&get=Catalina:type=GlobalRequestProcessor,name="http-nio-127.0.0.1-8080"&att=maxTime&set=Catalina:type=GlobalRequestProcessor,name="http-nio-127.0.0.1-8080"&val=0 - </source> - <p> - Note that you can use different target MBeans if you want to, because - the <code>invoke</code> and <code>get</code> parameters can obviously - have different values, <b>but you must use the same attribtue name for - both</b> because both the <code>get</code> and <code>set</code> commands - both use the <code>att</code> parameter to identify the MBean attribute. - </p> - </subsection> - </subsection> </section> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org