Author: markt
Date: Thu Sep 20 10:46:53 2012
New Revision: 1387959
URL: http://svn.apache.org/viewvc?rev=1387959&view=rev
Log:
Sync with trunk
Modified:
tomcat/sandbox/trunk-resources/ (props changed)
tomcat/sandbox/trunk-resources/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java
tomcat/sandbox/trunk-resources/java/org/apache/coyote/AsyncStateMachine.java
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/collections/
(props changed)
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallMethodRule.java
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallParamRule.java
tomcat/sandbox/trunk-resources/res/findbugs/filter-false-positives.xml
tomcat/sandbox/trunk-resources/webapps/docs/config/cluster-interceptor.xml
Propchange: tomcat/sandbox/trunk-resources/
------------------------------------------------------------------------------
Merged /tomcat/trunk:r1386495-1387958
Modified:
tomcat/sandbox/trunk-resources/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java?rev=1387959&r1=1387958&r2=1387959&view=diff
==============================================================================
---
tomcat/sandbox/trunk-resources/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java
(original)
+++
tomcat/sandbox/trunk-resources/java/org/apache/catalina/tribes/group/interceptors/TcpPingInterceptor.java
Thu Sep 20 10:46:53 2012
@@ -65,7 +65,7 @@ public class TcpPingInterceptor extends
public synchronized void start(int svc) throws ChannelException {
super.start(svc);
running = true;
- if ( thread == null ) {
+ if ( thread == null && useThread) {
thread = new PingThread();
thread.setDaemon(true);
thread.setName("TcpPingInterceptor.PingThread-"+cnt.addAndGet(1));
@@ -87,8 +87,10 @@ public class TcpPingInterceptor extends
@Override
public void stop(int svc) throws ChannelException {
running = false;
- if ( thread != null ) thread.interrupt();
- thread = null;
+ if ( thread != null ) {
+ thread.interrupt();
+ thread = null;
+ }
super.stop(svc);
}
Modified:
tomcat/sandbox/trunk-resources/java/org/apache/coyote/AsyncStateMachine.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/coyote/AsyncStateMachine.java?rev=1387959&r1=1387958&r2=1387959&view=diff
==============================================================================
---
tomcat/sandbox/trunk-resources/java/org/apache/coyote/AsyncStateMachine.java
(original)
+++
tomcat/sandbox/trunk-resources/java/org/apache/coyote/AsyncStateMachine.java
Thu Sep 20 10:46:53 2012
@@ -101,7 +101,7 @@ public class AsyncStateMachine<S> {
DISPATCHED(false, false, false),
STARTING(true, true, false),
STARTED(true, true, false),
- MUST_COMPLETE(true, true, false),
+ MUST_COMPLETE(true, false, false),
COMPLETING(true, false, false),
TIMING_OUT(true, false, false),
MUST_DISPATCH(true, true, true),
Propchange:
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/collections/
('bugtraq:append' removed)
Propchange:
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/collections/
('bugtraq:label' removed)
Propchange:
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/collections/
('bugtraq:message' removed)
Propchange:
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/collections/
('bugtraq:url' removed)
Modified:
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallMethodRule.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallMethodRule.java?rev=1387959&r1=1387958&r2=1387959&view=diff
==============================================================================
---
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallMethodRule.java
(original)
+++
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallMethodRule.java
Thu Sep 20 10:46:53 2012
@@ -108,7 +108,7 @@ public class CallMethodRule extends Rule
this.paramTypes[i] = String.class;
}
}
-
+ this.paramClassNames = null;
}
/**
@@ -193,8 +193,9 @@ public class CallMethodRule extends Rule
if (paramTypes == null) {
this.paramTypes = new Class[paramCount];
for (int i = 0; i < this.paramTypes.length; i++) {
- this.paramTypes[i] = "abc".getClass();
+ this.paramTypes[i] = String.class;
}
+ this.paramClassNames = null;
} else {
// copy the parameter class names into an array
// the classes will be loaded when the digester is set
@@ -261,7 +262,7 @@ public class CallMethodRule extends Rule
if (paramTypes == null) {
this.paramTypes = new Class[paramCount];
for (int i = 0; i < this.paramTypes.length; i++) {
- this.paramTypes[i] = "abc".getClass();
+ this.paramTypes[i] = String.class;
}
} else {
this.paramTypes = new Class[paramTypes.length];
@@ -269,7 +270,7 @@ public class CallMethodRule extends Rule
this.paramTypes[i] = paramTypes[i];
}
}
-
+ this.paramClassNames = null;
}
@@ -287,12 +288,12 @@ public class CallMethodRule extends Rule
* top of the digester object stack. The default value of zero
* means the target object is the one on top of the stack.
*/
- protected int targetOffset = 0;
+ protected final int targetOffset;
/**
* The method name to call on the parent object.
*/
- protected String methodName = null;
+ protected final String methodName;
/**
@@ -300,7 +301,7 @@ public class CallMethodRule extends Rule
* If this value is zero, a single parameter will be collected from the
* body of this element.
*/
- protected int paramCount = 0;
+ protected final int paramCount;
/**
@@ -312,7 +313,7 @@ public class CallMethodRule extends Rule
* The names of the classes of the parameters to be collected.
* This attribute allows creation of the classes to be postponed until the
digester is set.
*/
- protected String paramClassNames[] = null;
+ protected final String paramClassNames[];
/**
* Should <code>MethodUtils.invokeExactMethod</code> be used for
reflection.
@@ -419,6 +420,7 @@ public class CallMethodRule extends Rule
* @param name the local name if the parser is namespace aware, or just
* the element name otherwise
*/
+ @SuppressWarnings("null") // parameters can't trigger NPE
@Override
public void end(String namespace, String name) throws Exception {
@@ -456,7 +458,7 @@ public class CallMethodRule extends Rule
parameters[0] = bodyText;
if (paramTypes.length == 0) {
paramTypes = new Class[1];
- paramTypes[0] = "abc".getClass();
+ paramTypes[0] = String.class;
}
}
Modified:
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallParamRule.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallParamRule.java?rev=1387959&r1=1387958&r2=1387959&view=diff
==============================================================================
---
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallParamRule.java
(original)
+++
tomcat/sandbox/trunk-resources/java/org/apache/tomcat/util/digester/CallParamRule.java
Thu Sep 20 10:46:53 2012
@@ -51,9 +51,7 @@ public class CallParamRule extends Rule
* @param paramIndex The zero-relative parameter number
*/
public CallParamRule(int paramIndex) {
-
this(paramIndex, null);
-
}
@@ -66,10 +64,7 @@ public class CallParamRule extends Rule
*/
public CallParamRule(int paramIndex,
String attributeName) {
-
- this.paramIndex = paramIndex;
- this.attributeName = attributeName;
-
+ this(attributeName, paramIndex, 0, false);
}
@@ -80,10 +75,7 @@ public class CallParamRule extends Rule
* @param fromStack should this parameter be taken from the top of the
stack?
*/
public CallParamRule(int paramIndex, boolean fromStack) {
-
- this.paramIndex = paramIndex;
- this.fromStack = fromStack;
-
+ this(null, paramIndex, 0, fromStack);
}
/**
@@ -95,36 +87,42 @@ public class CallParamRule extends Rule
* The zeroth object is the top of the stack, 1 is the next object down
and so on.
*/
public CallParamRule(int paramIndex, int stackIndex) {
+ this(null, paramIndex, stackIndex, true);
+ }
+ private CallParamRule(String attributeName, int paramIndex, int stackIndex,
+ boolean fromStack) {
+ this.attributeName = attributeName;
this.paramIndex = paramIndex;
- this.fromStack = true;
this.stackIndex = stackIndex;
+ this.fromStack = fromStack;
}
+
// ----------------------------------------------------- Instance Variables
/**
* The attribute from which to save the parameter value
*/
- protected String attributeName = null;
+ protected final String attributeName;
/**
* The zero-relative index of the parameter we are saving.
*/
- protected int paramIndex = 0;
+ protected final int paramIndex;
/**
* Is the parameter to be set from the stack?
*/
- protected boolean fromStack = false;
+ protected final boolean fromStack;
/**
* The position of the object from the top of the stack
*/
- protected int stackIndex = 0;
+ protected final int stackIndex;
/**
* Stack is used to allow nested body text to be processed.
Modified: tomcat/sandbox/trunk-resources/res/findbugs/filter-false-positives.xml
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/res/findbugs/filter-false-positives.xml?rev=1387959&r1=1387958&r2=1387959&view=diff
==============================================================================
--- tomcat/sandbox/trunk-resources/res/findbugs/filter-false-positives.xml
(original)
+++ tomcat/sandbox/trunk-resources/res/findbugs/filter-false-positives.xml Thu
Sep 20 10:46:53 2012
@@ -237,6 +237,12 @@
<Bug code="ST" />
</Match>
<Match>
+ <!-- NPE is desired as it indicates an error condition -->
+ <Class name="org.apache.tomcat.util.digester.CallMethodRule"/>
+ <Method name="end"/>
+ <Bug code="NP" />
+ </Match>
+ <Match>
<!-- Test really is for the same object rather than equality -->
<Class name="org.apache.tomcat.util.digester.Digester"/>
<Or>
Modified:
tomcat/sandbox/trunk-resources/webapps/docs/config/cluster-interceptor.xml
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/trunk-resources/webapps/docs/config/cluster-interceptor.xml?rev=1387959&r1=1387958&r2=1387959&view=diff
==============================================================================
--- tomcat/sandbox/trunk-resources/webapps/docs/config/cluster-interceptor.xml
(original)
+++ tomcat/sandbox/trunk-resources/webapps/docs/config/cluster-interceptor.xml
Thu Sep 20 10:46:53 2012
@@ -55,6 +55,7 @@
<li><code>org.apache.catalina.tribes.group.interceptors.DomainFilterInterceptor</code></li>
<li><code>org.apache.catalina.tribes.group.interceptors.FragmentationInterceptor</code></li>
<li><code>org.apache.catalina.tribes.group.interceptors.GzipInterceptor</code></li>
+
<li><code>org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor</code></li>
</ul>
</p>
</section>
@@ -143,6 +144,20 @@
<attributes>
</attributes>
</subsection>
+ <subsection
name="org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor
Attributes">
+ <attributes>
+ <attribute name="interval" required="false">
+ If useThread == true, defines the interval of sending a ping message.
+ default is 1000 ms.
+ </attribute>
+ <attribute name="useThread" required="false">
+ Flag of whether to start a thread for sending a ping message.
+ If set to true, this interceptor will start a local thread for sending
a ping message.
+ if set to false, channel heartbeat will send a ping message.
+ default is false.
+ </attribute>
+ </attributes>
+ </subsection>
<subsection
name="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor
Attributes">
<attributes>
<attribute name="interval" required="false">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]