Re: svn commit: r1379091 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/el/parser/AstValue.java test/org/apache/el/TestMethodExpressionImpl.java

2012-08-31 Thread Konstantin Kolinko
2012/9/1 Mark Thomas :
> On 31/08/2012 12:37, Konstantin Kolinko wrote:
>> 2012/8/30  :
>>> Author: markt
>>> Date: Thu Aug 30 19:44:46 2012
>>> New Revision: 1379091
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1379091&view=rev
>>> Log:
>>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53792
>>> Support method expressions that include a method call that is not at the 
>>> end of the expression
>>>
>>> Modified:
>>> tomcat/tc7.0.x/trunk/   (props changed)
>>> tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java
>>> tomcat/tc7.0.x/trunk/test/org/apache/el/TestMethodExpressionImpl.java
>>>
>>> --- tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java (original)
>>> +++ tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java Thu Aug 30 
>>> >>>  ctx.setPropertyResolved(false);
>>
>> The above was previously called before calling resolver.getValue(),
>> but now it is not called neither before resolver.invoke(), nor before
>> resolver.getValue().
>
> The calls are unnecessary. The CompositeELResolver sets the property to
> false at the start of both of those methods and the Resolver
> implementations are responsible for setting it if they find a match.

This relies on the fact that ELContext.getResolver() is an instance of
CompositeELResolver. Other resolvers do not set this flag to false.

The API itself (ELContext, ELContextImpl(ELResolver)) allows any resolver type.

Though it would seem strange if one uses a non-CompositeELResolver
here, as this would omit some features of the EL language.

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379666 - /tomcat/trunk/java/org/apache/catalina/ha/jmx/

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 23:40:18 2012
New Revision: 1379666

URL: http://svn.apache.org/viewvc?rev=1379666&view=rev
Log:
Remove unused code

Removed:
tomcat/trunk/java/org/apache/catalina/ha/jmx/


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379665 - in /tomcat/trunk/java/org/apache/catalina/ha: deploy/mbeans-descriptors.xml jmx/ClusterJmxHelper.java tcp/SimpleTcpCluster.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 23:39:42 2012
New Revision: 1379665

URL: http://svn.apache.org/viewvc?rev=1379665&view=rev
Log:
Switch SimpleTcpCluster to JMX registration via LifecycleMBeanBase and add JMX 
support to the FarmWarDeployer.
Deprecate the now unused cluster JMX helper.

Modified:
tomcat/trunk/java/org/apache/catalina/ha/deploy/mbeans-descriptors.xml
tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java
tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/mbeans-descriptors.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/deploy/mbeans-descriptors.xml?rev=1379665&r1=1379664&r2=1379665&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/deploy/mbeans-descriptors.xml 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/deploy/mbeans-descriptors.xml Fri 
Aug 31 23:39:42 2012
@@ -19,10 +19,10 @@
   
+type="org.apache.catalina.ha.deploy.FarmWarDeployer">
 
+  
 

Modified: tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java?rev=1379665&r1=1379664&r2=1379665&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java Fri Aug 
31 23:39:42 2012
@@ -32,7 +32,11 @@ import org.apache.tomcat.util.modeler.Re
 /**
  *
  * @author Filip Hanik
+ *
+ * @deprecated  Unused - registration now happens via
+ *  {@link org.apache.catalina.util.LifecycleMBeanBase}
  */
+@Deprecated
 public class ClusterJmxHelper {
 
 protected static final Registry registry = Registry.getRegistry(null,null);

Modified: tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java?rev=1379665&r1=1379664&r2=1379665&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java Fri Aug 
31 23:39:42 2012
@@ -25,6 +25,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import javax.management.ObjectName;
+
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
@@ -40,7 +42,6 @@ import org.apache.catalina.ha.ClusterLis
 import org.apache.catalina.ha.ClusterManager;
 import org.apache.catalina.ha.ClusterMessage;
 import org.apache.catalina.ha.ClusterValve;
-import org.apache.catalina.ha.jmx.ClusterJmxHelper;
 import org.apache.catalina.ha.session.ClusterSessionListener;
 import org.apache.catalina.ha.session.DeltaManager;
 import org.apache.catalina.ha.session.JvmRouteBinderValve;
@@ -53,7 +54,7 @@ import org.apache.catalina.tribes.Member
 import org.apache.catalina.tribes.group.GroupChannel;
 import 
org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor;
 import org.apache.catalina.tribes.group.interceptors.TcpFailureDetector;
-import org.apache.catalina.util.LifecycleBase;
+import org.apache.catalina.util.LifecycleMBeanBase;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.IntrospectionUtils;
@@ -71,8 +72,9 @@ import org.apache.tomcat.util.res.String
  * @author Peter Rossbach
  * @version $Id$
  */
-public class SimpleTcpCluster extends LifecycleBase implements CatalinaCluster,
-LifecycleListener, MembershipListener, ChannelListener{
+public class SimpleTcpCluster extends LifecycleMBeanBase
+implements CatalinaCluster, LifecycleListener, MembershipListener,
+ChannelListener{
 
 public static final Log log = LogFactory.getLog(SimpleTcpCluster.class);
 
@@ -140,6 +142,7 @@ public class SimpleTcpCluster extends Li
 private final List valves = new ArrayList<>();
 
 private org.apache.catalina.ha.ClusterDeployer clusterDeployer;
+private ObjectName onameClusterDeployer;
 
 /**
  * Listeners of messages
@@ -598,11 +601,20 @@ public class SimpleTcpCluster extends Li
 log.trace(sm.getString("SimpleTcpCluster.event.log", 
lifecycleEvent.getType(), lifecycleEvent.getData()));
 }
 
+
 // -- public
 
 @Override
-protected void initInternal() {
-// NOOP
+protected void initInternal() throws LifecycleException {
+super.initInternal();
+if (clusterDeployer != null) {
+StringBuilder name = new StringBuilder("type=ClusterDeployer");
+Container container = getContainer();
+if (container 

svn commit: r1379649 - /tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 22:36:39 2012
New Revision: 1379649

URL: http://svn.apache.org/viewvc?rev=1379649&view=rev
Log:
ClusterSingleSignOn extends LifecycleMBeanBase so it registers itself

Modified:
tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java?rev=1379649&r1=1379648&r2=1379649&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java Fri Aug 
31 22:36:39 2012
@@ -23,7 +23,6 @@ import javax.management.ObjectName;
 
 import org.apache.catalina.core.StandardEngine;
 import org.apache.catalina.core.StandardHost;
-import org.apache.catalina.ha.authenticator.ClusterSingleSignOn;
 import org.apache.catalina.ha.deploy.FarmWarDeployer;
 import org.apache.catalina.ha.tcp.SimpleTcpCluster;
 import org.apache.juli.logging.Log;
@@ -82,7 +81,6 @@ public class ClusterJmxHelper {
 protected static void initDefaultCluster() {
 initMetaData(SimpleTcpCluster.class);
 initMetaData(FarmWarDeployer.class); //not functional yet
-initMetaData(ClusterSingleSignOn.class); //not functional yet
 }
 
 public static boolean registerDefaultCluster(SimpleTcpCluster cluster)  {



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379647 - /tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 22:33:40 2012
New Revision: 1379647

URL: http://svn.apache.org/viewvc?rev=1379647&view=rev
Log:
DeltaManager extends LifecycleMBeanBase so it registers itself

Modified:
tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java?rev=1379647&r1=1379646&r2=1379647&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/jmx/ClusterJmxHelper.java Fri Aug 
31 22:33:40 2012
@@ -25,7 +25,6 @@ import org.apache.catalina.core.Standard
 import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.ha.authenticator.ClusterSingleSignOn;
 import org.apache.catalina.ha.deploy.FarmWarDeployer;
-import org.apache.catalina.ha.session.DeltaManager;
 import org.apache.catalina.ha.tcp.SimpleTcpCluster;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
@@ -82,7 +81,6 @@ public class ClusterJmxHelper {
 
 protected static void initDefaultCluster() {
 initMetaData(SimpleTcpCluster.class);
-initMetaData(DeltaManager.class);
 initMetaData(FarmWarDeployer.class); //not functional yet
 initMetaData(ClusterSingleSignOn.class); //not functional yet
 }



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379639 - /tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 22:18:37 2012
New Revision: 1379639

URL: http://svn.apache.org/viewvc?rev=1379639&view=rev
Log:
Remove completed FIXME

Modified:
tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java?rev=1379639&r1=1379638&r2=1379639&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java Fri Aug 
31 22:18:37 2012
@@ -64,7 +64,6 @@ import org.apache.tomcat.util.res.String
  * setting up a cluster and provides callers with a valid multicast
  * receiver/sender.
  *
- * FIXME remove install/remove/start/stop context dummys
  * FIXME wrote testcases
  *
  * @author Filip Hanik



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Tagging 7.0.30

2012-08-31 Thread Mark Thomas
On 31/08/2012 17:06, Mark Thomas wrote:
> I am seeing a repeatable failure of a Comet test (stop
> connector) with APR on Linux. I want to take a look at this before
> tagging 7.0.30.

Unit tests now passing consistently on my local Linux and Windows
systems (as well as buildbot).

I am running the TCKs now. If they pass, I'll tag current tc7.0.x/trunk
as 7.0.30.

Mark


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379591 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/el/parser/AstValue.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 20:34:44 2012
New Revision: 1379591

URL: http://svn.apache.org/viewvc?rev=1379591&view=rev
Log:
Remove unnecessary method calls. The Resolvers manage this flag.

Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java

Propchange: tomcat/tc7.0.x/trunk/
--
  Merged /tomcat/trunk:r1379590

Modified: tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java?rev=1379591&r1=1379590&r2=1379591&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java Fri Aug 31 
20:34:44 2012
@@ -80,7 +80,6 @@ public final class AstValue extends Simp
 @Override
 public Class getType(EvaluationContext ctx) throws ELException {
 Target t = getTarget(ctx);
-ctx.setPropertyResolved(false);
 Class result = ctx.getELResolver().getType(ctx, t.base, t.property);
 if (!ctx.isPropertyResolved()) {
 throw new PropertyNotFoundException(MessageFactory.get(
@@ -118,7 +117,6 @@ public final class AstValue extends Simp
 } else if (i + 2 == propCount &&
 this.children[i + 1] instanceof AstMethodParameters) {
 // Method call at end of expression
-ctx.setPropertyResolved(false);
 property = this.children[i].getValue(ctx);
 i += 2;
 
@@ -134,7 +132,6 @@ public final class AstValue extends Simp
 
 } else {
 // Object with property at end of expression
-ctx.setPropertyResolved(false);
 property = this.children[i].getValue(ctx);
 i++;
 
@@ -178,7 +175,6 @@ public final class AstValue extends Simp
 return null;
 }
 
-ctx.setPropertyResolved(false);
 base = resolver.getValue(ctx, base, suffix);
 i++;
 }
@@ -193,7 +189,6 @@ public final class AstValue extends Simp
 @Override
 public boolean isReadOnly(EvaluationContext ctx) throws ELException {
 Target t = getTarget(ctx);
-ctx.setPropertyResolved(false);
 boolean result =
 ctx.getELResolver().isReadOnly(ctx, t.base, t.property);
 if (!ctx.isPropertyResolved()) {
@@ -207,7 +202,6 @@ public final class AstValue extends Simp
 public void setValue(EvaluationContext ctx, Object value)
 throws ELException {
 Target t = getTarget(ctx);
-ctx.setPropertyResolved(false);
 ELResolver resolver = ctx.getELResolver();
 
 // coerce to the expected type



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379590 - /tomcat/trunk/java/org/apache/el/parser/AstValue.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 20:33:44 2012
New Revision: 1379590

URL: http://svn.apache.org/viewvc?rev=1379590&view=rev
Log:
Remove unnecessary method calls. The Resolvers manage this flag.

Modified:
tomcat/trunk/java/org/apache/el/parser/AstValue.java

Modified: tomcat/trunk/java/org/apache/el/parser/AstValue.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstValue.java?rev=1379590&r1=1379589&r2=1379590&view=diff
==
--- tomcat/trunk/java/org/apache/el/parser/AstValue.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/AstValue.java Fri Aug 31 20:33:44 
2012
@@ -80,7 +80,6 @@ public final class AstValue extends Simp
 @Override
 public Class getType(EvaluationContext ctx) throws ELException {
 Target t = getTarget(ctx);
-ctx.setPropertyResolved(false);
 Class result = ctx.getELResolver().getType(ctx, t.base, t.property);
 if (!ctx.isPropertyResolved()) {
 throw new PropertyNotFoundException(MessageFactory.get(
@@ -118,7 +117,6 @@ public final class AstValue extends Simp
 } else if (i + 2 == propCount &&
 this.children[i + 1] instanceof AstMethodParameters) {
 // Method call at end of expression
-ctx.setPropertyResolved(false);
 property = this.children[i].getValue(ctx);
 i += 2;
 
@@ -134,7 +132,6 @@ public final class AstValue extends Simp
 
 } else {
 // Object with property at end of expression
-ctx.setPropertyResolved(false);
 property = this.children[i].getValue(ctx);
 i++;
 
@@ -178,7 +175,6 @@ public final class AstValue extends Simp
 return null;
 }
 
-ctx.setPropertyResolved(false);
 base = resolver.getValue(ctx, base, suffix);
 i++;
 }
@@ -193,7 +189,6 @@ public final class AstValue extends Simp
 @Override
 public boolean isReadOnly(EvaluationContext ctx) throws ELException {
 Target t = getTarget(ctx);
-ctx.setPropertyResolved(false);
 boolean result =
 ctx.getELResolver().isReadOnly(ctx, t.base, t.property);
 if (!ctx.isPropertyResolved()) {
@@ -207,7 +202,6 @@ public final class AstValue extends Simp
 public void setValue(EvaluationContext ctx, Object value)
 throws ELException {
 Target t = getTarget(ctx);
-ctx.setPropertyResolved(false);
 ELResolver resolver = ctx.getELResolver();
 
 // coerce to the expected type



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1379091 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/el/parser/AstValue.java test/org/apache/el/TestMethodExpressionImpl.java

2012-08-31 Thread Mark Thomas
On 31/08/2012 12:37, Konstantin Kolinko wrote:
> 2012/8/30  :
>> Author: markt
>> Date: Thu Aug 30 19:44:46 2012
>> New Revision: 1379091
>>
>> URL: http://svn.apache.org/viewvc?rev=1379091&view=rev
>> Log:
>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53792
>> Support method expressions that include a method call that is not at the end 
>> of the expression
>>
>> Modified:
>> tomcat/tc7.0.x/trunk/   (props changed)
>> tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java
>> tomcat/tc7.0.x/trunk/test/org/apache/el/TestMethodExpressionImpl.java
>>
>> Propchange: tomcat/tc7.0.x/trunk/
>> --
>>   Merged /tomcat/trunk:r1379090
>>
>> Modified: tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java?rev=1379091&r1=1379090&r2=1379091&view=diff
>> ==
>> --- tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java (original)
>> +++ tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java Thu Aug 30 
>> 19:44:46 2012
>> @@ -103,39 +103,52 @@ public final class AstValue extends Simp
>>  Object property = null;
>>  int propCount = this.jjtGetNumChildren();
>>
>> -if (propCount > 2 &&
>> -this.jjtGetChild(propCount - 1) instanceof 
>> AstMethodParameters) {
>> -// Method call with paramaters.
>> -propCount-=2;
>> -} else {
>> -propCount--;
>> -}
>>  int i = 1;
>> -
>> -// evaluate any properties before our target
>> +// Evaluate any properties or methods before our target
>>  ELResolver resolver = ctx.getELResolver();
>> -if (propCount > 1) {
>> -while (base != null && i < propCount) {
>> -property = this.children[i].getValue(ctx);
>> +while (i < propCount) {
>> +if (i + 2 < propCount &&
>> +this.children[i + 1] instanceof AstMethodParameters) {
>> +// Method call not at end of expression
>> +base = resolver.invoke(ctx, base,
>> +this.children[i].getValue(ctx), null,
>> +((AstMethodParameters)
>> +this.children[i + 1]).getParameters(ctx));
>> +i += 2;
>> +} else if (i + 2 == propCount &&
>> +this.children[i + 1] instanceof AstMethodParameters) {
>> +// Method call at end of expression
>>  ctx.setPropertyResolved(false);
> 
> The above was previously called before calling resolver.getValue(),
> but now it is not called neither before resolver.invoke(), nor before
> resolver.getValue().

The calls are unnecessary. The CompositeELResolver sets the property to
false at the start of both of those methods and the Resolver
implementations are responsible for setting it if they find a match.

Mark


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379582 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/coyote/http11/Http11AprProtocol.java java/org/apache/tomcat/util/net/AprEndpoint.java java/org/apache/tomcat/util/net/res/LocalStrin

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 20:20:54 2012
New Revision: 1379582

URL: http://svn.apache.org/viewvc?rev=1379582&view=rev
Log:
Yet another attempt to fix Comet test failures for Connector stop.
If the endpoint is stopped - don't add sockets to the poller (it may have been 
stopped already) and process the STOP event directly.
If the connector stop has completed then the executor may be null so protect 
against NPEs and log when a socket couldn't be processed.

Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java

tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/res/LocalStrings.properties
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Propchange: tomcat/tc7.0.x/trunk/
--
  Merged /tomcat/trunk:r1379580

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?rev=1379582&r1=1379581&r2=1379582&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java 
Fri Aug 31 20:20:54 2012
@@ -27,6 +27,7 @@ import org.apache.juli.logging.LogFactor
 import org.apache.tomcat.util.net.AbstractEndpoint;
 import org.apache.tomcat.util.net.AprEndpoint;
 import org.apache.tomcat.util.net.AprEndpoint.Handler;
+import org.apache.tomcat.util.net.SocketStatus;
 import org.apache.tomcat.util.net.SocketWrapper;
 
 
@@ -266,6 +267,11 @@ public class Http11AprProtocol extends A
 ((AprEndpoint) proto.endpoint).getCometPoller().add(
 socket.getSocket().longValue(),
 proto.endpoint.getSoTimeout());
+} else {
+// Process a STOP directly
+((AprEndpoint) proto.endpoint).processSocket(
+socket.getSocket().longValue(),
+SocketStatus.STOP);
 }
 } else {
 // Upgraded

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1379582&r1=1379581&r2=1379582&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri 
Aug 31 20:20:54 2012
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.Executor;
 import java.util.concurrent.RejectedExecutionException;
 
 import org.apache.juli.logging.Log;
@@ -842,9 +843,15 @@ public class AprEndpoint extends Abstrac
  */
 protected boolean processSocket(long socket) {
 try {
-SocketWrapper wrapper =
-new SocketWrapper(Long.valueOf(socket));
-getExecutor().execute(new SocketProcessor(wrapper, null));
+Executor executor = getExecutor();
+if (executor == null) {
+log.warn(sm.getString("endpoint.warn.noExector",
+Long.valueOf(socket), null));
+} else {
+SocketWrapper wrapper =
+new SocketWrapper(Long.valueOf(socket));
+executor.execute(new SocketProcessor(wrapper, null));
+}
 } catch (RejectedExecutionException x) {
 log.warn("Socket processing request was rejected for:"+socket,x);
 return false;
@@ -862,11 +869,17 @@ public class AprEndpoint extends Abstrac
 /**
  * Process given socket for an event.
  */
-protected boolean processSocket(long socket, SocketStatus status) {
+public boolean processSocket(long socket, SocketStatus status) {
 try {
-SocketWrapper wrapper =
-new SocketWrapper(Long.valueOf(socket));
-getExecutor().execute(new SocketEventProcessor(wrapper, status));
+Executor executor = getExecutor();
+if (executor == null) {
+log.warn(sm.getString("endpoint.warn.noExector",
+Long.valueOf(socket), status));
+} else {
+SocketWrapper wrapper =
+new SocketWrapper(Long.valueOf(socket));
+executor.execute(new SocketEventProcessor(wrapper, status));
+}
 } catch (RejectedExecutionException x) {
 log.warn("Socket pr

svn commit: r1379580 - in /tomcat/trunk/java/org/apache: coyote/http11/Http11AprProtocol.java tomcat/util/net/AprEndpoint.java tomcat/util/net/res/LocalStrings.properties

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 20:19:12 2012
New Revision: 1379580

URL: http://svn.apache.org/viewvc?rev=1379580&view=rev
Log:
Yet another attempt to fix Comet test failures for Connector stop.
If the endpoint is stopped - don't add sockets to the poller (it may have been 
stopped already) and process the STOP event directly.
If the connector stop has completed then the executor may be null so protect 
against NPEs and log when a socket couldn't be processed.

Modified:
tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
tomcat/trunk/java/org/apache/tomcat/util/net/res/LocalStrings.properties

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?rev=1379580&r1=1379579&r2=1379580&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Fri Aug 
31 20:19:12 2012
@@ -293,9 +293,16 @@ public class Http11AprProtocol extends A
 socket.setAsync(true);
 } else if (processor.isComet()) {
 // Comet
-((AprEndpoint) proto.endpoint).getCometPoller().add(
-socket.getSocket().longValue(),
-proto.endpoint.getSoTimeout());
+if (proto.endpoint.isRunning()) {
+((AprEndpoint) proto.endpoint).getCometPoller().add(
+socket.getSocket().longValue(),
+proto.endpoint.getSoTimeout());
+} else {
+// Process a STOP directly
+((AprEndpoint) proto.endpoint).processSocket(
+socket.getSocket().longValue(),
+SocketStatus.STOP);
+}
 } else {
 // Upgraded
 ((AprEndpoint) proto.endpoint).getPoller().add(

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1379580&r1=1379579&r2=1379580&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Aug 31 
20:19:12 2012
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.Executor;
 import java.util.concurrent.RejectedExecutionException;
 
 import org.apache.juli.logging.Log;
@@ -845,9 +846,15 @@ public class AprEndpoint extends Abstrac
  */
 protected boolean processSocket(long socket) {
 try {
-SocketWrapper wrapper =
-new SocketWrapper(Long.valueOf(socket));
-getExecutor().execute(new SocketProcessor(wrapper, null));
+Executor executor = getExecutor();
+if (executor == null) {
+log.warn(sm.getString("endpoint.warn.noExector",
+Long.valueOf(socket), null));
+} else {
+SocketWrapper wrapper =
+new SocketWrapper(Long.valueOf(socket));
+executor.execute(new SocketProcessor(wrapper, null));
+}
 } catch (RejectedExecutionException x) {
 log.warn("Socket processing request was rejected for:"+socket,x);
 return false;
@@ -865,11 +872,17 @@ public class AprEndpoint extends Abstrac
 /**
  * Process given socket for an event.
  */
-protected boolean processSocket(long socket, SocketStatus status) {
+public boolean processSocket(long socket, SocketStatus status) {
 try {
-SocketWrapper wrapper =
-new SocketWrapper(Long.valueOf(socket));
-getExecutor().execute(new SocketEventProcessor(wrapper, status));
+Executor executor = getExecutor();
+if (executor == null) {
+log.warn(sm.getString("endpoint.warn.noExector",
+Long.valueOf(socket), status));
+} else {
+SocketWrapper wrapper =
+new SocketWrapper(Long.valueOf(socket));
+executor.execute(new SocketEventProcessor(wrapper, status));
+}
 } catch (RejectedExecutionException x) {
 log.warn("Socket processing request was rejected for:"+socket,x);
 return false;
@@ -900,11 +913,14 @@ public class AprEndpoint extends Abstrac
 Thread.currentThread().setContextClassLoader(

svn commit: r1379577 - /tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml

2012-08-31 Thread olamy
Author: olamy
Date: Fri Aug 31 20:13:42 2012
New Revision: 1379577

URL: http://svn.apache.org/viewvc?rev=1379577&view=rev
Log:
fix chrome profile to run google chrome

Modified:

tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml

Modified: 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml?rev=1379577&r1=1379576&r2=1379577&view=diff
==
--- 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml
 Fri Aug 31 20:13:42 2012
@@ -204,7 +204,7 @@
 
   chrome
   
-*chrome
+*googlechrome
   
 
 



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379576 - /tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml

2012-08-31 Thread olamy
Author: olamy
Date: Fri Aug 31 20:13:31 2012
New Revision: 1379576

URL: http://svn.apache.org/viewvc?rev=1379576&view=rev
Log:
add safari profile for selenium tests

Modified:

tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml

Modified: 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml?rev=1379576&r1=1379575&r2=1379576&view=diff
==
--- 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/__rootArtifactId__-webapp-it/pom.xml
 Fri Aug 31 20:13:31 2012
@@ -214,6 +214,12 @@
   
 
 
+  safari
+  
+*safari
+  
+
+
   headless
   
 



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379575 - in /tomcat/maven-plugin/trunk: pom.xml tomcat-maven-archetype/src/main/resources/archetype-resources/pom.xml

2012-08-31 Thread olamy
Author: olamy
Date: Fri Aug 31 20:13:19 2012
New Revision: 1379575

URL: http://svn.apache.org/viewvc?rev=1379575&view=rev
Log:
use last surefire version

Modified:
tomcat/maven-plugin/trunk/pom.xml

tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/pom.xml

Modified: tomcat/maven-plugin/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/pom.xml?rev=1379575&r1=1379574&r2=1379575&view=diff
==
--- tomcat/maven-plugin/trunk/pom.xml (original)
+++ tomcat/maven-plugin/trunk/pom.xml Fri Aug 31 20:13:19 2012
@@ -24,7 +24,7 @@
   
 org.apache
 apache
-10
+11
   
 
   4.0.0
@@ -46,7 +46,7 @@
 2.0.11
 
 
false
-2.12.2
+2.12.3
 4.10
 2000
 false
@@ -69,6 +69,9 @@
 
 2008
 7.0.29
+
+
+
   
 
   
@@ -585,7 +588,7 @@
 
   org.apache.maven.plugins
   maven-surefire-plugin
-  2.12.2
+  2.12.3
 
 
   org.apache.maven.plugins

Modified: 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/pom.xml
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/pom.xml?rev=1379575&r1=1379574&r2=1379575&view=diff
==
--- 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/pom.xml
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat-maven-archetype/src/main/resources/archetype-resources/pom.xml
 Fri Aug 31 20:13:19 2012
@@ -46,7 +46,7 @@
 
   org.apache.maven.plugins
   maven-surefire-plugin
-  2.12.2
+  2.12.3
 
 
   org.apache.maven.plugins



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: Tagging 7.0.30

2012-08-31 Thread Mark Thomas
On 31/08/2012 00:05, Mark Thomas wrote:
> On 28/08/2012 02:24, Konstantin Kolinko wrote:
>> 2012/8/27 Mark Thomas :
>>> Hi,
>>>
>>> I have all the open bugs fixed for 7.0.x with the exception of BZ53469
>>> that is pending input from the Servlet EG before a final fix (if any) is
>>> applied.
>>>
>>> I have a few other bits and pieces I want to do before I tag 7.0.30 but
>>> (assuming no more bugs are opened) I anticipate tagging in the next few
>>> days. If you have anything you would like to see in 7.0.30 now is the
>>> time to commit :)
>>>
>>
>> FYI: All the unit tests do pass for current 7.0 (@ r1377910),
>>
>> except one memory leak protection test that failed once (it
>> happens/expected, nothing new here),
>> TestWebappClassLoaderExecutorMemoryLeak#testTimerThreadLeak
>>
>> Tested BIOxNIOxAPR (native 1.1.24) with JDK 6u34 32-bit on WinXP
> 
> Thanks for that confirmation.
> 
> I believe we are now good to tag 7.0.30. I'll run the TCKs before I tag.

Or maybe not. I am seeing a repeatable failure of a Comet test (stop
connector) with APR on Linux. I want to take a look at this before
tagging 7.0.30.

Mark


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379451 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/coyote/http11/filters/ChunkedInputFilter.java

2012-08-31 Thread kkolinko
Author: kkolinko
Date: Fri Aug 31 13:58:15 2012
New Revision: 1379451

URL: http://svn.apache.org/viewvc?rev=1379451&view=rev
Log:
Merged revision 1378322 from tomcat/trunk:
Correct Javadoc for code added in r423453
(s/after trailer mark/before trailer mark/,
and do not say 'trailer' as in the spec the term "trailer" has other meaning)

Modified:
tomcat/tc7.0.x/trunk/   (props changed)

tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java

Propchange: tomcat/tc7.0.x/trunk/
--
  Merged /tomcat/trunk:r1378322

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java?rev=1379451&r1=1379450&r2=1379451&view=diff
==
--- 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java
 (original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/filters/ChunkedInputFilter.java
 Fri Aug 31 13:58:15 2012
@@ -281,12 +281,14 @@ public class ChunkedInputFilter implemen
 
 /**
  * Parse the header of a chunk.
- * A chunk header can look like 
- * A10CRLF
+ * A chunk header can look like one of the following:
+ * A10CRLF
  * F23;chunk-extension to be ignoredCRLF
- * The letters before CRLF but after the trailer mark, must be valid hex 
digits, 
- * we should not parse F23IAMGONNAMESSTHISUP34CRLF as a valid header
- * according to spec
+ *
+ * 
+ * The letters before CRLF or ';' (whatever comes first) must be valid hex
+ * digits. We should not parse F23IAMGONNAMESSTHISUP34CRLF as a valid
+ * header according to the spec.
  */
 protected boolean parseChunkHeader()
 throws IOException {



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379432 - /tomcat/tc6.0.x/trunk/STATUS.txt

2012-08-31 Thread kkolinko
Author: kkolinko
Date: Fri Aug 31 12:52:35 2012
New Revision: 1379432

URL: http://svn.apache.org/viewvc?rev=1379432&view=rev
Log:
vote

Modified:
tomcat/tc6.0.x/trunk/STATUS.txt

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1379432&r1=1379431&r2=1379432&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Aug 31 12:52:35 2012
@@ -114,7 +114,7 @@ PATCHES PROPOSED TO BACKPORT:
   http://svn.apache.org/viewvc?view=revision&revision=1371298
   http://svn.apache.org/viewvc?view=revision&revision=1371302 (rolls-back 
inadvertent addition of TOMCAT-NEXT.txt)
   http://svn.apache.org/viewvc?view=revision&revision=1371620 (tab -> spaces)
-  +1: schultz
+  +1: schultz, kkolinko
   -1:
 
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48692
@@ -125,14 +125,8 @@ PATCHES PROPOSED TO BACKPORT:
 http://svn.apache.org/viewvc?view=revision&revision=1043983 (fixes 
formatting; improved documentation)
 http://svn.apache.org/viewvc?view=revision&revision=1049264 (improved 
javadoc)
   )
-  +1: schultz
-   0: kkolinko: r1041892 is not enough. It has bad formatting, a HashSet
-  protected field (should be 'Set'), etc. See the current code of Tomcat 7.
-  schultz: current trunk and TC7 code has HashSet. Am I 
misunderstanding?
-  kkolinko: If we missed it, then it has to be fixed in trunk. I think
-  a patch for 6.0 is needed to properly review the change here.
-
-  schultz: My new patch against 6.0.x should address kkolinko's concerns.
+  +1: schultz, kkolinko
+  -1:
 
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53725
   Fix possible corruption of GZIP'd output.



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1379178 - in /tomcat/trunk: java/org/apache/coyote/http11/ test/org/apache/coyote/http11/

2012-08-31 Thread Konstantin Kolinko
2012/8/31 Konstantin Kolinko :
> 2012/8/31  :
>> Author: markt
>> Date: Thu Aug 30 21:57:15 2012
>> New Revision: 1379178
>>
>> URL: http://svn.apache.org/viewvc?rev=1379178&view=rev
>> Log:
>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53677
>> Ensure a 500 response of the HTTP headers exceed the size limit
>>
>
>> --- tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java 
>> (original)
>> +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java Thu 
>> Aug 30 21:57:15 2012
>> @@ -250,7 +250,10 @@ public abstract class AbstractOutputBuff
>>
>>  // Recycle Request object
>>  response.recycle();
>> -
>> +// These will need to be reset if the reset was triggered by the 
>> error
>> +// handling if the headers were too large
>> +pos = 0;
>> +byteCount = 0;
>>  }
>
> There is a use case when there is custom error page for 401 response.
> In that case authentication headers are set before  custom error page
> is requested and have to be preserved.  (BZ 42409)
>
> I have yet to check it, but if that processing is broken by this, I will be 
> -1.

OK. I tested and there are no regressions from this.

The manager webapp still works (it uses a custom error 401 page), and
code reproducing BZ 42409 still works.


For record, here it is the difference between
1) org.apache.coyote.http11.AbstractOutputBuffer#reset()
Called from
<- org.apache.coyote.Response#reset()
 which does "headers.clear()" among other things
<- called by org.apache.catalina.connector.Response#reset()
<- implements javax.servlet.SevletResponse#reset()

which clears all, including the the headers,
and
2) org.apache.catalina.connector.OutputBuffer#reset()
<- called by org.apache.catalina.connector.Response#resetBuffer()
<- implements javax.servlet.SevletResponse#resetBuffer()

which clears the buffer only, leaving the headers and status code intact.

:)

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1379091 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/el/parser/AstValue.java test/org/apache/el/TestMethodExpressionImpl.java

2012-08-31 Thread Konstantin Kolinko
2012/8/30  :
> Author: markt
> Date: Thu Aug 30 19:44:46 2012
> New Revision: 1379091
>
> URL: http://svn.apache.org/viewvc?rev=1379091&view=rev
> Log:
> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53792
> Support method expressions that include a method call that is not at the end 
> of the expression
>
> Modified:
> tomcat/tc7.0.x/trunk/   (props changed)
> tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java
> tomcat/tc7.0.x/trunk/test/org/apache/el/TestMethodExpressionImpl.java
>
> Propchange: tomcat/tc7.0.x/trunk/
> --
>   Merged /tomcat/trunk:r1379090
>
> Modified: tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java?rev=1379091&r1=1379090&r2=1379091&view=diff
> ==
> --- tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java (original)
> +++ tomcat/tc7.0.x/trunk/java/org/apache/el/parser/AstValue.java Thu Aug 30 
> 19:44:46 2012
> @@ -103,39 +103,52 @@ public final class AstValue extends Simp
>  Object property = null;
>  int propCount = this.jjtGetNumChildren();
>
> -if (propCount > 2 &&
> -this.jjtGetChild(propCount - 1) instanceof 
> AstMethodParameters) {
> -// Method call with paramaters.
> -propCount-=2;
> -} else {
> -propCount--;
> -}
>  int i = 1;
> -
> -// evaluate any properties before our target
> +// Evaluate any properties or methods before our target
>  ELResolver resolver = ctx.getELResolver();
> -if (propCount > 1) {
> -while (base != null && i < propCount) {
> -property = this.children[i].getValue(ctx);
> +while (i < propCount) {
> +if (i + 2 < propCount &&
> +this.children[i + 1] instanceof AstMethodParameters) {
> +// Method call not at end of expression
> +base = resolver.invoke(ctx, base,
> +this.children[i].getValue(ctx), null,
> +((AstMethodParameters)
> +this.children[i + 1]).getParameters(ctx));
> +i += 2;
> +} else if (i + 2 == propCount &&
> +this.children[i + 1] instanceof AstMethodParameters) {
> +// Method call at end of expression
>  ctx.setPropertyResolved(false);

The above was previously called before calling resolver.getValue(),
but now it is not called neither before resolver.invoke(), nor before
resolver.getValue().

> +property = this.children[i].getValue(ctx);
> +i += 2;
> +
> +if (property == null) {
> +throw new PropertyNotFoundException(MessageFactory.get(
> +"error.unreachable.property", property));
> +}
> +} else if (i + 1 < propCount) {
> +// Object with property not at end of expression
> +property = this.children[i].getValue(ctx);
>  base = resolver.getValue(ctx, base, property);
>  i++;
> +
> +} else {
> +// Object with property at end of expression
> +ctx.setPropertyResolved(false);
> +property = this.children[i].getValue(ctx);
> +i++;
> +
> +if (property == null) {
> +throw new PropertyNotFoundException(MessageFactory.get(
> +"error.unreachable.property", property));
> +}
>  }
> -// if we are in this block, we have more properties to resolve,
> -// but our base was null
> -if (base == null || property == null) {
> +if (base == null) {
>  throw new PropertyNotFoundException(MessageFactory.get(
>  "error.unreachable.property", property));
>  }
>  }
>
> -property = this.children[i].getValue(ctx);
> -
> -if (property == null) {
> -throw new PropertyNotFoundException(MessageFactory.get(
> -"error.unreachable.property", this.children[i]));
> -}
> -
>  Target t = new Target();
>  t.base = base;
>  t.property = property;
>
> Modified: 
> tomcat/tc7.0.x/trunk/test/org/apache/el/TestMethodExpressionImpl.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/el/TestMethodExpressionImpl.java?rev=1379091&r1=1379090&r2=1379091&view=diff
> ==
> --- tomcat/tc7.0.x/trunk/test/org/apache/el/TestMethodExpressionImpl.java 
> (original)
> +++ tomcat/tc7.0.x/trun

Re: svn commit: r1379206 - /tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java

2012-08-31 Thread Mark Thomas
On 31/08/2012 12:05, Konstantin Kolinko wrote:
> 2012/8/31  :
>> Author: markt
>> Date: Thu Aug 30 22:55:20 2012
>> New Revision: 1379206
>>
>> URL: http://svn.apache.org/viewvc?rev=1379206&view=rev
>> Log:
>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53801
>> Overlapping URL patterns were sometimes merged incorrectly in security 
>> constraints leading to incorrect 401 responses. Note: it was possible for 
>> access to be denied when it should have been granted but it was not possible 
>> for access to be granted when it should have been denied.
>>
>> Modified:
>> tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
>>
>> Modified: tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java?rev=1379206&r1=1379205&r2=1379206&view=diff
>> ==
>> --- tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java (original)
>> +++ tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Thu Aug 30 
>> 22:55:20 2012
>> @@ -629,14 +629,15 @@ public abstract class RealmBase extends
>>  }
>>  }
>>  if(matched) {
>> -found = true;
>>  if(length > longest) {
>> +found = false;
>>  if(results != null) {
>>  results.clear();
>>  }
>>  longest = length;
>>  }
>>  if(collection[j].findMethod(method)) {
>> +found = true;
>>  if(results == null) {
>>  results = new ArrayList<>();
>>  }
> 
> There are several loops over constraints, with
> [[[
>  if(found) {
>  return resultsToArray(results);
> }
> ]]]
> between them, and only one of such loops is fixed by this commit.

Correct. Only in one loop is there the possibility that a previously
found constraint will be removed. The bug was that the found flag was
not reset in this case and an empty set of constraints returned rather
than null.

Mark


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379420 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/coyote/http11/AbstractHttp11Processor.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 11:12:28 2012
New Revision: 1379420

URL: http://svn.apache.org/viewvc?rev=1379420&view=rev
Log:
Remove commented out code from a previous attempt to fix BZ53677

Modified:
tomcat/tc7.0.x/trunk/   (props changed)

tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java

Propchange: tomcat/tc7.0.x/trunk/
--
  Merged /tomcat/trunk:r1379418

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1379420&r1=1379419&r2=1379420&view=diff
==
--- 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
Fri Aug 31 11:12:28 2012
@@ -761,15 +761,7 @@ public abstract class AbstractHttp11Proc
 
 // Validate and write response headers
 try {
-//try {
-prepareResponse();
-//} catch (IllegalStateException e) {
-// Headers too big. Likely too late to do anything about it
-//response.reset();
-//response.setStatus(500);
-//response.setHeader("Connection", "close");
-//response.sendHeaders();
-//}
+prepareResponse();
 getOutputBuffer().commit();
 } catch (IOException e) {
 // Set error flag



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1379418 - /tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java

2012-08-31 Thread markt
Author: markt
Date: Fri Aug 31 11:10:56 2012
New Revision: 1379418

URL: http://svn.apache.org/viewvc?rev=1379418&view=rev
Log:
Remove commented out code from a previous attempt to fix BZ53677

Modified:
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1379418&r1=1379417&r2=1379418&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Fri 
Aug 31 11:10:56 2012
@@ -761,15 +761,7 @@ public abstract class AbstractHttp11Proc
 
 // Validate and write response headers
 try {
-//try {
-prepareResponse();
-//} catch (IllegalStateException e) {
-// Headers too big. Likely too late to do anything about it
-//response.reset();
-//response.setStatus(500);
-//response.setHeader("Connection", "close");
-//response.sendHeaders();
-//}
+prepareResponse();
 getOutputBuffer().commit();
 } catch (IOException e) {
 // Set error flag



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1379178 - in /tomcat/trunk: java/org/apache/coyote/http11/ test/org/apache/coyote/http11/

2012-08-31 Thread Mark Thomas
On 31/08/2012 11:29, Rainer Jung wrote:
> On 30.08.2012 23:57, ma...@apache.org wrote:
>> Author: markt
>> Date: Thu Aug 30 21:57:15 2012
>> New Revision: 1379178
>>
>> URL: http://svn.apache.org/viewvc?rev=1379178&view=rev
>> Log:
>> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53677
>> Ensure a 500 response of the HTTP headers exceed the size limit
>>
>> Added:
>> 
>> tomcat/trunk/java/org/apache/coyote/http11/HeadersTooLargeException.java  
>> (with props)
>> Modified:
>> 
>> tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
>>  tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java
>> 
>> tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
>>
>>
>> Modified:
>> tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
>> URL:
>> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1379178&r1=1379177&r2=1379178&view=diff
>>
>> ==
>>
>> ---
>> tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
>> (original)
>>
>> +++
>> tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Thu
>> Aug 30 21:57:15 2012
>> @@ -761,12 +761,21 @@ public abstract class AbstractHttp11Proc
>>
>>   // Validate and write response headers
>>   try {
>> -prepareResponse();
>> +//try {
>> +prepareResponse();
>> +//} catch (IllegalStateException e) {
>> +// Headers too big. Likely too late to do
>> anything about it
>> +//response.reset();
>> +//response.setStatus(500);
>> +//response.setHeader("Connection", "close");
>> +//response.sendHeaders();
>> +//}
> 
> Not sure but the above commented out code looks like a leftover from an
> earlier attempt, before the code was latter moved further down. If I'm
> right you might want to remove the above change. At least it would fit
> to your prefered slogan "Remove unused code" :)

Yes. It was a left over. I'll remove it. Thanks for the catch.

> Same for TC 7.

Ack.

Makr


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1379206 - /tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java

2012-08-31 Thread Konstantin Kolinko
2012/8/31  :
> Author: markt
> Date: Thu Aug 30 22:55:20 2012
> New Revision: 1379206
>
> URL: http://svn.apache.org/viewvc?rev=1379206&view=rev
> Log:
> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53801
> Overlapping URL patterns were sometimes merged incorrectly in security 
> constraints leading to incorrect 401 responses. Note: it was possible for 
> access to be denied when it should have been granted but it was not possible 
> for access to be granted when it should have been denied.
>
> Modified:
> tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
>
> Modified: tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java?rev=1379206&r1=1379205&r2=1379206&view=diff
> ==
> --- tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Thu Aug 30 
> 22:55:20 2012
> @@ -629,14 +629,15 @@ public abstract class RealmBase extends
>  }
>  }
>  if(matched) {
> -found = true;
>  if(length > longest) {
> +found = false;
>  if(results != null) {
>  results.clear();
>  }
>  longest = length;
>  }
>  if(collection[j].findMethod(method)) {
> +found = true;
>  if(results == null) {
>  results = new ArrayList<>();
>  }

There are several loops over constraints, with
[[[
 if(found) {
 return resultsToArray(results);
}
]]]
between them, and only one of such loops is fixed by this commit.

It seems inconsistent. (Though with lack of comments there, I have to
investigate more to be certain).

> @@ -760,7 +761,7 @@ public abstract class RealmBase extends
>   */
>  private SecurityConstraint [] resultsToArray(
>  ArrayList results) {
> -if(results == null) {
> +if(results == null || results.size() == 0) {
>  return null;
>  }
>  SecurityConstraint [] array = new SecurityConstraint[results.size()];
>

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1379178 - in /tomcat/trunk: java/org/apache/coyote/http11/ test/org/apache/coyote/http11/

2012-08-31 Thread Konstantin Kolinko
2012/8/31  :
> Author: markt
> Date: Thu Aug 30 21:57:15 2012
> New Revision: 1379178
>
> URL: http://svn.apache.org/viewvc?rev=1379178&view=rev
> Log:
> Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53677
> Ensure a 500 response of the HTTP headers exceed the size limit
>

> --- tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java 
> (original)
> +++ tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java Thu 
> Aug 30 21:57:15 2012
> @@ -250,7 +250,10 @@ public abstract class AbstractOutputBuff
>
>  // Recycle Request object
>  response.recycle();
> -
> +// These will need to be reset if the reset was triggered by the 
> error
> +// handling if the headers were too large
> +pos = 0;
> +byteCount = 0;
>  }

There is a use case when there is custom error page for 401 response.
In that case authentication headers are set before  custom error page
is requested and have to be preserved.  (BZ 42409)

I have yet to check it, but if that processing is broken by this, I will be -1.



> --- tomcat/trunk/java/org/apache/coyote/http11/HeadersTooLargeException.java 
> (added)
> +++ tomcat/trunk/java/org/apache/coyote/http11/HeadersTooLargeException.java 
> Thu Aug 30 21:57:15 2012
> @@ -0,0 +1,42 @@
> +/*
> + *  Licensed to the Apache Software Foundation (ASF) under one or more
> + *  contributor license agreements.  See the NOTICE file distributed with
> + *  this work for additional information regarding copyright ownership.
> + *  The ASF licenses this file to You under the Apache License, Version 2.0
> + *  (the "License"); you may not use this file except in compliance with
> + *  the License.  You may obtain a copy of the License at
> + *
> + *  http://www.apache.org/licenses/LICENSE-2.0
> + *
> + *  Unless required by applicable law or agreed to in writing, software
> + *  distributed under the License is distributed on an "AS IS" BASIS,
> + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + *  See the License for the specific language governing permissions and
> + *  limitations under the License.
> + */
> +package org.apache.coyote.http11;
> +
> +/**
> + * Exception used to mark the specific error condition of the HTTP headers
> + * exceeding the maximum permitted size.
> + */
> +public class HeadersTooLargeException extends IllegalStateException {
> +
> +private static final long serialVersionUID = 1L;
> +
> +public HeadersTooLargeException() {
> +super();
> +}
> +
> +public HeadersTooLargeException(String message, Throwable cause) {
> +super(message, cause);
> +}
> +
> +public HeadersTooLargeException(String s) {
> +super(s);
> +}
> +
> +public HeadersTooLargeException(Throwable cause) {
> +super(cause);
> +}

I wonder whether UCDetector will remove some of the above.
Just joking.
If it is supposed to be used by 3rd parties, it is better to keep all
4 constructors.

> +}
>

Best regards,
Konstantin Kolinko

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1379178 - in /tomcat/trunk: java/org/apache/coyote/http11/ test/org/apache/coyote/http11/

2012-08-31 Thread Rainer Jung

On 30.08.2012 23:57, ma...@apache.org wrote:

Author: markt
Date: Thu Aug 30 21:57:15 2012
New Revision: 1379178

URL: http://svn.apache.org/viewvc?rev=1379178&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53677
Ensure a 500 response of the HTTP headers exceed the size limit

Added:
 tomcat/trunk/java/org/apache/coyote/http11/HeadersTooLargeException.java   
(with props)
Modified:
 tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
 tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java
 tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1379178&r1=1379177&r2=1379178&view=diff
==
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Thu 
Aug 30 21:57:15 2012
@@ -761,12 +761,21 @@ public abstract class AbstractHttp11Proc

  // Validate and write response headers
  try {
-prepareResponse();
+//try {
+prepareResponse();
+//} catch (IllegalStateException e) {
+// Headers too big. Likely too late to do anything about it
+//response.reset();
+//response.setStatus(500);
+//response.setHeader("Connection", "close");
+//response.sendHeaders();
+//}


Not sure but the above commented out code looks like a leftover from an 
earlier attempt, before the code was latter moved further down. If I'm 
right you might want to remove the above change. At least it would fit 
to your prefered slogan "Remove unused code" :)


Same for TC 7.


  getOutputBuffer().commit();
  } catch (IOException e) {
  // Set error flag
  error = true;
  }
+
  } else if (actionCode == ActionCode.ACK) {
  // Acknowledge request
  // Send a 100 status back if it makes sense (response not 
committed
@@ -1009,6 +1018,15 @@ public abstract class AbstractHttp11Proc
  setCometTimeouts(socketWrapper);
  } catch (InterruptedIOException e) {
  error = true;
+} catch (HeadersTooLargeException e) {
+error = true;
+// The response should not have been committed but check it
+// anyway to be safe
+if (!response.isCommitted()) {
+response.reset();
+response.setStatus(500);
+response.setHeader("Connection", "close");
+}
  } catch (Throwable t) {
  ExceptionUtils.handleThrowable(t);
  getLog().error(sm.getString(


Regards,

Rainer

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 53173] maxConnections feature hangs the system

2012-08-31 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=53173

--- Comment #6 from Konstantin Kolinko  ---
(In reply to comment #5)
> Hi Filip.
> 
> Is it possible that this bugfix did not completely solve the problem?
> 
> When doing a load test I encountered a stuck tomcat 7.0.29 with all threads
> in socketRead0 and no thread handling the web application:
> 
>java.lang.Thread.State: RUNNABLE
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:150)
> at java.net.SocketInputStream.read(SocketInputStream.java:121)
> at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:309)
> at
> org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:364)

This one is busy reading data on an existing connection. (It is between
requests, so no web application classes are mentioned in the stack trace).

It is reading a socket. It cannot serve requests on other sockets. It cannot be
used for new requests.

> The Acceptor thread is stuck:
> 
> "ajp-bio-127.0.0.1-8009-Acceptor-0" daemon prio=10 tid=0x6eaf2800 nid=0x18ee
> waiting on condition [0x6e15c000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0xa23cf128> (a
> org.apache.tomcat.util.threads.LimitLatch$Sync)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

This one, yes, is waiting on the counter and would not accept any more request
until the counter goes down.

> with a very simple Connector configuration (all thread and connection
> parameters left to default).

> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)

You are using the BIO connector implementation.

Which means (according to the configuration reference for AJP connectors):
maxThreads = 200
maxConnections = maxThreads

So if you have 200 working threads and all are busy "reading" (waiting for data
on existing socket),  then it is by design. You are not able to start 201th
thread, so there is no point in accepting the 201th connection.


Anyway, as was written earlier,
> Additional option added
> maxConnection=-1 to disable connection counting

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[Bug 53173] maxConnections feature hangs the system

2012-08-31 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=53173

--- Comment #5 from brauckm...@dfn-cert.de ---
Hi Filip.

Is it possible that this bugfix did not completely solve the problem?

When doing a load test I encountered a stuck tomcat 7.0.29 with all threads in
socketRead0 and no thread handling the web application:

   java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at org.apache.coyote.ajp.AjpProcessor.read(AjpProcessor.java:309)
at
org.apache.coyote.ajp.AjpProcessor.readMessage(AjpProcessor.java:364)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:128)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
- locked <0x9e2b2098> (a org.apache.tomcat.util.net.SocketWrapper)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)


The Acceptor thread is stuck:

"ajp-bio-127.0.0.1-8009-Acceptor-0" daemon prio=10 tid=0x6eaf2800 nid=0x18ee
waiting on condition [0x6e15c000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0xa23cf128> (a
org.apache.tomcat.util.threads.LimitLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at
org.apache.tomcat.util.threads.LimitLatch.countUpOrAwait(LimitLatch.java:115)
at
org.apache.tomcat.util.net.AbstractEndpoint.countUpOrAwaitConnection(AbstractEndpoint.java:718)
at
org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:210)
at java.lang.Thread.run(Thread.java:722)


This looks exactly like the problem that this patch was supposed to fix.

The configuration: Apache with MaxClients 4000, mod_jk, tomcat 7.0.29 with a
very simple Connector configuration (all thread and connection parameters left
to default).

Tested with two different web applications that have nothing in common. The
problem occurs only during heavy load.

The problem disappears when the Apache and the Tomcat parameters are adjusted
so that MaxClients < maxThreads.

-- 
You are receiving this mail because:
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



[GUMP@vmgump]: Project tomcat-taglibs-standard (in module tomcat-taglibs) failed

2012-08-31 Thread Gump
To whom it may engage...

This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at gene...@gump.apache.org.

Project tomcat-taglibs-standard has an issue affecting its community 
integration.
This issue affects 2 projects,
 and has been outstanding for 45 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- tomcat-taglibs-standard :  Standard Taglib
- tomcat-taglibs-standard-install :  JSP Taglibs


Full details are available at:

http://vmgump.apache.org/gump/public/tomcat-taglibs/tomcat-taglibs-standard/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -INFO- Optional dependency httpunit failed with reason build failed
 -DEBUG- (Apache Gump generated) Apache Maven Settings in: 
/srv/gump/public/workspace/tomcat-taglibs/standard/gump_mvn_settings.xml
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: 
/srv/gump/public/workspace/tomcat-taglibs/standard/pom.xml
 -INFO- Failed to extract fallback artifacts from Gump Repository



The following work was performed:
http://vmgump.apache.org/gump/public/tomcat-taglibs/tomcat-taglibs-standard/gump_work/build_tomcat-taglibs_tomcat-taglibs-standard.html
Work Name: build_tomcat-taglibs_tomcat-taglibs-standard (Type: Build)
Work ended in a state of : Failed
Elapsed: 20 secs
Command Line: /opt/maven2/bin/mvn --batch-mode -DskipTests=true --settings 
/srv/gump/public/workspace/tomcat-taglibs/standard/gump_mvn_settings.xml 
install 
[Working Directory: /srv/gump/public/workspace/tomcat-taglibs/standard]
M2_HOME: /opt/maven2
-
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[debug] execute contextualize
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory 
/srv/gump/public/workspace/tomcat-taglibs/standard/spec/src/test/resources
[INFO] Copying 3 resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] Tests are skipped.
[INFO] [bundle:bundle {execution: default-bundle}]
[INFO] [install:install {execution: default-install}]
[INFO] Installing 
/srv/gump/public/workspace/tomcat-taglibs/standard/spec/target/taglibs-standard-spec-1.2-SNAPSHOT.jar
 to 
/srv/gump/public/workspace/mvnlocalrepo/shared/org/apache/taglibs/taglibs-standard-spec/1.2-SNAPSHOT/taglibs-standard-spec-1.2-SNAPSHOT.jar
[INFO] [bundle:install {execution: default-install}]
[INFO] Parsing 
file:/srv/gump/public/workspace/mvnlocalrepo/shared/repository.xml
[INFO] Installing 
org/apache/taglibs/taglibs-standard-spec/1.2-SNAPSHOT/taglibs-standard-spec-1.2-SNAPSHOT.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] Building JSTL Implementation
[INFO]task-segment: [install]
[INFO] 
[INFO] [remote-resources:process {execution: default}]
[INFO] snapshot org.apache.taglibs:taglibs-standard-spec:1.2-SNAPSHOT: checking 
for updates from apache.snapshots
[debug] execute contextualize
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 14 resources
[INFO] Copying 3 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 96 source files to 
/srv/gump/public/workspace/tomcat-taglibs/standard/impl/target/classes
[INFO] -
[ERROR] COMPILATION ERROR : 
[INFO] -
[ERROR] 
/srv/gump/public/workspace/tomcat-taglibs/standard/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java:[38,7]
 error: DataSourceWrapper is not abstract and does not override abstract method 
getParentLogger() in CommonDataSource
[INFO] 1 error
[INFO] -
[INFO] 
[ERROR] BUILD FAILURE
[INFO] 
[INFO] Compilation failure
/srv/gump/public/workspace/tomcat-taglibs/standard/impl/src/main/java/org/apache/taglibs/standard/tag/common/sql/DataSourceWrapper.java:[38,7]
 error: DataSourceWrapper is not abstract and does not override abstract method 
getParentLogger() in CommonDataSource

[INFO] 
[INFO] For more information, run Maven with the -e switch
[INFO] ---