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: [email protected]
For additional commands, e-mail: [email protected]