[jira] [Closed] (MTOMCAT-227) Can't use slf4j-jcl with tomcat7:run

2014-01-19 Thread *$^¨%`£

 [ 
https://issues.apache.org/jira/browse/MTOMCAT-227?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Olivier Lamy (*$^¨%`£) closed MTOMCAT-227.
--

Resolution: Fixed

please clone this jira in a new one and do not reopen.

> Can't use slf4j-jcl with tomcat7:run
> 
>
> Key: MTOMCAT-227
> URL: https://issues.apache.org/jira/browse/MTOMCAT-227
> Project: Apache Tomcat Maven Plugin
>  Issue Type: Bug
>  Components: tomcat7
>Affects Versions: 2.1
>Reporter: Tony Chemit
>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



[Bug 49711] HttpServletRequest#getParts() does not work in a Filter

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

Konstantin Kolinko  changed:

   What|Removed |Added

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

--- Comment #15 from Konstantin Kolinko  ---
(In reply to noel from comment #14)
> This problem also exists in Tomcat 7.0.47.

The burden of proof is yours. You provided no proof.

Please discuss this on the users mailing list so that others confirm
that there is an issue, before reopening or submitting other issue.

Note that

1. The testsuite contains testcases for this feature,

org.apache.catalina.core.TestStandardContext#testBug49711()
org.apache.catalina.connector.TestRequest#testBug54984()

So it does work, if configured properly.

2. You must read documentation on "allowCasualMultipartParsing" option, as
mentioned above. It is off by default.

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

Re-closing as FIXED.

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

2014-01-19 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/5415

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

Buildslave for this Build: bb-vm_ubuntu

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

Build succeeded!

sincerely,
 -The Buildbot





[Bug 49711] HttpServletRequest#getParts() does not work in a Filter

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

n...@familie-kuntze.de changed:

   What|Removed |Added

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

--- Comment #14 from n...@familie-kuntze.de ---
This problem also exists in Tomcat 7.0.47.

-- 
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 49711] HttpServletRequest#getParts() does not work in a Filter

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

n...@familie-kuntze.de changed:

   What|Removed |Added

 CC||n...@familie-kuntze.de

-- 
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-19 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/1693

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] 1559555
Blamelist: markt

Build succeeded!

sincerely,
 -The Buildbot





svn commit: r1559576 - /tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 20:04:49 2014
New Revision: 1559576

URL: http://svn.apache.org/r1559576
Log:
Fix typo

Modified:
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1559576&r1=1559575&r2=1559576&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Sun Jan 19 20:04:49 2014
@@ -126,7 +126,7 @@
   
   
 56021: Make it possible to use the Windows-MY key store with
-the BIO and NIo connectors for SSL configuration. It requires a
+the BIO and NIO connectors for SSL configuration. It requires a
 keystoreFile="" 
keystoreType="Windows-My"
 to be set on the connector. Based on a patch provided by Asanka. 
(markt)
   



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



svn commit: r1559575 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/util/net/AbstractEndpoint.java webapps/docs/changelog.xml

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 20:02:22 2014
New Revision: 1559575

URL: http://svn.apache.org/r1559575
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56021
Make it possible to use the Windows-My keystore that requires keystoreFile="" 
to be set on the connector.

Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

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

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1559575&r1=1559574&r2=1559575&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java 
Sun Jan 19 20:02:22 2014
@@ -709,6 +709,11 @@ public abstract class AbstractEndpoint {
 
 
 public String adjustRelativePath(String path, String relativeTo) {
+// Empty or null path can't point to anything useful. The assumption is
+// that the value is deliberately empty / null so leave it that way.
+if (path == null || path.length() == 0) {
+return path;
+}
 String newPath = path;
 File f = new File(newPath);
 if ( !f.isAbsolute()) {
@@ -807,9 +812,8 @@ public abstract class AbstractEndpoint {
 private String keystoreFile = System.getProperty("user.home")+"/.keystore";
 public String getKeystoreFile() { return keystoreFile;}
 public void setKeystoreFile(String s ) {
-String file = adjustRelativePath(s,
+keystoreFile = adjustRelativePath(s,
 System.getProperty(Constants.CATALINA_BASE_PROP));
-this.keystoreFile = file;
 }
 
 private String keystorePass = null;
@@ -855,13 +859,8 @@ public abstract class AbstractEndpoint {
 private String truststoreFile = 
System.getProperty("javax.net.ssl.trustStore");
 public String getTruststoreFile() {return truststoreFile;}
 public void setTruststoreFile(String s) {
-if (s == null) {
-this.truststoreFile = null;
-} else {
-String file = adjustRelativePath(s,
-System.getProperty(Constants.CATALINA_BASE_PROP));
-this.truststoreFile = file;
-}
+truststoreFile = adjustRelativePath(s,
+System.getProperty(Constants.CATALINA_BASE_PROP));
 }
 
 private String truststorePass =

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1559575&r1=1559574&r2=1559575&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Sun Jan 19 20:02:22 2014
@@ -124,6 +124,12 @@
 55996: Ensure Async requests timeout correctly when using 
the
 NIO HTTP connector. (markt)
   
+  
+56021: Make it possible to use the Windows-MY key store with
+the BIO and NIo connectors for SSL configuration. It requires a
+keystoreFile="" 
keystoreType="Windows-My"
+to be set on the connector. Based on a patch provided by Asanka. 
(markt)
+  
 
   
   



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



[Bug 56021] SSL connector using windows-my keystore

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

Mark Thomas  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from Mark Thomas  ---
Thanks for the report and the suggested fix.

I applied a slightly different patch that allowed some additional code
clean-up.

The patch has been applied to 8.0.x for 8.0.0 onwards and to 7.0.x for 7.0.51
onwards.

Thanks again for your support of the Apache Tomcat community.

-- 
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: r1559574 - /tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:57:44 2014
New Revision: 1559574

URL: http://svn.apache.org/r1559574
Log:
Reduce visibility

Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1559574&r1=1559573&r2=1559574&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Sun Jan 
19 19:57:44 2014
@@ -752,7 +752,7 @@ public abstract class AbstractEndpoint

svn commit: r1559573 - /tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:57:16 2014
New Revision: 1559573

URL: http://svn.apache.org/r1559573
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56021
Make it possible to use the Windows-My keystore that requires keystoreFile="" 
to be set on the connector.

Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1559573&r1=1559572&r2=1559573&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Sun Jan 
19 19:57:16 2014
@@ -753,6 +753,11 @@ public abstract class AbstractEndpoint

svn commit: r1559571 - /tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:50:11 2014
New Revision: 1559571

URL: http://svn.apache.org/r1559571
Log:
Fix typo

Modified:
tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java

Modified: 
tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java?rev=1559571&r1=1559570&r2=1559571&view=diff
==
--- tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java 
Sun Jan 19 19:50:11 2014
@@ -398,7 +398,7 @@ public class TestAbstractHttp11Processor
 
 assertEquals(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, rc);
 if (responseBody.getLength() > 0) {
-// It will be >0 if the standard error page handlign has been
+// It will be >0 if the standard error page handling has been
 // triggered
 assertFalse(responseBody.toString().contains("FAIL"));
 }



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



[Bug 55956] Regarding Tomcat Manager Application Status

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

--- Comment #6 from Mark Thomas  ---
The information you are looking at comes from the request processors. They look
at the CoyoteRequest and that is not modified by the RemoteIp[Filter|Valve].

I'm currently pondering how to best address this.

-- 
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 56018] Oversized header errors are not handled in some cases

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

Mark Thomas  changed:

   What|Removed |Added

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

--- Comment #1 from Mark Thomas  ---
If there is no explicit flush then the output isn't flushed until after the
execution path has exited the ErrorReportingValve. Once past this point there
is no opportunity to add a error body.

In all of the error cases cited in this report, Tomcat will return a 500
response to the user agent. How the user agent chooses to display (or not
display) that to the user is up to the user agent. There will also be a 500
entry in the access log.

-- 
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 56013] SpnegoAuthenticator not working in IBM JDK v7 for Kerberos due to incorrect credential lifetime

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

Mark Thomas  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from Mark Thomas  ---
Thanks for the patch.

I used a variation of your patch as I made the current vendor information
global as it is used elsewhere in the code base.

This has been fixed in 8.0.x for 8.0.0 onwards and in 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: r1559566 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/authenticator/SpnegoAuthenticator.java webapps/docs/changelog.xml

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:31:24 2014
New Revision: 1559566

URL: http://svn.apache.org/r1559566
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56013
IBM JRE only understands indefinite lifetime

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

tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

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

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java?rev=1559566&r1=1559565&r2=1559566&view=diff
==
--- 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
 (original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
 Sun Jan 19 19:31:24 2014
@@ -28,6 +28,7 @@ import javax.security.auth.login.LoginCo
 import javax.security.auth.login.LoginException;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.catalina.Globals;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.deploy.LoginConfig;
@@ -219,12 +220,19 @@ public class SpnegoAuthenticator extends
 // Assume the GSSContext is stateless
 // TODO: Confirm this assumption
 final GSSManager manager = GSSManager.getInstance();
+// IBM JDK only understands indefinite lifetime
+final int credentialLifetime;
+if (Globals.IS_IBM_JVM) {
+credentialLifetime = GSSCredential.INDEFINITE_LIFETIME;
+} else {
+credentialLifetime = GSSCredential.DEFAULT_LIFETIME;
+}
 final PrivilegedExceptionAction action =
 new PrivilegedExceptionAction() {
 @Override
 public GSSCredential run() throws GSSException {
 return manager.createCredential(null,
-GSSCredential.DEFAULT_LIFETIME,
+credentialLifetime,
 new Oid("1.3.6.1.5.5.2"),
 GSSCredential.ACCEPT_ONLY);
 }

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1559566&r1=1559565&r2=1559566&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Sun Jan 19 19:31:24 2014
@@ -90,6 +90,12 @@
 parsing XML configuration files. (markt)
   
   
+56013: Fix issue with SPNEGO authentication when using IBM
+JREs. IBM JREs only understand the option of infinite lifetime for
+Kerberos credentials. Based on a patch provided by Arunav Sanyal.
+(markt)
+  
+  
 56016: When loading resources for XML schema validation, 
take
 account of the possibility that servlet-api.jar and jsp-api.jar may not
 be loaded by the same class loader. Patch by Juan Carlos Estibariz.



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



svn commit: r1559565 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/Globals.java java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java java/org/apache/catalina/loader/WebappClass

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:28:34 2014
New Revision: 1559565

URL: http://svn.apache.org/r1559565
Log:
Move JVM vendor detection to a global constant.
Fix detection of Sun/Oracle JVM that only worked for older Sun branded JVMs.

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/core/JreMemoryLeakPreventionListener.java
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java

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

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=1559565&r1=1559564&r2=1559565&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 Sun Jan 19 
19:28:34 2014
@@ -16,6 +16,8 @@
  */
 package org.apache.catalina;
 
+import java.util.Locale;
+
 /**
  * Global constants that are applicable to multiple packages within Catalina.
  *
@@ -327,4 +329,31 @@ public final class Globals {
  */
 public static final String JASPER_XML_BLOCK_EXTERNAL_INIT_PARAM =
 "org.apache.jasper.XML_BLOCK_EXTERNAL";
+
+static {
+/**
+ * There are a few places where Tomcat either accesses JVM internals
+ * (e.g. the memory leak protection) or where feature support varies
+ * between JVMs (e.g. SPNEGO). These flags exist to enable Tomcat to
+ * adjust its behaviour based on the vendor of the JVM. In an ideal
+ * world this code would not exist.
+ */
+String vendor = System.getProperty("java.vendor", "");
+vendor = vendor.toLowerCase(Locale.ENGLISH);
+
+if (vendor.startsWith("oracle") || vendor.startsWith("sun")) {
+IS_ORACLE_JVM = true;
+IS_IBM_JVM = false;
+} else if (vendor.contains("ibm")) {
+IS_ORACLE_JVM = false;
+IS_IBM_JVM = true;
+} else {
+IS_ORACLE_JVM = false;
+IS_IBM_JVM = false;
+}
+}
+
+public static final boolean IS_ORACLE_JVM;
+
+public static final boolean IS_IBM_JVM;
 }

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?rev=1559565&r1=1559564&r2=1559565&view=diff
==
--- 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java
 (original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java
 Sun Jan 19 19:28:34 2014
@@ -30,6 +30,7 @@ import javax.imageio.ImageIO;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.catalina.Globals;
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
 import org.apache.catalina.LifecycleListener;
@@ -323,8 +324,7 @@ public class JreMemoryLeakPreventionList
 new Class[] {long.class});
 method.invoke(null, Long.valueOf(Long.MAX_VALUE - 1));
 } catch (ClassNotFoundException e) {
-if (System.getProperty("java.vendor").startsWith(
-"Sun")) {
+if (Globals.IS_ORACLE_JVM) {
 log.error(sm.getString(
 "jreLeakListener.gcDaemonFail"), e);
 } else {
@@ -456,8 +456,7 @@ public class JreMemoryLeakPreventionList
 try {
 Class.forName("com.sun.jndi.ldap.LdapPoolManager");
 } catch (ClassNotFoundException e) {
-if (System.getProperty("java.vendor").startsWith(
-"Sun")) {
+if (Globals.IS_ORACLE_JVM) {
 log.error(sm.getString(
 "jreLeakListener.ldapPoolManagerFail"), e);
 } else {

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1559565&r1=1559564&r2=1559565&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java 
Sun 

svn commit: r1559562 - /tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:26:09 2014
New Revision: 1559562

URL: http://svn.apache.org/r1559562
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56013
IBM JDK only understands indefinite lifetime

Modified:
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java?rev=1559562&r1=1559561&r2=1559562&view=diff
==
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
Sun Jan 19 19:26:09 2014
@@ -28,6 +28,7 @@ import javax.security.auth.login.LoginCo
 import javax.security.auth.login.LoginException;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.catalina.Globals;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.connector.Request;
 import org.apache.juli.logging.Log;
@@ -215,12 +216,19 @@ public class SpnegoAuthenticator extends
 // Assume the GSSContext is stateless
 // TODO: Confirm this assumption
 final GSSManager manager = GSSManager.getInstance();
+// IBM JDK only understands indefinite lifetime
+final int credentialLifetime;
+if (Globals.IS_IBM_JVM) {
+credentialLifetime = GSSCredential.INDEFINITE_LIFETIME;
+} else {
+credentialLifetime = GSSCredential.DEFAULT_LIFETIME;
+}
 final PrivilegedExceptionAction action =
 new PrivilegedExceptionAction() {
 @Override
 public GSSCredential run() throws GSSException {
 return manager.createCredential(null,
-GSSCredential.DEFAULT_LIFETIME,
+credentialLifetime,
 new Oid("1.3.6.1.5.5.2"),
 GSSCredential.ACCEPT_ONLY);
 }



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



svn commit: r1559561 - in /tomcat/trunk/java/org/apache/catalina: Globals.java core/JreMemoryLeakPreventionListener.java loader/WebappClassLoader.java

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:22:24 2014
New Revision: 1559561

URL: http://svn.apache.org/r1559561
Log:
Move JVM vendor detection to a global constant.
Fix detection of Sun/Oracle JVM that only worked for older Sun branded JVMs.

Modified:
tomcat/trunk/java/org/apache/catalina/Globals.java

tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java
tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java

Modified: tomcat/trunk/java/org/apache/catalina/Globals.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Globals.java?rev=1559561&r1=1559560&r2=1559561&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/Globals.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Globals.java Sun Jan 19 19:22:24 2014
@@ -16,6 +16,8 @@
  */
 package org.apache.catalina;
 
+import java.util.Locale;
+
 /**
  * Global constants that are applicable to multiple packages within Catalina.
  *
@@ -290,4 +292,31 @@ public final class Globals {
  */
 public static final String JASPER_XML_BLOCK_EXTERNAL_INIT_PARAM =
 "org.apache.jasper.XML_BLOCK_EXTERNAL";
+
+static {
+/**
+ * There are a few places where Tomcat either accesses JVM internals
+ * (e.g. the memory leak protection) or where feature support varies
+ * between JVMs (e.g. SPNEGO). These flags exist to enable Tomcat to
+ * adjust its behaviour based on the vendor of the JVM. In an ideal
+ * world this code would not exist.
+ */
+String vendor = System.getProperty("java.vendor", "");
+vendor = vendor.toLowerCase(Locale.ENGLISH);
+
+if (vendor.startsWith("oracle") || vendor.startsWith("sun")) {
+IS_ORACLE_JVM = true;
+IS_IBM_JVM = false;
+} else if (vendor.contains("ibm")) {
+IS_ORACLE_JVM = false;
+IS_IBM_JVM = true;
+} else {
+IS_ORACLE_JVM = false;
+IS_IBM_JVM = false;
+}
+}
+
+public static final boolean IS_ORACLE_JVM;
+
+public static final boolean IS_IBM_JVM;
 }

Modified: 
tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?rev=1559561&r1=1559560&r2=1559561&view=diff
==
--- 
tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java 
Sun Jan 19 19:22:24 2014
@@ -30,6 +30,7 @@ import javax.imageio.ImageIO;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.catalina.Globals;
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
 import org.apache.catalina.LifecycleListener;
@@ -309,8 +310,7 @@ public class JreMemoryLeakPreventionList
 new Class[] {long.class});
 method.invoke(null, Long.valueOf(Long.MAX_VALUE - 1));
 } catch (ClassNotFoundException e) {
-if (System.getProperty("java.vendor").startsWith(
-"Sun")) {
+if (Globals.IS_ORACLE_JVM) {
 log.error(sm.getString(
 "jreLeakListener.gcDaemonFail"), e);
 } else {
@@ -442,8 +442,7 @@ public class JreMemoryLeakPreventionList
 try {
 Class.forName("com.sun.jndi.ldap.LdapPoolManager");
 } catch (ClassNotFoundException e) {
-if (System.getProperty("java.vendor").startsWith(
-"Sun")) {
+if (Globals.IS_ORACLE_JVM) {
 log.error(sm.getString(
 "jreLeakListener.ldapPoolManagerFail"), e);
 } else {

Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1559561&r1=1559560&r2=1559561&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Sun Jan 
19 19:22:24 2014
@@ -2291,14 +2291,14 @@ public class WebappClassLoader extends U
 "webappClassLoader.clearReferencesResourceBundlesFail",
 getContextName()), e);
 } catch (NoSuchFieldException e) {
-if (System.getProperty("java.vendor").startsWith

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

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:05:50 2014
New Revision: 1559556

URL: http://svn.apache.org/r1559556
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=1559556&r1=1559555&r2=1559556&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Sun Jan 19 19:05:50 2014
@@ -38,7 +38,7 @@ 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/r1559401 (less test cases)
+  https://svn.apache.org/r1559555
   +1: markt
   -1:
 



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



Re: svn commit: r1559397 - in /tomcat/trunk: java/org/apache/jasper/compiler/ELParser.java test/org/apache/jasper/compiler/TestELParser.java

2014-01-19 Thread Mark Thomas
On 18/01/2014 22:48, Mark Thomas wrote:
> On 18/01/2014 22:02, Jeremy Boynes wrote:



>> This broke TestELInJSP for me:

Should be fixed now.

Mark


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



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

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:04:55 2014
New Revision: 1559553

URL: http://svn.apache.org/r1559553
Log:
Revert changes in r1559401 for this file.
The first attempt at a fix introduced a different regression

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

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=1559553&r1=1559552&r2=1559553&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 Sun Jan 
19 19:04:55 2014
@@ -103,7 +103,7 @@ public class ELParser {
 
 StringBuilder buf = new StringBuilder();
 ELexpr = new ELNode.Nodes();
-while (hasNextChar()) {
+while (hasNext()) {
 curToken = nextToken();
 if (curToken instanceof Char) {
 if (curToken.toChar() == '}') {
@@ -140,16 +140,16 @@ public class ELParser {
 }
 String s1 = null; // Function prefix
 String s2 = curToken.toString(); // Function name
-if (hasNextChar()) {
+if (hasNext()) {
 int mark = getIndex();
 curToken = nextToken();
 if (curToken.toChar() == ':') {
-if (hasNextChar()) {
+if (hasNext()) {
 Token t2 = nextToken();
 if (t2 instanceof Id) {
 s1 = s2;
 s2 = t2.toString();
-if (hasNextChar()) {
+if (hasNext()) {
 curToken = nextToken();
 }
 }
@@ -169,12 +169,11 @@ public class ELParser {
  * Test if an id is a reserved word in EL
  */
 private boolean isELReserved(String id) {
-String trimmed = id.trim();
 int i = 0;
 int j = reservedWords.length;
 while (i < j) {
 int k = (i + j) / 2;
-int result = reservedWords[k].compareTo(trimmed);
+int result = reservedWords[k].compareTo(id);
 if (result == 0) {
 return true;
 }
@@ -233,10 +232,20 @@ public class ELParser {
 }
 
 /*
+ * @return true if there is something left in EL expression buffer other
+ * than white spaces.
+ */
+private boolean hasNext() {
+skipSpaces();
+return hasNextChar();
+}
+
+/*
  * @return The next token in the EL expression buffer.
  */
 private Token nextToken() {
 prevToken = curToken;
+skipSpaces();
 if (hasNextChar()) {
 char ch = nextChar();
 if (Character.isJavaIdentifierStart(ch)) {
@@ -290,6 +299,14 @@ public class ELParser {
  * expression buffer.
  */
 
+private void skipSpaces() {
+while (hasNextChar()) {
+if (expression.charAt(index) > ' ')
+break;
+index++;
+}
+}
+
 private boolean hasNextChar() {
 return index < expression.length();
 }



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



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

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 19:05:23 2014
New Revision: 1559555

URL: http://svn.apache.org/r1559555
Log:
Second attempt at fixing
https://issues.apache.org/bugzilla/show_bug.cgi?id=56029
This fixes BZ56029 by storing any whitespace before a token with the
token and then including it when the expression is re-created.
It also fixes an issue with the function parsing that meant that ternary
expressions could be corrupted if two tokens were parsed before the mark
was reset.

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

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=1559555&r1=1559554&r2=1559555&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 Sun Jan 
19 19:05:23 2014
@@ -38,6 +38,7 @@ public class ELParser {
 
 private Token curToken;  // current token
 private Token prevToken; // previous token
+private StringBuilder whiteSpace = new StringBuilder();
 
 private ELNode.Nodes expr;
 
@@ -103,13 +104,15 @@ public class ELParser {
 
 StringBuilder buf = new StringBuilder();
 ELexpr = new ELNode.Nodes();
+curToken = null;
+prevToken = null;
 while (hasNext()) {
 curToken = nextToken();
 if (curToken instanceof Char) {
 if (curToken.toChar() == '}') {
 break;
 }
-buf.append(curToken.toChar());
+buf.append(curToken.toString());
 } else {
 // Output whatever is in buffer
 if (buf.length() > 0) {
@@ -121,6 +124,9 @@ public class ELParser {
 }
 }
 }
+if (curToken != null) {
+buf.append(curToken.getWhiteSpace());
+}
 if (buf.length() > 0) {
 ELexpr.add(new ELNode.ELText(buf.toString()));
 }
@@ -140,8 +146,9 @@ public class ELParser {
 }
 String s1 = null; // Function prefix
 String s2 = curToken.toString(); // Function name
+Token original = curToken;
 if (hasNext()) {
-int mark = getIndex();
+int mark = getIndex() - whiteSpace.length();
 curToken = nextToken();
 if (curToken.toChar() == ':') {
 if (hasNext()) {
@@ -159,7 +166,7 @@ public class ELParser {
 ELexpr.add(new ELNode.Function(s1, s2));
 return true;
 }
-curToken = prevToken;
+curToken = original;
 setIndex(mark);
 }
 return false;
@@ -240,6 +247,12 @@ public class ELParser {
 return hasNextChar();
 }
 
+private String getAndResetWhiteSpace() {
+String result = whiteSpace.toString();
+whiteSpace = new StringBuilder();
+return result;
+}
+
 /*
  * @return The next token in the EL expression buffer.
  */
@@ -256,14 +269,14 @@ public class ELParser {
 buf.append(ch);
 nextChar();
 }
-return new Id(buf.toString());
+return new Id(getAndResetWhiteSpace(), buf.toString());
 }
 
 if (ch == '\'' || ch == '"') {
 return parseQuotedChars(ch);
 } else {
 // For now...
-return new Char(ch);
+return new Char(getAndResetWhiteSpace(), ch);
 }
 }
 return null;
@@ -291,7 +304,7 @@ public class ELParser {
 buf.append(ch);
 }
 }
-return new QuotedString(buf.toString());
+return new QuotedString(getAndResetWhiteSpace(), buf.toString());
 }
 
 /*
@@ -301,8 +314,10 @@ public class ELParser {
 
 private void skipSpaces() {
 while (hasNextChar()) {
-if (expression.charAt(index) > ' ')
+char c = expression.charAt(index);
+if (c > ' ')
 break;
+whiteSpace.append(c);
 index++;
 }
 }
@@ -338,13 +353,23 @@ public class ELParser {
  */
 private static class Token {
 
+protected final String whiteSpace;
+
+Token(String whiteSpace) {
+this.whiteSpace = whiteSpace;
+}
+
 char toChar() {
 return 0;
 }
 
 @Override
 public String toString() {
-return "";
+return whiteSpace;
+}
+
+String getWhiteSpace() 

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

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 18:55:19 2014
New Revision: 1559550

URL: http://svn.apache.org/r1559550
Log:
Second attempt at fixing
https://issues.apache.org/bugzilla/show_bug.cgi?id=56029
This fixes BZ56029 by storing any whitespace before a token with the
token and then including it when the expression is re-created.
It also fixes an issue with the function parsing that meant that ternary
expressions could be corrupted if two tokens were parsed before the mark
was reset.

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=1559550&r1=1559549&r2=1559550&view=diff
==
--- tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java Sun Jan 19 
18:55:19 2014
@@ -38,6 +38,7 @@ public class ELParser {
 
 private Token curToken;  // current token
 private Token prevToken; // previous token
+private StringBuilder whiteSpace = new StringBuilder();
 
 private final ELNode.Nodes expr;
 
@@ -101,13 +102,15 @@ public class ELParser {
 
 StringBuilder buf = new StringBuilder();
 ELexpr = new ELNode.Nodes();
+curToken = null;
+prevToken = null;
 while (hasNext()) {
 curToken = nextToken();
 if (curToken instanceof Char) {
 if (curToken.toChar() == '}') {
 break;
 }
-buf.append(curToken.toChar());
+buf.append(curToken.toString());
 } else {
 // Output whatever is in buffer
 if (buf.length() > 0) {
@@ -119,6 +122,9 @@ public class ELParser {
 }
 }
 }
+if (curToken != null) {
+buf.append(curToken.getWhiteSpace());
+}
 if (buf.length() > 0) {
 ELexpr.add(new ELNode.ELText(buf.toString()));
 }
@@ -138,8 +144,9 @@ public class ELParser {
 }
 String s1 = null; // Function prefix
 String s2 = curToken.toString(); // Function name
+Token original = curToken;
 if (hasNext()) {
-int mark = getIndex();
+int mark = getIndex() - whiteSpace.length();
 curToken = nextToken();
 if (curToken.toChar() == ':') {
 if (hasNext()) {
@@ -157,7 +164,7 @@ public class ELParser {
 ELexpr.add(new ELNode.Function(s1, s2));
 return true;
 }
-curToken = prevToken;
+curToken = original;
 setIndex(mark);
 }
 return false;
@@ -237,6 +244,12 @@ public class ELParser {
 return hasNextChar();
 }
 
+private String getAndResetWhiteSpace() {
+String result = whiteSpace.toString();
+whiteSpace = new StringBuilder();
+return result;
+}
+
 /*
  * @return The next token in the EL expression buffer.
  */
@@ -254,14 +267,14 @@ public class ELParser {
 buf.append(ch);
 nextChar();
 }
-return new Id(buf.toString());
+return new Id(getAndResetWhiteSpace(), buf.toString());
 }
 
 if (ch == '\'' || ch == '"') {
 return parseQuotedChars(ch);
 } else {
 // For now...
-return new Char(ch);
+return new Char(getAndResetWhiteSpace(), ch);
 }
 }
 return null;
@@ -289,7 +302,7 @@ public class ELParser {
 buf.append(ch);
 }
 }
-return new QuotedString(buf.toString());
+return new QuotedString(getAndResetWhiteSpace(), buf.toString());
 }
 
 /*
@@ -299,8 +312,10 @@ public class ELParser {
 
 private void skipSpaces() {
 while (hasNextChar()) {
-if (expression.charAt(index) > ' ')
+char c = expression.charAt(index);
+if (c > ' ')
 break;
+whiteSpace.append(c);
 index++;
 }
 }
@@ -329,13 +344,23 @@ public class ELParser {
  */
 private static class Token {
 
+protected final String whiteSpace;
+
+Token(String whiteSpace) {
+this.whiteSpace = whiteSpace;
+}
+
 char toChar() {
 return 0;
 }
 
 @Override
 public String toString() {
-return "";
+return whiteSpace;
+}
+
+String getWhiteSpace() {
+return whiteSpace;
 }
 }
 
@@ -345,13 +370,14 @@ public class ELParser {
 private static class Id extends Token {
 String id;
 
-Id(String id) {
+Id(String whiteSpace, St

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

2014-01-19 Thread markt
Author: markt
Date: Sun Jan 19 18:54:47 2014
New Revision: 1559549

URL: http://svn.apache.org/r1559549
Log:
Revert changes in r1559397 for this file.
The first attempt at a fix introduced a different regression

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=1559549&r1=1559548&r2=1559549&view=diff
==
--- tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/ELParser.java Sun Jan 19 
18:54:47 2014
@@ -101,7 +101,7 @@ public class ELParser {
 
 StringBuilder buf = new StringBuilder();
 ELexpr = new ELNode.Nodes();
-while (hasNextChar()) {
+while (hasNext()) {
 curToken = nextToken();
 if (curToken instanceof Char) {
 if (curToken.toChar() == '}') {
@@ -138,16 +138,16 @@ public class ELParser {
 }
 String s1 = null; // Function prefix
 String s2 = curToken.toString(); // Function name
-if (hasNextChar()) {
+if (hasNext()) {
 int mark = getIndex();
 curToken = nextToken();
 if (curToken.toChar() == ':') {
-if (hasNextChar()) {
+if (hasNext()) {
 Token t2 = nextToken();
 if (t2 instanceof Id) {
 s1 = s2;
 s2 = t2.toString();
-if (hasNextChar()) {
+if (hasNext()) {
 curToken = nextToken();
 }
 }
@@ -167,12 +167,11 @@ public class ELParser {
  * Test if an id is a reserved word in EL
  */
 private boolean isELReserved(String id) {
-String trimmed = id.trim();
 int i = 0;
 int j = reservedWords.length;
 while (i < j) {
 int k = (i + j) / 2;
-int result = reservedWords[k].compareTo(trimmed);
+int result = reservedWords[k].compareTo(id);
 if (result == 0) {
 return true;
 }
@@ -230,10 +229,20 @@ public class ELParser {
 }
 
 /*
+ * @return true if there is something left in EL expression buffer other
+ * than white spaces.
+ */
+private boolean hasNext() {
+skipSpaces();
+return hasNextChar();
+}
+
+/*
  * @return The next token in the EL expression buffer.
  */
 private Token nextToken() {
 prevToken = curToken;
+skipSpaces();
 if (hasNextChar()) {
 char ch = nextChar();
 if (Character.isJavaIdentifierStart(ch)) {
@@ -288,6 +297,14 @@ public class ELParser {
  * expression buffer.
  */
 
+private void skipSpaces() {
+while (hasNextChar()) {
+if (expression.charAt(index) > ' ')
+break;
+index++;
+}
+}
+
 private boolean hasNextChar() {
 return index < expression.length();
 }



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



[ANN] Apache Standard Taglib 1.2.1 released

2014-01-19 Thread Jeremy Boynes
The Apache Tomcat team announces the immediate availability of Apache Standard 
Taglib 1.2.1.

Apache Standard Taglib is an open source software implementation of the JSP 
Standard Tag Library (JSTL) technology.

This release supports JSTL version 1.2 along with numerous bug-fixes and 
improvements on the previous 1.1.2 release. The notable changes include:
- Transitioned project from Apache Jakarta to Apache Tomcat
- Implementation of new functionality for JSTL 1.2; requires Java 1.5
- Switched to Maven-based build
- Renamed JARs and modified packaging structure; OSGI metadata added
- XML processing performance improved by direct use of Xalan

Please refer to the change log included in the distribution for a complete list 
of the issues addressed.

Downloads:
http://tomcat.apache.org/download-taglibs.cgi




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [Taglibs] Site updated; ready for announce.

2014-01-19 Thread Jeremy Boynes
On Jan 18, 2014, at 8:12 PM, Henri Yandell  wrote:

> I've updated the site to point to the 1.2.1 release. It's a bit of a kludge
> right now. Once RDC heads in the direction of the Attic, I'd like to move
> the site fully into the tomcat-site directory, avoiding any of the
> generated Maven noise. Then the only oddity is copying the javadoc in.
> 
> Jeremy - would you like to do the honours and send the announcement email
> to users@tomcat and to annou...@apache.org?

I found another broken link. +1 on integrating with the main site to avoid 
frankenstein and to get the look and feel to match; I think mvn is more work 
than benefit here.

I’ll send out the announcement.
Thanks
Jeremy




signature.asc
Description: Message signed with OpenPGP using GPGMail


svn commit: r1559526 - /tomcat/site/trunk/docs/taglibs/index.html

2014-01-19 Thread jboynes
Author: jboynes
Date: Sun Jan 19 16:57:35 2014
New Revision: 1559526

URL: http://svn.apache.org/r1559526
Log:
manual fix for broken link

Modified:
tomcat/site/trunk/docs/taglibs/index.html

Modified: tomcat/site/trunk/docs/taglibs/index.html
URL: 
http://svn.apache.org/viewvc/tomcat/site/trunk/docs/taglibs/index.html?rev=1559526&r1=1559525&r2=1559526&view=diff
==
--- tomcat/site/trunk/docs/taglibs/index.html (original)
+++ tomcat/site/trunk/docs/taglibs/index.html Sun Jan 19 16:57:35 2014
@@ -159,7 +159,7 @@
 
 2014/01/02
 
-[Standard]
+[Standard]
   
 The Apache Standard Taglib 1.2.1, an implementation of JSTL 1.2, has 
been released.
   



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



svn commit: r1559525 - /tomcat/taglibs/site/src/site/xdoc/index.xml

2014-01-19 Thread jboynes
Author: jboynes
Date: Sun Jan 19 16:55:17 2014
New Revision: 1559525

URL: http://svn.apache.org/r1559525
Log:
fix broken link

Modified:
tomcat/taglibs/site/src/site/xdoc/index.xml

Modified: tomcat/taglibs/site/src/site/xdoc/index.xml
URL: 
http://svn.apache.org/viewvc/tomcat/taglibs/site/src/site/xdoc/index.xml?rev=1559525&r1=1559524&r2=1559525&view=diff
==
--- tomcat/taglibs/site/src/site/xdoc/index.xml (original)
+++ tomcat/taglibs/site/src/site/xdoc/index.xml Sun Jan 19 16:55:17 2014
@@ -47,7 +47,7 @@
 
 
   2014/01/02
-[Standard]
+[Standard]
   
 The Apache Standard Taglib 1.2.1, an implementation of JSTL 1.2, has 
been released.
   



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



svn commit: r1559498 - in /tomcat/maven-plugin/trunk: pom.xml src/site/apt/executable-war-jar.apt.vm

2014-01-19 Thread kkolinko
Author: kkolinko
Date: Sun Jan 19 13:51:16 2014
New Revision: 1559498

URL: http://svn.apache.org/r1559498
Log:
Correct typo s/byte/bytes/, replace tabs with spaces.
Remove leading whitespace in a name.

Modified:
tomcat/maven-plugin/trunk/pom.xml
tomcat/maven-plugin/trunk/src/site/apt/executable-war-jar.apt.vm

Modified: tomcat/maven-plugin/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/pom.xml?rev=1559498&r1=1559497&r2=1559498&view=diff
==
--- tomcat/maven-plugin/trunk/pom.xml (original)
+++ tomcat/maven-plugin/trunk/pom.xml Sun Jan 19 13:51:16 2014
@@ -177,7 +177,7 @@
   Michael Osipov
 
 
-   Matthias Gunther
+  Matthias Gunther
 
   
 

Modified: tomcat/maven-plugin/trunk/src/site/apt/executable-war-jar.apt.vm
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/src/site/apt/executable-war-jar.apt.vm?rev=1559498&r1=1559497&r2=1559498&view=diff
==
--- tomcat/maven-plugin/trunk/src/site/apt/executable-war-jar.apt.vm (original)
+++ tomcat/maven-plugin/trunk/src/site/apt/executable-war-jar.apt.vm Sun Jan 19 
13:51:16 2014
@@ -164,7 +164,7 @@ usage: java -jar [path to your exec war 
 org.apache.coyote.http11.Http11Nio
 Protocol
  -httpsPort  https port to use
- -maxPostSize max post size in byte 
to use
+ -maxPostSize  max post size in bytes to use
  -keyAliasalias from keystore for ssl
  -loggerNamelogger to use: slf4j to use slf4j
 bridge on top of jul



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



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

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

Bug ID: 56032
   Summary: WebSocket Endpoint onClose method not called when
channel closed by thread interruption
   Product: Tomcat 8
   Version: trunk
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: WebSocket
  Assignee: dev@tomcat.apache.org
  Reporter: kenneth.gend...@gmail.com

When an interrupted thread uses the basic or asynchronous remote of a session
to write, the underlying channel is closed (this is as expected); however, the
onClose method of the associated endpoint is not called.  This can lead the
server into believing the session is still active.  The only way I have gotten
around it is to delegate the write methods to6 a thread that can't possibly be
interrupted.

-- 
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-trunk-test (in module tomcat-trunk) failed

2014-01-19 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-test 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-test :  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-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Dependency on junit exists, no need to add for property hamcrest.jar.
 -DEBUG- Dependency on commons-daemon exists, no need to add for property 
commons-daemon.native.src.tgz.
 -DEBUG- Dependency on commons-daemon exists, no need to add for property 
tomcat-native.tar.gz.
 -DEBUG- Dependency on tomcat-trunk exists, no need to add for property 
tomcat-dbcp.home.
 -INFO- Failed with reason build failed
 -INFO- Project Reports in: 
/srv/gump/public/workspace/tomcat-trunk/output/build/logs



The following work was performed:
http://vmgump.apache.org/gump/public/tomcat-trunk/tomcat-trunk-test/gump_work/build_tomcat-trunk_tomcat-trunk-test.html
Work Name: build_tomcat-trunk_tomcat-trunk-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 54 mins 51 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 
-Djunit.jar=/srv/gump/public/workspace/junit/dist/junit-20140119.jar 
-Dobjenesis.jar=/srv/gump/public/workspace/objenesis/main/target/objenesis-2.2-SNAPSHOT.jar
 
-Dtomcat-native.tar.gz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140119-native-src.tar.gz
 -Dexamples.sources.skip=true 
-Dtomcat-dbcp.home=/srv/gump/public/workspace/tomcat-trunk/tomcat-deps 
-Djdt.jar=/srv/gump/packages/eclipse/plugins/org.eclipse.jdt.core_3.4.2/jdtcore.jar
 
-Dcommons-daemon.jar=/srv/gump/public/workspace/apache-commons/daemon/dist/commons-daemon-20140119.jar
 
-Dcommons-daemon.native.src.tgz=/srv/gump/public/workspace/apache-commons/daemon/dist/bin/commons-daemon-20140119-native-src.tar.gz
 -Dtest.accesslog=true 
-Dcommons-pool.home=/srv/gump/public/workspace/apache-commons/pool 
-Dcommons-dbcp.home=/
 srv/gump/public/workspace/apache-commons/dbcp 
-Deasymock.jar=/srv/gump/public/workspace/easymock/easymock/target/easymock-3.3-SNAPSHOT.jar
 -Dhamcrest.jar=/srv/gump/public/workspace/junit/dist/junit-20140119.jar 
-Dcglib.jar=/srv/gump/packages/cglib/cglib-nodep-2.2.jar test 
[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/build/webapps/examples/WEB-INF/classes:/srv/gump/public/workspace/tomcat-trunk/output/testclasses:/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:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/bootstrap.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/bin/tomcat-juli.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/annotations-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/servle
 
t-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jsp-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/el-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/websocket-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ant.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-storeconfig.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-coyote.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/jasper-el.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-tribes.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/catalina-ha.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-api.jar:/srv/gump/public/workspace/tomcat-trunk/output/build/lib/tomcat-jni.jar:/srv/gump/public/workspace/tomcat
 
-trunk/output/build/lib/tomcat-spdy.jar:/srv/g