svn commit: r1559662 - /tomcat/trunk/java/org/apache/catalina/connector/Request.java

2014-01-20 Thread markt
Author: markt
Date: Mon Jan 20 10:00:31 2014
New Revision: 1559662

URL: http://svn.apache.org/r1559662
Log:
Remove unused code

Modified:
tomcat/trunk/java/org/apache/catalina/connector/Request.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1559662&r1=1559661&r2=1559662&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Mon Jan 20 
10:00:31 2014
@@ -202,11 +202,6 @@ public class Request
  */
 protected boolean sslAttributesParsed = false;
 
-/**
- * List of read only attributes for this Request.
- */
-private final HashMap readOnlyAttributes = new HashMap<>();
-
 
 /**
  * The preferred Locales associated with this Request.
@@ -1413,12 +1408,6 @@ public class Request
 @Override
 public void removeAttribute(String name) {
 // Remove the specified attribute
-// Check for read only attribute
-// requests are per thread so synchronization unnecessary
-if (readOnlyAttributes.containsKey(name)) {
-return;
-}
-
 // Pass special attributes to the native layer
 if (name.startsWith("org.apache.tomcat.")) {
 coyoteRequest.getAttributes().remove(name);
@@ -1466,12 +1455,6 @@ public class Request
 }
 
 // Add or replace the specified attribute
-// Check for read only attribute
-// requests are per thread so synchronization unnecessary
-if (readOnlyAttributes.containsKey(name)) {
-return;
-}
-
 // Do the security check before any updates are made
 if (Globals.IS_SECURITY_ENABLED &&
 name.equals(Globals.SENDFILE_FILENAME_ATTR)) {



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



svn commit: r1559663 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/connector/Request.java

2014-01-20 Thread markt
Author: markt
Date: Mon Jan 20 10:03:00 2014
New Revision: 1559663

URL: http://svn.apache.org/r1559663
Log:
Remove unused code

Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Request.java

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

Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Request.java?rev=1559663&r1=1559662&r2=1559663&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Request.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/connector/Request.java Mon 
Jan 20 10:03:00 2014
@@ -203,12 +203,6 @@ public class Request
  */
 protected boolean sslAttributesParsed = false;
 
-/**
- * List of read only attributes for this Request.
- */
-private final HashMap readOnlyAttributes =
-new HashMap();
-
 
 /**
  * The preferred Locales associated with this Request.
@@ -1468,12 +1462,6 @@ public class Request
 @Override
 public void removeAttribute(String name) {
 // Remove the specified attribute
-// Check for read only attribute
-// requests are per thread so synchronization unnecessary
-if (readOnlyAttributes.containsKey(name)) {
-return;
-}
-
 // Pass special attributes to the native layer
 if (name.startsWith("org.apache.tomcat.")) {
 coyoteRequest.getAttributes().remove(name);
@@ -1521,12 +1509,6 @@ public class Request
 }
 
 // Add or replace the specified attribute
-// Check for read only attribute
-// requests are per thread so synchronization unnecessary
-if (readOnlyAttributes.containsKey(name)) {
-return;
-}
-
 // Do the security check before any updates are made
 if (Globals.IS_SECURITY_ENABLED &&
 name.equals(Globals.SENDFILE_FILENAME_ATTR)) {



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



buildbot failure in ASF Buildbot on tomcat-trunk

2014-01-20 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-trunk while building 
ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/tomcat-trunk/builds/5417

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: bb-vm_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch tomcat/trunk] 1559662
Blamelist: markt

BUILD FAILED: failed compile_1

sincerely,
 -The Buildbot





[Bug 56029] Ternary operator doesn't work as expected inside attributes in jspx pages

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56029

--- Comment #8 from Konstantin Kolinko  ---
Created attachment 31231
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=31231&action=edit
test.jspx - Failure to trim leading space from fn prefix

Re: r1559555

Not yet.

Testing current 7.0.x (at r1559663) I see the following error
1. Place attached test.jspx into webapps/examples
2. Access http://localhost:8080/examples/test.jspx
3. Expected: "[1]". Actual:

org.apache.jasper.JasperException: /test.jspx (line: 7, column: 63) The
attribute prefix  fn does not correspond to any imported tag library

org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
 org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)
 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:149)

org.apache.jasper.compiler.Validator$ValidateVisitor$1FVVisitor.visit(Validator.java:1563)
 ...
 org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375)
 org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1817)
 org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
 ...

In the message the prefix is printed as " fn" with leading whitespace.
The expression on the page is ${1 + fn:length(list)}

-- 
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



svn commit: r1559697 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/filters/ java/org/apache/catalina/manager/ java/org/apache/catalina/valves/ java/org/apache/coyote/ webapps/

2014-01-20 Thread markt
Author: markt
Date: Mon Jan 20 14:02:45 2014
New Revision: 1559697

URL: http://svn.apache.org/r1559697
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55956
Make the forwarded remote IP available on the Manager status page

Modified:
tomcat/trunk/java/org/apache/catalina/Globals.java
tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java
tomcat/trunk/java/org/apache/catalina/valves/RemoteIpValve.java
tomcat/trunk/java/org/apache/coyote/Constants.java
tomcat/trunk/java/org/apache/coyote/RequestInfo.java
tomcat/trunk/webapps/docs/config/filter.xml
tomcat/trunk/webapps/docs/config/valve.xml

Modified: tomcat/trunk/java/org/apache/catalina/Globals.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Globals.java?rev=1559697&r1=1559696&r2=1559697&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/Globals.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Globals.java Mon Jan 20 14:02:45 2014
@@ -221,6 +221,19 @@ public final class Globals {
 
 
 /**
+ * The request attribute set by the RemoteIpFilter, RemoteIpValve (and may
+ * be set by other similar components) that identifies for the connector 
the
+ * remote IP address claimed to be associated with this request when a
+ * request is received via one or more proxies. It is typically provided 
via
+ * the X-Forwarded-For HTTP header.
+ *
+ * Duplicated here for neater code in the catalina packages.
+ */
+public static final String REMOTE_ADDR_ATTRIBUTE =
+org.apache.coyote.Constants.REMOTE_ADDR_ATTRIBUTE;
+
+
+/**
  *
  */
 public static final String ASYNC_SUPPORTED_ATTR =

Modified: tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java?rev=1559697&r1=1559696&r2=1559697&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java (original)
+++ tomcat/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java Mon Jan 
20 14:02:45 2014
@@ -42,6 +42,7 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.AccessLog;
+import org.apache.catalina.Globals;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -827,6 +828,8 @@ public class RemoteIpFilter implements F
 if (requestAttributesEnabled) {
 request.setAttribute(AccessLog.REMOTE_ADDR_ATTRIBUTE,
 xRequest.getRemoteAddr());
+request.setAttribute(Globals.REMOTE_ADDR_ATTRIBUTE,
+xRequest.getRemoteAddr());
 request.setAttribute(AccessLog.REMOTE_HOST_ATTRIBUTE,
 xRequest.getRemoteHost());
 request.setAttribute(AccessLog.PROTOCOL_ATTRIBUTE,
@@ -1114,6 +1117,7 @@ public class RemoteIpFilter implements F
  * org.apache.catalina.AccessLog.RemoteHost
  * org.apache.catalina.AccessLog.Protocol
  * org.apache.catalina.AccessLog.ServerPort
+ * org.apache.tomcat.remoteAddr
  * 
  *
  * @param requestAttributesEnabled  true causes the attributes

Modified: tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java?rev=1559697&r1=1559696&r2=1559697&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java Mon 
Jan 20 14:02:45 2014
@@ -336,7 +336,7 @@ public class StatusTransformer {
 (grpName, "bytesSent"), true));
 writer.print("");
 
-writer.print("StageTimeB SentB 
RecvClientVHostRequest");
+writer.print("StageTimeB SentB 
RecvClient (Forwarded)Client 
(Actual)VHostRequest");
 
 enumeration = requestProcessors.elements();
 while (enumeration.hasMoreElements()) {
@@ -485,6 +485,10 @@ public class StatusTransformer {
 writer.write("");
 writer.write("");
 writer.print(filter(mBeanServer.getAttribute
+(pName, "remoteAddrForwarded")));
+writer.write("");
+writer.write("");
+writer.print(filter(mBeanServer.getAttribute
 (pName, "remoteAddr")));
 writer.write("");
 writer.write("");

Modified: tomcat/trunk/java/org/apache/catalina/valves/RemoteIpValve.java
URL: 
h

svn commit: r1559699 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/ java/org/apache/catalina/filters/ java/org/apache/catalina/manager/ java/org/apache/catalina/valves/ java/org/apache/coyot

2014-01-20 Thread markt
Author: markt
Date: Mon Jan 20 14:06:01 2014
New Revision: 1559699

URL: http://svn.apache.org/r1559699
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55956
Make the forwarded remote IP available on the Manager status page

Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/catalina/Globals.java
tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java
tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/RemoteIpValve.java
tomcat/tc7.0.x/trunk/java/org/apache/coyote/Constants.java
tomcat/tc7.0.x/trunk/java/org/apache/coyote/RequestInfo.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
tomcat/tc7.0.x/trunk/webapps/docs/config/filter.xml
tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml

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

Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/Globals.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/Globals.java?rev=1559699&r1=1559698&r2=1559699&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/Globals.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/Globals.java Mon Jan 20 
14:06:01 2014
@@ -258,6 +258,19 @@ public final class Globals {
 
 
 /**
+ * The request attribute set by the RemoteIpFilter, RemoteIpValve (and may
+ * be set by other similar components) that identifies for the connector 
the
+ * remote IP address claimed to be associated with this request when a
+ * request is received via one or more proxies. It is typically provided 
via
+ * the X-Forwarded-For HTTP header.
+ *
+ * Duplicated here for neater code in the catalina packages.
+ */
+public static final String REMOTE_ADDR_ATTRIBUTE =
+org.apache.coyote.Constants.REMOTE_ADDR_ATTRIBUTE;
+
+
+/**
  *
  */
 public static final String ASYNC_SUPPORTED_ATTR =

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java?rev=1559699&r1=1559698&r2=1559699&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/filters/RemoteIpFilter.java 
Mon Jan 20 14:06:01 2014
@@ -42,6 +42,7 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.AccessLog;
+import org.apache.catalina.Globals;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 
@@ -821,6 +822,8 @@ public class RemoteIpFilter implements F
 if (requestAttributesEnabled) {
 request.setAttribute(AccessLog.REMOTE_ADDR_ATTRIBUTE,
 xRequest.getRemoteAddr());
+request.setAttribute(Globals.REMOTE_ADDR_ATTRIBUTE,
+xRequest.getRemoteAddr());
 request.setAttribute(AccessLog.REMOTE_HOST_ATTRIBUTE,
 xRequest.getRemoteHost());
 request.setAttribute(AccessLog.PROTOCOL_ATTRIBUTE,
@@ -1108,6 +,7 @@ public class RemoteIpFilter implements F
  * org.apache.catalina.AccessLog.RemoteHost
  * org.apache.catalina.AccessLog.Protocol
  * org.apache.catalina.AccessLog.ServerPort
+ * org.apache.tomcat.remoteAddr
  * 
  * 
  * @param requestAttributesEnabled  true causes the attributes

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java?rev=1559699&r1=1559698&r2=1559699&view=diff
==
--- 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java 
(original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/manager/StatusTransformer.java 
Mon Jan 20 14:06:01 2014
@@ -337,7 +337,7 @@ public class StatusTransformer {
 (grpName, "bytesSent"), true));
 writer.print("");
 
-writer.print("StageTimeB SentB 
RecvClientVHostRequest");
+writer.print("StageTimeB SentB 
RecvClient (Forwarded)Client 
(Actual)VHostRequest");
 
 enumeration = requestProcessors.elements();
 while (enumeration.hasMoreElements()) {
@@ -486,6 +486,10 @@ public class StatusTransformer {
 writer.write("");
 writer.write("");
 writer.print(filter(mBeanServer.getAttribute
+   

[Bug 55956] Regarding Tomcat Manager Application Status

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=55956

Mark Thomas  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #7 from Mark Thomas  ---
This has now been fixed in 8.0.x for 8.0.0 onwards and 7.0.x for 7.0.51
onwards.

-- 
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



svn commit: r1559707 - in /tomcat/trunk: java/org/apache/jasper/compiler/ELParser.java java/org/apache/jasper/resources/LocalStrings.properties test/org/apache/el/TestELInJsp.java test/webapp/bug5nnnn

2014-01-20 Thread markt
Author: markt
Date: Mon Jan 20 14:22:49 2014
New Revision: 1559707

URL: http://svn.apache.org/r1559707
Log:
Additional fix for bug 56029. Now whitespace is not skipped, make sure it is 
trimmed before the function name is used.
Includes a test case based on a jspx file by kkolinko.

Added:
tomcat/trunk/test/webapp/bug5/bug56029.jspx
Modified:
tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java
tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties
tomcat/trunk/test/org/apache/el/TestELInJsp.java

Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1559707&r1=1559706&r2=1559707&view=diff
==
--- tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java Mon Jan 20 
14:22:49 2014
@@ -161,7 +161,7 @@ public class ELParser {
 }
 }
 if (curToken.toChar() == '(') {
-ELexpr.add(new ELNode.Function(s1, s2));
+ELexpr.add(new ELNode.Function(s1.trim(), s2.trim()));
 return true;
 }
 curToken = original;

Modified: tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties?rev=1559707&r1=1559706&r2=1559707&view=diff
==
--- tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/jasper/resources/LocalStrings.properties Mon 
Jan 20 14:22:49 2014
@@ -330,7 +330,7 @@ jsp.error.tagfile.badSuffix=Missing \".t
 jsp.error.tagfile.illegalPath=Illegal tag file path: {0}, must start with 
\"/WEB-INF/tags\" or \"/META-INF/tags\"
 jsp.error.tagfile.missingPath=Path not specified to tag file
 jsp.error.plugin.wrongRootElement=Name of root element in {0} different from 
{1}
-jsp.error.attribute.invalidPrefix=The attribute prefix {0} does not correspond 
to any imported tag library
+jsp.error.attribute.invalidPrefix=The attribute prefix [{0}] does not 
correspond to any imported tag library
 jsp.error.nested.jspattribute=A jsp:attribute standard action cannot be nested 
within another jsp:attribute standard action
 jsp.error.nested.jspbody=A jsp:body standard action cannot be nested within 
another jsp:body or jsp:attribute standard action
 jsp.error.variable.either.name=Either name-given or name-from-attribute 
attribute must be specified in a variable directive

Modified: tomcat/trunk/test/org/apache/el/TestELInJsp.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/el/TestELInJsp.java?rev=1559707&r1=1559706&r2=1559707&view=diff
==
--- tomcat/trunk/test/org/apache/el/TestELInJsp.java (original)
+++ tomcat/trunk/test/org/apache/el/TestELInJsp.java Mon Jan 20 14:22:49 2014
@@ -21,10 +21,14 @@ import java.io.File;
 
 import static org.junit.Assert.assertTrue;
 
+import org.junit.Assert;
 import org.junit.Test;
 
+import org.apache.catalina.Context;
+import org.apache.catalina.WebResourceRoot;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.catalina.webresources.StandardRoot;
 import org.apache.tomcat.util.buf.ByteChunk;
 
 /**
@@ -446,6 +450,32 @@ public class TestELInJsp extends TomcatB
 assertEcho(result, "05-Hello JUnit from Tomcat");
 }
 
+@Test
+public void testBug56029() throws Exception {
+Tomcat tomcat = getTomcatInstance();
+
+File appDir = new File("test/webapp");
+// app dir is relative to server home
+Context ctxt = tomcat.addWebapp(null, "/test", 
appDir.getAbsolutePath());
+
+// This test needs the JSTL libraries
+File lib = new File("webapps/examples/WEB-INF/lib");
+ctxt.setResources(new StandardRoot(ctxt));
+ctxt.getResources().createWebResourceSet(
+WebResourceRoot.ResourceSetType.POST, "/WEB-INF/lib",
+lib.getAbsolutePath(), null, "/");
+
+tomcat.start();
+
+ByteChunk res = getUrl("http://localhost:"; + getPort() +
+"/test/bug5/bug56029.jspx");
+
+String result = res.toString();
+
+Assert.assertTrue(result.contains("[1]"));
+}
+
+
 // Assertion for text contained with , e.g. printed by tags:echo
 private static void assertEcho(String result, String expected) {
 assertTrue(result.indexOf("" + expected + "") > 0);

Added: tomcat/trunk/test/webapp/bug5/bug56029.jspx
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/webapp/bug5/bug56029.jspx?rev=1559707&view=auto

svn commit: r1559708 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/jasper/compiler/ELParser.java java/org/apache/jasper/resources/LocalStrings.properties test/org/apache/el/TestELInJsp.java test/weba

2014-01-20 Thread markt
Author: markt
Date: Mon Jan 20 14:30:48 2014
New Revision: 1559708

URL: http://svn.apache.org/r1559708
Log:
Additional fix for bug 56029. Now whitespace is not skipped, make sure it is 
trimmed before the function name is used.
Includes a test case based on a jspx file by kkolinko.

Added:
tomcat/tc7.0.x/trunk/test/webapp-3.0/bug5/bug56029.jspx
  - copied unchanged from r1559707, 
tomcat/trunk/test/webapp/bug5/bug56029.jspx
Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java

tomcat/tc7.0.x/trunk/java/org/apache/jasper/resources/LocalStrings.properties
tomcat/tc7.0.x/trunk/test/org/apache/el/TestELInJsp.java

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

Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1559708&r1=1559707&r2=1559708&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java Mon Jan 
20 14:30:48 2014
@@ -163,7 +163,7 @@ public class ELParser {
 }
 }
 if (curToken.toChar() == '(') {
-ELexpr.add(new ELNode.Function(s1, s2));
+ELexpr.add(new ELNode.Function(s1.trim(), s2.trim()));
 return true;
 }
 curToken = original;

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/jasper/resources/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/resources/LocalStrings.properties?rev=1559708&r1=1559707&r2=1559708&view=diff
==
--- 
tomcat/tc7.0.x/trunk/java/org/apache/jasper/resources/LocalStrings.properties 
(original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/jasper/resources/LocalStrings.properties 
Mon Jan 20 14:30:48 2014
@@ -433,7 +433,7 @@ jsp.error.attributes.not.allowed = {0} m
 jsp.error.tagfile.badSuffix=Missing \".tag\" suffix in tag file path {0}
 jsp.error.tagfile.illegalPath=Illegal tag file path: {0}, must start with 
\"/WEB-INF/tags\" or \"/META-INF/tags\"
 jsp.error.plugin.wrongRootElement=Name of root element in {0} different from 
{1}
-jsp.error.attribute.invalidPrefix=The attribute prefix {0} does not correspond 
to any imported tag library
+jsp.error.attribute.invalidPrefix=The attribute prefix [{0}] does not 
correspond to any imported tag library
 jsp.error.nested.jspattribute=A jsp:attribute standard action cannot be nested 
within another jsp:attribute standard action
 jsp.error.nested.jspbody=A jsp:body standard action cannot be nested within 
another jsp:body or jsp:attribute standard action
 jsp.error.variable.either.name=Either name-given or name-from-attribute 
attribute must be specified in a variable directive

Modified: tomcat/tc7.0.x/trunk/test/org/apache/el/TestELInJsp.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/el/TestELInJsp.java?rev=1559708&r1=1559707&r2=1559708&view=diff
==
--- tomcat/tc7.0.x/trunk/test/org/apache/el/TestELInJsp.java (original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/el/TestELInJsp.java Mon Jan 20 
14:30:48 2014
@@ -14,15 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.el;
 
 import java.io.File;
 
 import static org.junit.Assert.assertTrue;
 
+import org.junit.Assert;
 import org.junit.Test;
 
+import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -440,6 +441,30 @@ public class TestELInJsp extends TomcatB
 assertEcho(result, "05-Hello JUnit from Tomcat");
 }
 
+@Test
+public void testBug56029() throws Exception {
+Tomcat tomcat = getTomcatInstance();
+
+File appDir = new File("test/webapp-3.0");
+// app dir is relative to server home
+StandardContext ctxt = (StandardContext) tomcat.addWebapp(
+null, "/test", appDir.getAbsolutePath());
+
+// This test needs the JSTL libraries
+File lib = new File("webapps/examples/WEB-INF/lib");
+ctxt.setAliases("/WEB-INF/lib=" + lib.getCanonicalPath());
+
+tomcat.start();
+
+ByteChunk res = getUrl("http://localhost:"; + getPort() +
+"/test/bug5/bug56029.jspx");
+
+String result = res.toString();
+
+Assert.assertTrue(result.contains("[1]"));
+}
+
+
 // Assertion for text contained with , e

[Bug 56029] Ternary operator doesn't work as expected inside attributes in jspx pages

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56029

--- Comment #9 from Mark Thomas  ---
If fixed the white space issue in 8.0.x and 7.0.x and added it to the proposal
for 6.0.x

-- 
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



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

2014-01-20 Thread markt
Author: markt
Date: Mon Jan 20 14:32:00 2014
New Revision: 1559710

URL: http://svn.apache.org/r1559710
Log:
Update proposal

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=1559710&r1=1559709&r2=1559710&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Mon Jan 20 14:32:00 2014
@@ -39,11 +39,11 @@ PATCHES PROPOSED TO BACKPORT:
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56029
   Regression in fix for BZ55198 broke parsing of some ternary expressions
   https://svn.apache.org/r1559555
+  https://svn.apache.org/r1559708 (excluding test case)
   +1: markt
   -1:
 
 
-
 PATCHES/ISSUES THAT ARE STALLED:
 
 None



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



buildbot failure in ASF Buildbot on tomcat-7-trunk

2014-01-20 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-7-trunk while 
building ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/tomcat-7-trunk/builds/1698

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: bb-vm_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch tomcat/tc7.0.x/trunk] 1559708
Blamelist: markt

BUILD FAILED: failed compile_1

sincerely,
 -The Buildbot





[jira] [Created] (MTOMCAT-257) Classpathes separation between plugin and application is broken (can't use slf4j-jcl in app)

2014-01-20 Thread Brendan Le Ny (JIRA)
Brendan Le Ny created MTOMCAT-257:
-

 Summary: Classpathes separation between plugin and application is 
broken (can't use slf4j-jcl in app)
 Key: MTOMCAT-257
 URL: https://issues.apache.org/jira/browse/MTOMCAT-257
 Project: Apache Tomcat Maven Plugin
  Issue Type: Bug
  Components: tomcat7
Affects Versions: 2.1
Reporter: Brendan Le Ny
Assignee: Olivier Lamy (*$^¨%`£)
 Attachments: MTOMCAT-227-2.zip, MTOMCAT-227.tgz

I use in my war the slf4j-jcl, which is not compatible with the jcl-over-slf4j 
used in the plugin dependencies.

I give you a little project that show the problem.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

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



[jira] [Commented] (MTOMCAT-257) Classpathes separation between plugin and application is broken (can't use slf4j-jcl in app)

2014-01-20 Thread Brendan Le Ny (JIRA)

[ 
https://issues.apache.org/jira/browse/MTOMCAT-257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13876600#comment-13876600
 ] 

Brendan Le Ny commented on MTOMCAT-257:
---

true doesn't solve 
the issue.

It seems that the classpaths are not separated.

I've created a project to show the whole issue. The problem appeared when i 
added shiro as a dependency to my project. Shiro depends on slf4j-api. I also 
use commons-codec 1.8. My project use log4j to log and slf4j-jcl to gather 
slf4j logs (so i will get Shiro's log). Log4j and slf4j-jcl are in scope 
runtime.

Here is the whole thing:

if I do a tomcat:run, the application breaks, because tomcat-plugin put 
jcl-over-slf4j in classpath and slf4j initialization fail because you can't 
have both jcl-over-slf4j and slf4j-jcl in the same classpath. The application 
works when deployed in a tomcat, but it doesn't work in tomcat:run. That's the 
exact problem Tony raised.
If I add true 
in plugin config, it solve the issue because jcl-over-slf4j and slf4j-jcl
But ! it raise another issue: in my application, I use commons-codec 1.8 
and when the time come when the class is loaded, I get a linkage error saying 
that DigestUtils#sha1hex method doesn't exists. It exists in commons-codec 1.8 
but not in commons-codec version declared in tomcat-plugin. So it seems that 
even with useSeparateTomcatClassLoader=true, the actual classpath of the 
application running in tomcat7:run is not the same that the one given by mvn 
package, ie with the exact dependencies and exact version defined in the 
project's pom.

For now, the only workaround i've found is to leave 
useSeparateTomcatClassLoader = false and add a maven profile to put slf4j-jcl 
in scope runtime, I use the profile only when doing a tomcat7:run. I don't know 
if useSeparateTomcatClassLoader = true is buggy or what occurs actually but 
it's sure that the application's classpath is not sane.

> Classpathes separation between plugin and application is broken (can't use 
> slf4j-jcl in app)
> 
>
> Key: MTOMCAT-257
> URL: https://issues.apache.org/jira/browse/MTOMCAT-257
> Project: Apache Tomcat Maven Plugin
>  Issue Type: Bug
>  Components: tomcat7
>Affects Versions: 2.1
>Reporter: Brendan Le Ny
>Assignee: Olivier Lamy (*$^¨%`£)
> Attachments: MTOMCAT-227-2.zip, MTOMCAT-227.tgz
>
>
> I use in my war the slf4j-jcl, which is not compatible with the 
> jcl-over-slf4j used in the plugin dependencies.
> I give you a little project that show the problem.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

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



svn commit: r1559798 - /tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java

2014-01-20 Thread jboynes
Author: jboynes
Date: Mon Jan 20 18:22:16 2014
New Revision: 1559798

URL: http://svn.apache.org/r1559798
Log:
Fix for NPE introduced by r1559707 that caused ELParser test to fail.

Modified:
tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java

Modified: tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1559798&r1=1559797&r2=1559798&view=diff
==
--- tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java Mon Jan 20 
18:22:16 2014
@@ -152,7 +152,7 @@ public class ELParser {
 if (hasNext()) {
 Token t2 = nextToken();
 if (t2 instanceof Id) {
-s1 = s2;
+s1 = s2.trim();
 s2 = t2.toString();
 if (hasNext()) {
 curToken = nextToken();
@@ -161,7 +161,7 @@ public class ELParser {
 }
 }
 if (curToken.toChar() == '(') {
-ELexpr.add(new ELNode.Function(s1.trim(), s2.trim()));
+ELexpr.add(new ELNode.Function(s1, s2.trim()));
 return true;
 }
 curToken = original;



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



Re: svn commit: r1559707 - in /tomcat/trunk: java/org/apache/jasper/compiler/ELParser.java java/org/apache/jasper/resources/LocalStrings.properties test/org/apache/el/TestELInJsp.java test/webapp/bug5

2014-01-20 Thread Jeremy Boynes
On Jan 20, 2014, at 6:22 AM, ma...@apache.org wrote:

> Author: markt
> Date: Mon Jan 20 14:22:49 2014
> New Revision: 1559707
> 
> URL: http://svn.apache.org/r1559707
> Log:
> Additional fix for bug 56029. Now whitespace is not skipped, make sure it is 
> trimmed before the function name is used.
> Includes a test case based on a jspx file by kkolinko.

I think this caused TestELParser to start failing. I committed a change 
http://svn.apache.org/r1559798 that I think fixes that but would appreciate a 
second set of eyes before back-porting to 7.0.x.

Thanks
Jeremy



signature.asc
Description: Message signed with OpenPGP using GPGMail


svn commit: r1559801 - /tomcat/trunk/java/javax/servlet/http/Cookie.java

2014-01-20 Thread jboynes
Author: jboynes
Date: Mon Jan 20 18:30:13 2014
New Revision: 1559801

URL: http://svn.apache.org/r1559801
Log:
Refactor cookie name validation into a helper class to prepare for enabling 
RFC6265.
This should have no functional change.

Modified:
tomcat/trunk/java/javax/servlet/http/Cookie.java

Modified: tomcat/trunk/java/javax/servlet/http/Cookie.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/servlet/http/Cookie.java?rev=1559801&r1=1559800&r2=1559801&view=diff
==
--- tomcat/trunk/java/javax/servlet/http/Cookie.java (original)
+++ tomcat/trunk/java/javax/servlet/http/Cookie.java Mon Jan 20 18:30:13 2014
@@ -54,53 +54,26 @@ import java.util.ResourceBundle;
  */
 public class Cookie implements Cloneable, Serializable {
 
-private static final BitSet allowed;
+private static final CookieNameValidator validation;
 static {
-boolean STRICT_SERVLET_COMPLIANCE =
-
Boolean.getBoolean("org.apache.catalina.STRICT_SERVLET_COMPLIANCE");
-
-boolean STRICT_NAMING =
-
getBoolean("org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING",
-STRICT_SERVLET_COMPLIANCE);
-
-String separators;
-if (STRICT_NAMING) {
-separators = "()<>@,;:\\\"/[]?={} \t"; // separators as defined by 
RFC2616 2.2
-}
-else {
-separators = ",; "; // semi-colon, comma and space as defined by 
Netscape
-}
-
-allowed = new BitSet(128);
-allowed.set(0x20, 0x7f); // any CHAR except CTLs or separators
-for (int i = 0; i < separators.length(); i++) {
-char ch = separators.charAt(i);
-allowed.clear(ch);
+boolean strictNaming;
+String prop = 
System.getProperty("org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING");
+if (prop != null) {
+strictNaming = Boolean.parseBoolean(prop);
+} else {
+strictNaming = 
Boolean.getBoolean("org.apache.catalina.STRICT_SERVLET_COMPLIANCE");
 }
 
-// special treatment to allow for FWD_SLASH_IS_SEPARATOR property
-if (STRICT_NAMING) {
-boolean FWD_SLASH_IS_SEPARATOR =
-
getBoolean("org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR",
-   STRICT_SERVLET_COMPLIANCE);
-allowed.set('/', !FWD_SLASH_IS_SEPARATOR);
+if (strictNaming) {
+validation = new RFC2109Validator();
 }
-}
-
-private static boolean getBoolean(String prop, boolean def) {
-String value = System.getProperty(prop);
-if (value == null) {
-return def;
-} else {
-return Boolean.parseBoolean(value);
+else {
+validation = new NetscapeValidator();
 }
 }
 
 private static final long serialVersionUID = 1L;
 
-private static final String LSTRING_FILE = 
"javax.servlet.http.LocalStrings";
-private static final ResourceBundle lStrings = 
ResourceBundle.getBundle(LSTRING_FILE);
-
 private final String name;
 private String value;
 
@@ -144,39 +117,11 @@ public class Cookie implements Cloneable
  * @see #setVersion
  */
 public Cookie(String name, String value) {
-if (name == null || name.length() == 0) {
-throw new 
IllegalArgumentException(lStrings.getString("err.cookie_name_blank"));
-}
-if (!isToken(name) ||
-name.equalsIgnoreCase("Comment") ||
-name.equalsIgnoreCase("Discard") ||
-name.equalsIgnoreCase("Domain") ||
-name.equalsIgnoreCase("Expires") ||
-name.equalsIgnoreCase("Max-Age") ||
-name.equalsIgnoreCase("Path") ||
-name.equalsIgnoreCase("Secure") ||
-name.equalsIgnoreCase("Version") ||
-name.startsWith("$")) {
-String errMsg = lStrings.getString("err.cookie_name_is_token");
-throw new IllegalArgumentException(MessageFormat.format(errMsg, 
name));
-}
-
+validation.validate(name);
 this.name = name;
 this.value = value;
 }
 
-private boolean isToken(String possibleToken) {
-int len = possibleToken.length();
-
-for (int i = 0; i < len; i++) {
-char c = possibleToken.charAt(i);
-if (!allowed.get(c)) {
-return false;
-}
-}
-return true;
-}
-
 /**
  * Specifies a comment that describes a cookie's purpose. The comment is
  * useful if the browser presents the cookie to the user. Comments are not
@@ -435,3 +380,79 @@ public class Cookie implements Cloneable
 return httpOnly;
 }
 }
+
+
+class CookieNameValidator {
+private static final String LSTRING_FILE = 
"javax.servlet.http.LocalStrings";
+private static final Resou

Re: svn commit: r1559707 - in /tomcat/trunk: java/org/apache/jasper/compiler/ELParser.java java/org/apache/jasper/resources/LocalStrings.properties test/org/apache/el/TestELInJsp.java test/webapp/bug5

2014-01-20 Thread Mark Thomas
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 20/01/2014 18:25, Jeremy Boynes wrote:
> On Jan 20, 2014, at 6:22 AM, ma...@apache.org wrote:
> 
>> Author: markt Date: Mon Jan 20 14:22:49 2014 New Revision:
>> 1559707
>> 
>> URL: http://svn.apache.org/r1559707 Log: Additional fix for bug
>> 56029. Now whitespace is not skipped, make sure it is trimmed
>> before the function name is used. Includes a test case based on a
>> jspx file by kkolinko.
> 
> I think this caused TestELParser to start failing. I committed a
> change http://svn.apache.org/r1559798 that I think fixes that but
> would appreciate a second set of eyes before back-porting to
> 7.0.x.

Thanks. Eclipse was nagging me about that but I missed it.#

The fix looks good to me.

Mark

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJS3XwpAAoJEBDAHFovYFnnaNoP/1NAp7qmYALt+URrAPJk9MOs
CQvcC7inkjDhHmOoNConJUO9Jq9AVMLDfZFYrqqmk0+fWLCUyoembER+j7PcYa1T
0MtRbpuYfwjkVfwMQxLZfWrnp8IhUVGEndgkCsX5J53P3heZnfb1kMj+ySU2iz0T
ap4fBr4sQKullHCea0FK9wXMojNzmWn0IyommyCONod6AgCEKPg5LnmGv4BXEMWx
EmhThybVzWjVO00iiNLuIT9cyGYIAh01iBeB/vQFwbfcB/vFmfT3ypdhb+h7JpM4
fkM4DWChfRmmSXNk8+4oDndxYq3oLB+fnQAx+kqIfIaz448Foad4n7EQRBguXUWz
VBmGwhnNHPMnEgoui7XJ6/1+6+nNE0wcJjfGGyA675zkH90eUhDc7ViRgPaUUZPu
dpQn95WDVDQVXCBH0sIrOVAT1TOb0hY/EALx0QMixqnpLS8iEgMbWLxZMqzn6Ebw
nkxoGiHITNzOQ5WlNUXcTMB22XDJTlmmiy1ELywRg6tSzyh5iqkkTKqdXc90QTIF
B18rH69bMAaG6onhHEya4cAgb7va0aKOhuvsIHb65cuaJpZYwrHQHMnZkzAaQbyq
yT/ia0tytDnEr875DceVJS8+xzLRGtubUlNB7i/ExDgUKJWE1cUiRV6eXHSa57mv
1rZHbUXV1T7spvDiTRD0
=K7z+
-END PGP SIGNATURE-

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



buildbot success in ASF Buildbot on tomcat-trunk

2014-01-20 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-trunk while 
building ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/tomcat-trunk/builds/5420

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: bb-vm_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch tomcat/trunk] 1559798
Blamelist: jboynes

Build succeeded!

sincerely,
 -The Buildbot





svn commit: r1559820 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/jasper/compiler/ELParser.java

2014-01-20 Thread jboynes
Author: jboynes
Date: Mon Jan 20 20:07:23 2014
New Revision: 1559820

URL: http://svn.apache.org/r1559820
Log:
merge fix for potential NPE

Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java

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

Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1559820&r1=1559819&r2=1559820&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java Mon Jan 
20 20:07:23 2014
@@ -154,7 +154,7 @@ public class ELParser {
 if (hasNext()) {
 Token t2 = nextToken();
 if (t2 instanceof Id) {
-s1 = s2;
+s1 = s2.trim();
 s2 = t2.toString();
 if (hasNext()) {
 curToken = nextToken();
@@ -163,7 +163,7 @@ public class ELParser {
 }
 }
 if (curToken.toChar() == '(') {
-ELexpr.add(new ELNode.Function(s1.trim(), s2.trim()));
+ELexpr.add(new ELNode.Function(s1, s2.trim()));
 return true;
 }
 curToken = original;



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



[Bug 56039] New: JmxRemoteLifecycleListener does not work with SSL

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56039

Bug ID: 56039
   Summary: JmxRemoteLifecycleListener does not work with SSL
   Product: Tomcat 7
   Version: 7.0.50
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: esengst...@gmail.com

Created attachment 31242
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=31242&action=edit
Patch against http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk

Using JmxRemoteLifecycleListener with SSL results in the following error on
startup:

Jan 16, 2014 4:34:20 PM org.apache.catalina.mbeans.JmxRemoteLifecycleListener
createServer
SEVERE: The JMX connector server could not be created or failed to start for
the Platform server
java.io.IOException: Cannot bind to URL [rmi://localhost:1900/jmxrmi]:
javax.naming.CommunicationException [Root exception is
java.rmi.ConnectIOException: non-JRMP server at remote endpoint]
at
javax.management.remote.rmi.RMIConnectorServer.newIOException(Unknown Source)
at javax.management.remote.rmi.RMIConnectorServer.start(Unknown Source)
at
org.apache.catalina.mbeans.JmxRemoteLifecycleListener.createServer(JmxRemoteLifecycleListener.java:304)
at
org.apache.catalina.mbeans.JmxRemoteLifecycleListener.lifecycleEvent(JmxRemoteLifecycleListener.java:258)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
at
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347)
at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:725)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:691)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243)
Caused by: javax.naming.CommunicationException [Root exception is
java.rmi.ConnectIOException: non-JRMP server at remote endpoint]
at com.sun.jndi.rmi.registry.RegistryContext.bind(Unknown Source)
at com.sun.jndi.toolkit.url.GenericURLContext.bind(Unknown Source)
at javax.naming.InitialContext.bind(Unknown Source)
at javax.management.remote.rmi.RMIConnectorServer.bind(Unknown Source)
... 20 more
Caused by: java.rmi.ConnectIOException: non-JRMP server at remote endpoint
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
... 24 more


The relevant configuration from server.xml:



and java properties:

-Djavax.net.ssl.keyStore=$KEYSTORE -Djavax.net.ssl.keyStorePassword=$KEY_PASS
-Dcom.sun.management.jmxremote.ssl.need.client.auth=true
-Djavax.net.ssl.trustStore=$TRUSTSTORE
-Djavax.net.ssl.trustStorePassword=$TRUST_PASS
-Dcom.sun.management.jmxremote.registry.ssl=true -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=$HOST_IP -Dcom.sun.management.jmxremote.ssl=true

If com.sun.management.jmxremote.ssl is changed to false everything works as
expected except without SSL.

Looking at the source code, I there is a property missing from the environment:

 env.put("com.sun.jndi.rmi.factory.socket", csf);

Adding this to JmxRemoteLifecycleListener allows SSL to work properly.

Patch attatched.

-- 
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 56032] WebSocket Endpoint onClose method not called when channel closed by thread interruption

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56032

--- Comment #1 from Mark Thomas  ---
Do you have some unit tests or some sample code to demonstrate the problem?

-- 
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



buildbot success in ASF Buildbot on tomcat-7-trunk

2014-01-20 Thread buildbot
The Buildbot has detected a restored build on builder tomcat-7-trunk while 
building ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/tomcat-7-trunk/builds/1699

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: bb-vm_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch tomcat/tc7.0.x/trunk] 1559820
Blamelist: jboynes

Build succeeded!

sincerely,
 -The Buildbot





Using HttpParser for Cookie header?

2014-01-20 Thread Jeremy Boynes
I started to look at using HttpParser for the Cookie header but there are some 
differences in the way it works compared to the existing parser in Cookies that 
I wanted to check direction before getting too far in.

The area I’m concerned about is the need to copy the bytes in order to parse 
the header. The Cookies parser relies heavily on MessageBytes and avoids 
copying to a String as far as possible. HttpParser, however, operates on a 
StringReader which requires converting to a String before parsing.

After digging into the usage of Cookies I think there are only two places that 
read them:
1) Request#getCookies(), which needs to copy to Strings anyway in order to 
create the Cookie instances it returns
2) CoyoteAdapter#parseSessionCookiesId(), which parses the header and compares 
names as MessageBytes, only allocating a String for the value if the session 
cookie is found

It’s this second one that has me concerned about switching to HttpParser as 
this gets called for every request. If we switch then there is going to be 
allocation and copying of the header that we currently don’t do. 

Having said that, the current parse relies heavily on the assumption that the 
header is US-ASCII encoded and that it is only dealing with 7-bit characters 
(it freely casts bytes to chars). The cookie change proposal has us supporting 
UTF-8 as specified by HTML5 which means a more robust decoder will be needed 
and the copy may not be avoidable.

My plan here is to KISS and implement a parser similar to the others in 
HttpParser assuming the header has already been decoded so it can just deal 
with the chars. Then if we notice any performance degradation we can focus on 
improving HttpParser which will have the benefit of working for the other 
header parsers as well. I’ll implement this alongside the existing code 
(actually, in the parser package) to make it easier to do an A-B comparison.

There would likely be some follow-on changes from such a change. Cookies and 
ServerCookie are recyclable objects associated with the request. By moving away 
from MessageBytes these could be replaced by basic String values and may not be 
needed e.g. Request already caches the array of Cookie values returned from 
getCookies() and that could be now populated directly from the parse. These 
classes may end up going away.

Thanks
Jeremy



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Using HttpParser for Cookie header?

2014-01-20 Thread Mark Thomas
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 20/01/2014 21:38, Jeremy Boynes wrote:
> I started to look at using HttpParser for the Cookie header but
> there are some differences in the way it works compared to the
> existing parser in Cookies that I wanted to check direction before
> getting too far in.
> 
> The area I’m concerned about is the need to copy the bytes in
> order to parse the header. The Cookies parser relies heavily on 
> MessageBytes and avoids copying to a String as far as possible. 
> HttpParser, however, operates on a StringReader which requires 
> converting to a String before parsing.
> 
> After digging into the usage of Cookies I think there are only two 
> places that read them: 1) Request#getCookies(), which needs to
> copy to Strings anyway in order to create the Cookie instances it
> returns 2) CoyoteAdapter#parseSessionCookiesId(), which parses the
> header and compares names as MessageBytes, only allocating a String
> for the value if the session cookie is found
> 
> It’s this second one that has me concerned about switching to 
> HttpParser as this gets called for every request. If we switch
> then there is going to be allocation and copying of the header that
> we currently don’t do.

I share your concern. Worst case, we'll need to do a specific
MessageBytes based parse just for the session cookie. Assuming that
the session cookie name and value will remain US-ASCII (see no reason
why this should not be the case), we could get away with this as long
as we are mindful that there might be some UTF-8 we need to skip over.

No objections here to you continuing as per you plan.

Mark
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJS3Zu7AAoJEBDAHFovYFnnYS8P/ihRKZ1VgAbwGG4f1fu8w232
IecFGCXRRuW48SZuj3ADX/rUwab+yoj/1N4QQetS7LRVhnQWDmNdZuQ596d8vsA0
HXHkAmtw4Et/s9r8QH+2UGabt65BjAsIlMU6OXJWn2Ph/N3b18sh0vHyW248WUs5
ck21WC8dAj4faqaJR9VI0N99Asq9Q6SoMswP7KYn7LhoLRA4oo3MtzGv7jW4m0BL
aDAlS13JqzO4dImo4MBsm5fevvuVhXppRBglkHuqVTYDrZ6hI4HGZ4VtoNcs352x
tNsDZU82LAxzL4Ix3Lsdxa7xOHxa6Dlffwh6YitwEERUhRYG0i//xLHER7lac83d
D+x5A2JFCvGxIN/jvLR5Up56+IzxhnVfPsiFpoa9ABtjxVvoiHzqGZu3ltBFdwbt
TEwG7uUD3L0pZ3yN1vGkDnEy7e15Aju5tMhd9PzCctSW1+ytPJv6psnxYucL+u6u
VlN8+wEmXFl3OIM9NhPtmW1qgu42zlWZl48RSfkoBMGmIUeE8FVS6uDsCZEHLmF3
+R/EiKPkDk+AkooCY5l3pEvM5WCPZpRj/8qCITEZJ0ETurmQ885Mn1sevK1oZQuX
tkKIG+3ICbDewwaFqGDwvy3lKOYOMK+D6xlt5If6iPqGgHjXIVC8LrtXfoX+wh44
g/+QPXHlVkX5eOlvi5Qb
=xnh9
-END PGP SIGNATURE-

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



[Bug 56032] WebSocket Endpoint onClose method not called when channel closed by thread interruption

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56032

--- Comment #2 from Mark Thomas  ---
I've been looking at the WebSocket code and (by tweaking a unit tests an using
a few break points) I can create a situation where the server times out trying
to write a WebSocket message to the client. The behavior in this case should be
the same as if the thread waiting for the write to complete was interrupted.

I see the onError() call to the Endpoint but the connection is not closed. That
does not seem right to me. Generally any call to onError() should be followed
by the closure of the session unless we are sure that the situation is
recoverable (and the nature of the protocol is that it almost certainly is not
recoverable).

There are a few things I still want to check but I should be in a position to
apply the fix for this tomorrow.

-- 
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



buildbot failure in ASF Buildbot on tomcat-trunk

2014-01-20 Thread buildbot
The Buildbot has detected a new failure on builder tomcat-trunk while building 
ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/tomcat-trunk/builds/5421

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: bb-vm_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch tomcat/trunk] 1559801
Blamelist: jboynes

BUILD FAILED: failed compile_1

sincerely,
 -The Buildbot




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



[GUMP@vmgump]: Project tomcat-trunk-validate-eoln (in module tomcat-trunk) failed

2014-01-20 Thread Bill Barker
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-trunk-validate-eoln has an issue affecting its community 
integration.
This issue affects 1 projects.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- tomcat-trunk-validate-eoln :  Tomcat 8.x, a web server implementing the 
Java Servlet 3.1,
...


Full details are available at:

http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate-eoln/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -INFO- Failed with reason build failed



The following work was performed:
http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate-eoln/gump_work/build_tomcat-trunk_tomcat-trunk-validate-eoln.html
Work Name: build_tomcat-trunk_tomcat-trunk-validate-eoln (Type: Build)
Work ended in a state of : Failed
Elapsed: 9 secs
Command Line: /usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true 
-Dbuild.sysclasspath=only org.apache.tools.ant.Main 
-Dgump.merge=/srv/gump/public/gump/work/merge.xml validate-eoln 
[Working Directory: /srv/gump/public/workspace/tomcat-trunk]
CLASSPATH: 
/usr/lib/jvm/java-7-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-trunk/output/classes:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar
-
Buildfile: /srv/gump/public/workspace/tomcat-trunk/build.xml

build-prepare:
[mkdir] Created dir: /srv/gump/public/workspace/tomcat-trunk/output/classes
[mkdir] Created dir: /srv/gump/public/workspace/tomcat-trunk/output/build
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-trunk/output/build/bin
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-trunk/output/build/conf
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-trunk/output/build/lib
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-trunk/output/build/logs
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-trunk/output/build/temp
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-trunk/output/build/webapps

compile-prepare:
 [copy] Copying 1 file to 
/srv/gump/public/workspace/tomcat-trunk/java/org/apache/catalina/startup
 [copy] Copying 1 file to 
/srv/gump/public/workspace/tomcat-trunk/webapps/docs

validate-eoln:
[javac] Compiling 1 source file to 
/srv/gump/public/workspace/tomcat-trunk/output/classes
 [checkeol] Checking line ends in 2691 file(s)
 [checkeol] Checking line ends in 87 file(s)
 [checkeol] Done line ends check in 2778 file(s), 1 error(s) found.
 [checkeol] The following files have wrong line ends: [
 [checkeol] 
/srv/gump/public/workspace/tomcat-trunk/test/webapp/bug5/bug56029.jspx: 
uses CRLF on line 1]

BUILD FAILED
/srv/gump/public/workspace/tomcat-trunk/build.xml:586: The following files have 
wrong line ends: [
/srv/gump/public/workspace/tomcat-trunk/test/webapp/bug5/bug56029.jspx: 
uses CRLF on line 1]

Total time: 9 seconds
-

To subscribe to this information via syndicated feeds:
- RSS: 
http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate-eoln/rss.xml
- Atom: 
http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-validate-eoln/atom.xml

== Gump Tracking Only ===
Produced by Apache Gump(TM) version 2.3.
Gump Run 2014012106, vmgump.apache.org:vmgump:2014012106
Gump E-mail Identifier (unique within run) #2.

--
Apache Gump
http://gump.apache.org/ [Instance: vmgump]

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



[GUMP@vmgump]: Project tomcat-tc7.0.x-validate-eoln (in module tomcat-7.0.x) failed

2014-01-20 Thread Bill Barker
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-tc7.0.x-validate-eoln has an issue affecting its community 
integration.
This issue affects 1 projects.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- tomcat-tc7.0.x-validate-eoln :  Tomcat 7.x, a web server implementing 
Java Servlet 3.0,
...


Full details are available at:

http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-validate-eoln/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -INFO- Failed with reason build failed



The following work was performed:
http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-validate-eoln/gump_work/build_tomcat-7.0.x_tomcat-tc7.0.x-validate-eoln.html
Work Name: build_tomcat-7.0.x_tomcat-tc7.0.x-validate-eoln (Type: Build)
Work ended in a state of : Failed
Elapsed: 7 secs
Command Line: /usr/lib/jvm/java-7-oracle/bin/java -Djava.awt.headless=true 
-Dbuild.sysclasspath=only org.apache.tools.ant.Main 
-Dgump.merge=/srv/gump/public/gump/work/merge.xml validate-eoln 
[Working Directory: /srv/gump/public/workspace/tomcat-7.0.x]
CLASSPATH: 
/usr/lib/jvm/java-7-oracle/lib/tools.jar:/srv/gump/public/workspace/tomcat-7.0.x/output/classes:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit4.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/xml-commons/java/build/resolver.jar
-
Buildfile: /srv/gump/public/workspace/tomcat-7.0.x/build.xml

build-prepare:
[mkdir] Created dir: /srv/gump/public/workspace/tomcat-7.0.x/output/classes
[mkdir] Created dir: /srv/gump/public/workspace/tomcat-7.0.x/output/build
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/bin
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/conf
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/lib
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/logs
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/temp
[mkdir] Created dir: 
/srv/gump/public/workspace/tomcat-7.0.x/output/build/webapps

compile-prepare:
 [copy] Copying 1 file to 
/srv/gump/public/workspace/tomcat-7.0.x/java/org/apache/catalina/startup
 [copy] Copying 1 file to 
/srv/gump/public/workspace/tomcat-7.0.x/webapps/docs

validate-eoln:
[javac] Compiling 1 source file to 
/srv/gump/public/workspace/tomcat-7.0.x/output/classes
 [checkeol] Checking line ends in 2510 file(s)
 [checkeol] Checking line ends in 87 file(s)
 [checkeol] Done line ends check in 2597 file(s), 1 error(s) found.
 [checkeol] The following files have wrong line ends: [
 [checkeol] 
/srv/gump/public/workspace/tomcat-7.0.x/test/webapp-3.0/bug5/bug56029.jspx: 
uses CRLF on line 1]

BUILD FAILED
/srv/gump/public/workspace/tomcat-7.0.x/build.xml:552: The following files have 
wrong line ends: [
/srv/gump/public/workspace/tomcat-7.0.x/test/webapp-3.0/bug5/bug56029.jspx: 
uses CRLF on line 1]

Total time: 7 seconds
-

To subscribe to this information via syndicated feeds:
- RSS: 
http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-validate-eoln/rss.xml
- Atom: 
http://vmgump.apache.org/gump/public/tomcat-7.0.x/tomcat-tc7.0.x-validate-eoln/atom.xml

== Gump Tracking Only ===
Produced by Apache Gump(TM) version 2.3.
Gump Run 2014012106, vmgump.apache.org:vmgump:2014012106
Gump E-mail Identifier (unique within run) #1.

--
Apache Gump
http://gump.apache.org/ [Instance: vmgump]

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



[Bug 56042] New: java.lang.IllegalStateException: Calling [asyncComplete()] is not valid for a request with Async state [MUST_DISPATCH]

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56042

Bug ID: 56042
   Summary: java.lang.IllegalStateException: Calling
[asyncComplete()] is not valid for a request with
Async state [MUST_DISPATCH]
   Product: Tomcat 7
   Version: 7.0.50
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: rstoyanc...@yahoo.com

The issue appears if the response has been set before startAsync:

response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
AsyncContext asyncContext = request.startAsync(request, response);
asyncContext.dispatch();

You might wonder why would anyone do that? The actual scenario is a bit more
complex. It involves a separate thread that completes very fast, even before
startAsync is called. 

The resulting stack trace:
java.lang.IllegalStateException: Calling [asyncComplete()] is not valid for a
request with Async state [MUST_DISPATCH]
at
org.apache.coyote.AsyncStateMachine.asyncComplete(AsyncStateMachine.java:227)
at
org.apache.coyote.http11.Http11Processor.actionInternal(Http11Processor.java:358)
at
org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:871)
at org.apache.coyote.Request.action(Request.java:344)
at
org.apache.catalina.core.AsyncContextImpl.complete(AsyncContextImpl.java:92)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:140)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)

The Servlet spec says: "It is illegal to call startAsync if ..., or if the
response has been committed and closed, ...". 

If that is indeed the reason, a clear error should be raised, and startAsync
not be allowed to proceed. Or perhaps it is an issue that can be fixed? For
what it's worth it actually works in Jetty even though the spec says it is
illegal.

-- 
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



Notes from review of BZ 56029 and ELParser patches

2014-01-20 Thread Konstantin Kolinko
Hi!

Reviewing the patches for
https://issues.apache.org/bugzilla/show_bug.cgi?id=56029
(r1559555, r1559708, r1559820)

Important:

1. The test "org.apache.jasper.compiler.TestELParser" tests success of
a roundtrip:
- parsing a String into EL expression
- recreating original String with ELParser$TextBuilder

The method ELParser$TextBuilder.visit(Function n)  reconstructs function call as
prefix + ':' + name + '('

To reconstruct original string it has to know whitespaces of 4 tokens:
 prefix, name and ':' and '('.
Starting with r1559708 both prefix and name are trimmed,  and
character tokens do not know their whitespace either.

Thus it does not fly.

Test TestELParser.testTernary07() is a valid test, but it is a bit
misleading. It works because '$ {' does not start an EL expression.
If I remove the whitespace between '$ {' characters, its starts to fail.
The following 3 new tests fail:
doTestParser(" ${ do:it( a eq 1 ? true : false, y ) } ");
doTestParser(" ${ do:it ( a eq 1 ? true : false, y ) } ");
doTestParser(" ${!empty my:link(foo)} ");

(If reconstruction were not necessary then I think BZ 56029 could be
fixed by simply returning
' ' + prefix + ':' + name + '('   there. The leading whitespace can be
conditioned on whether
preceding character is a symbol.)


Performance notes:

Performance of this code is not important, as it runs at JSP
compilation time only. I think compilation of the java code is the
main consumer of time here.
With such disclaimer, here are some notes.

2. The code that resets StringBuilder in methods parseEL() and
getAndResetWhiteSpace() of ELParser.

Currently it is done via "new StringBuilder()" call.

It can be done by calling buf.setLength(0). I see no need to create a
new buffer each time.

3. The input here is a String.  When parsing a whitespace or a token
it would be better to call substring() method on the original String
rather than manipulating a StringBuilder.

A StringBuilder is needed only when some unescaping is performed and
thus substring() cannot be used.

4. Calling  ELParser$Id.toString().trim()  performs string
concatenation (whiteSpace+id) followed by trimming. The string
manipulations can be avoided by adding a new method that returns
trimmed text (the value of id).

The prefix + ':' + name + '(' concatenation in ELParser$TextBuilder
could be avoided if one had a substring() from the original input
String that contains all those spaces and tokens.

Best regards,
Konstantin Kolinko

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



[Bug 56043] New: Adding Admin control for default page

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56043

Bug ID: 56043
   Summary: Adding Admin control for default page
   Product: Tomcat 7
   Version: 7.0.50
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: major
  Priority: P2
 Component: Manager
  Assignee: dev@tomcat.apache.org
  Reporter: t...@chinasystems-me.com

Kindly advise how we can limit end user from accessing Apache manual ?

Ie if user access default page ie http://localhost:9080 , how we can force user
to input user name and password?

Thanks

-- 
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 56043] Adding Admin control for default page

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56043

Mark Thomas  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Mark Thomas  ---
Bugzilla is not a support forum. Please use the Tomcat users mailing list.

-- 
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 56043] Adding Admin control for default page

2014-01-20 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=56043

Tinu  changed:

   What|Removed |Added

 Status|RESOLVED|CLOSED

-- 
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