Re: svn commit: r1379091 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/el/parser/AstValue.java test/org/apache/el/TestMethodExpressionImpl.java
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/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/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
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
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
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/
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/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/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/
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
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
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
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] ---