Re: Context switch integration

2014-01-23 Thread Mark Thomas
On 22/01/2014 22:03, Rémy Maucherat wrote:
> 2014/1/22 Mark Thomas 

>> I'll see what folks think of the patch so far and maybe explore the
>> entry/exit option as well.
>>
> The first patch however looks more complicated than the "dumb" way IMO.

The variation of the code that needs to be run (return value / no return
value, different checked exceptions) adds most of the complication.

I think I'll try, as you put it, a dumb version of the same patch and
see what it looks like.

Mark


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



Re: Context switch integration

2014-01-23 Thread Mark Thomas
On 23/01/2014 09:00, Mark Thomas wrote:
> On 22/01/2014 22:03, Rémy Maucherat wrote:
>> 2014/1/22 Mark Thomas 
> 
>>> I'll see what folks think of the patch so far and maybe explore the
>>> entry/exit option as well.
>>>
>> The first patch however looks more complicated than the "dumb" way IMO.
> 
> The variation of the code that needs to be run (return value / no return
> value, different checked exceptions) adds most of the complication.
> 
> I think I'll try, as you put it, a dumb version of the same patch and
> see what it looks like.

http://people.apache.org/~markt/dev/2014-01-23-tccl-tc8-v2.patch

It was easier to write, removes more code and the result is easier to
read. Unless there are objections I plan to commit this along with some
additional work to migrate other code that is currently doing this itself.

Mark

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



svn commit: r1560645 - /tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 11:42:10 2014
New Revision: 1560645

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

Modified:
tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java?rev=1560645&r1=1560644&r2=1560645&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java Thu Jan 
23 11:42:10 2014
@@ -646,10 +646,7 @@ public class DeltaManager extends Cluste
  */
 protected void deserializeSessions(byte[] data) throws 
ClassNotFoundException,IOException {
 
-// Initialize our internal data structures
-//sessions.clear(); //should not do this
 // Open an input stream to the specified pathname, if any
-ClassLoader originalLoader = 
Thread.currentThread().getContextClassLoader();
 ObjectInputStream ois = null;
 // Load the previously unloaded active sessions
 try {
@@ -702,11 +699,7 @@ public class DeltaManager extends Cluste
 // ignored
 }
 ois = null;
-if (originalLoader != null) {
-Thread.currentThread().setContextClassLoader(originalLoader);
-}
 }
-
 }
 
 



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



svn commit: r1560646 - /tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 11:46:30 2014
New Revision: 1560646

URL: http://svn.apache.org/r1560646
Log:
Use try with resoucres

Modified:
tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java?rev=1560646&r1=1560645&r2=1560646&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java Thu Jan 
23 11:46:30 2014
@@ -647,10 +647,8 @@ public class DeltaManager extends Cluste
 protected void deserializeSessions(byte[] data) throws 
ClassNotFoundException,IOException {
 
 // Open an input stream to the specified pathname, if any
-ObjectInputStream ois = null;
 // Load the previously unloaded active sessions
-try {
-ois = getReplicationStream(data);
+try (ObjectInputStream ois = getReplicationStream(data)) {
 Integer count = (Integer) ois.readObject();
 int n = count.intValue();
 for (int i = 0; i < n; i++) {
@@ -691,14 +689,6 @@ public class DeltaManager extends Cluste
 } catch (IOException e) {
 log.error(sm.getString("deltaManager.loading.ioe", e), e);
 throw e;
-} finally {
-// Close the input stream
-try {
-if (ois != null) ois.close();
-} catch (IOException f) {
-// ignored
-}
-ois = null;
 }
 }
 
@@ -714,12 +704,8 @@ public class DeltaManager extends Cluste
 protected byte[] serializeSessions(Session[] currentSessions) throws 
IOException {
 
 // Open an output stream to the specified pathname, if any
-ByteArrayOutputStream fos = null;
-ObjectOutputStream oos = null;
-
-try {
-fos = new ByteArrayOutputStream();
-oos = new ObjectOutputStream(new BufferedOutputStream(fos));
+ByteArrayOutputStream fos = new ByteArrayOutputStream();
+try (ObjectOutputStream oos = new ObjectOutputStream(new 
BufferedOutputStream(fos))) {
 oos.writeObject(Integer.valueOf(currentSessions.length));
 for(int i=0 ; i < currentSessions.length;i++) {
 ((DeltaSession)currentSessions[i]).writeObjectData(oos);
@@ -729,16 +715,8 @@ public class DeltaManager extends Cluste
 } catch (IOException e) {
 log.error(sm.getString("deltaManager.unloading.ioe", e), e);
 throw e;
-} finally {
-if (oos != null) {
-try {
-oos.close();
-} catch (IOException f) {
-// Ignore
-}
-oos = null;
-}
 }
+
 // send object data as byte[]
 return fos.toByteArray();
 }



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



svn commit: r1560651 - /tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:13:48 2014
New Revision: 1560651

URL: http://svn.apache.org/r1560651
Log:
Clean-up
 - Container will always be a Context
 - only need one call to Thread.currentThread().getContextClassLoader()
 - Fix logic hole if loader.getClassLoader() returns null
 - Formatting to make code easier to read

Modified:
tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java

Modified: 
tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java?rev=1560651&r1=1560650&r2=1560651&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java 
Thu Jan 23 12:13:48 2014
@@ -14,14 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.catalina.ha.session;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.regex.Pattern;
 
-import org.apache.catalina.Container;
 import org.apache.catalina.Context;
 import org.apache.catalina.Loader;
 import org.apache.catalina.ha.CatalinaCluster;
@@ -34,9 +32,7 @@ import org.apache.catalina.tribes.io.Rep
  * @author Filip Hanik
  * @version $Id$
  */
-
-public abstract class ClusterManagerBase extends ManagerBase
-implements ClusterManager {
+public abstract class ClusterManagerBase extends ManagerBase implements 
ClusterManager {
 
 /**
  * A reference to the cluster
@@ -127,18 +123,20 @@ public abstract class ClusterManagerBase
 return sessionAttributePattern.matcher(name).matches();
 }
 
-public static ClassLoader[] getClassLoaders(Container container) {
-Loader loader = null;
+public static ClassLoader[] getClassLoaders(Context context) {
+ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+Loader loader = context.getLoader();
 ClassLoader classLoader = null;
-if (container instanceof Context) {
-loader = ((Context) container).getLoader();
+if (loader != null) {
+classLoader = loader.getClassLoader();
+}
+if (classLoader == null) {
+classLoader = tccl;
 }
-if (loader != null) classLoader = loader.getClassLoader();
-else classLoader = Thread.currentThread().getContextClassLoader();
-if ( classLoader == Thread.currentThread().getContextClassLoader() ) {
+if (classLoader == tccl) {
 return new ClassLoader[] {classLoader};
 } else {
-return new ClassLoader[] 
{classLoader,Thread.currentThread().getContextClassLoader()};
+return new ClassLoader[] {classLoader, tccl};
 }
 }
 



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



svn commit: r1560652 - /tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:14:24 2014
New Revision: 1560652

URL: http://svn.apache.org/r1560652
Log:
Code clean-up
 - BackupManager is an instance of ClusterManagerBase
 - StandardManager is an instance of ManagerBase

Modified:
tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java

Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java?rev=1560652&r1=1560651&r2=1560652&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java Thu Jan 
23 12:14:24 2014
@@ -14,7 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.catalina.ha.session;
 
 import java.io.Externalizable;
@@ -41,7 +40,6 @@ import org.apache.catalina.ha.ClusterMes
 import org.apache.catalina.ha.ClusterSession;
 import org.apache.catalina.realm.GenericPrincipal;
 import org.apache.catalina.session.ManagerBase;
-import org.apache.catalina.session.StandardManager;
 import org.apache.catalina.session.StandardSession;
 import org.apache.catalina.tribes.io.ReplicationStream;
 import org.apache.catalina.tribes.tipis.ReplicatedMapEntry;
@@ -147,15 +145,12 @@ public class DeltaSession extends Standa
 }
 
 public ClassLoader[] getClassLoaders() {
-if ( manager instanceof BackupManager ) return 
((BackupManager)manager).getClassLoaders();
-else if ( manager instanceof ClusterManagerBase ) return 
((ClusterManagerBase)manager).getClassLoaders();
-else if ( manager instanceof StandardManager ) {
-StandardManager sm = (StandardManager)manager;
-return ClusterManagerBase.getClassLoaders(sm.getContext());
-} else if ( manager instanceof ManagerBase ) {
+if (manager instanceof ClusterManagerBase) {
+return ((ClusterManagerBase)manager).getClassLoaders();
+} else if (manager instanceof ManagerBase) {
 ManagerBase mb = (ManagerBase)manager;
 return ClusterManagerBase.getClassLoaders(mb.getContext());
-}//end if
+}
 return null;
 }
 



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



svn commit: r1560653 - in /tomcat/trunk: java/org/apache/catalina/Context.java java/org/apache/catalina/core/StandardContext.java java/org/apache/catalina/startup/FailedContext.java test/org/apache/ca

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:15:19 2014
New Revision: 1560653

URL: http://svn.apache.org/r1560653
Log:
Add bind()/unbind() to Context

Modified:
tomcat/trunk/java/org/apache/catalina/Context.java
tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java
tomcat/trunk/test/org/apache/catalina/core/TesterContext.java

Modified: tomcat/trunk/java/org/apache/catalina/Context.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Context.java?rev=1560653&r1=1560652&r2=1560653&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/Context.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Context.java Thu Jan 23 12:15:19 2014
@@ -1594,4 +1594,43 @@ public interface Context extends Contain
  * method names.
  */
 public Map findPreDestroyMethods();
+
+/**
+ * Change the current thread context class loader to the web application
+ * class loader. If no web application class loader is defined, or if the
+ * current thread is already using the web application class loader then no
+ * change will be made. If the class loader is changed and a
+ * {@link ThreadBindingListener} is configured then
+ * {@link ThreadBindingListener#bind()} will be called after the change has
+ * been made.
+ *
+ * @param usePrivilegedAction
+ *  Should a {@link java.security.PrivilegedAction} be used when
+ *  obtaining the current thread context class loader and setting
+ *  the new one?
+ * @param originalClassLoader
+ *  The current class loader if known to save this method having to
+ *  look it up
+ *
+ * @return If the class loader has been changed by the method it will 
return
+ * the thread context class loader in use when the method was
+ * called. If no change was made then this method returns null.
+ */
+public ClassLoader bind(boolean usePrivilegedAction, ClassLoader 
originalClassLoader);
+
+/**
+ * Restore the current thread context class loader to the original class
+ * loader in used before {@link #bind(boolean, ClassLoader)} was called. If
+ * no original class loader is passed to this method then no change will be
+ * made. If the class loader is changed and a {@link ThreadBindingListener}
+ * is configured then {@link ThreadBindingListener#unbind()} will be called
+ * before the change is made.
+ *
+ * @param usePrivilegedAction
+ *  Should a {@link java.security.PrivilegedAction} be used when
+ *  setting the current thread context class loader?
+ * @param originalClassLoader
+ *  The class loader to restore as the thread context class loader
+ */
+public void unbind(boolean usePrivilegedAction, ClassLoader 
originalClassLoader);
 }

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1560653&r1=1560652&r2=1560653&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Jan 23 
12:15:19 2014
@@ -23,6 +23,8 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -5707,16 +5709,7 @@ public class StandardContext extends Con
  */
 protected ClassLoader bindThread() {
 
-ClassLoader oldContextClassLoader =
-Thread.currentThread().getContextClassLoader();
-
-if (getLoader() != null && getLoader().getClassLoader() != null) {
-Thread.currentThread().setContextClassLoader
-(getLoader().getClassLoader());
-}
-if (getThreadBindingListener() != null) {
-getThreadBindingListener().bind();
-}
+ClassLoader oldContextClassLoader = bind(false, null);
 
 if (isUseNaming()) {
 try {
@@ -5740,10 +5733,102 @@ public class StandardContext extends Con
 ContextBindings.unbindThread(this, this);
 }
 
-if (getThreadBindingListener() != null) {
-getThreadBindingListener().unbind();
+unbind(false, oldContextClassLoader);
+}
+
+
+@Override
+public ClassLoader bind(boolean usePrivilegedAction, ClassLoader 
originalClassLoader) {
+Loader loader = getLoader();
+ClassLoader webApplicationClassLoader = null;
+if (loader != null) {
+webApplicationClassLoader =

svn commit: r1560654 - in /tomcat/trunk/java/org/apache/catalina: core/AsyncContextImpl.java security/SecurityClassLoad.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:15:56 2014
New Revision: 1560654

URL: http://svn.apache.org/r1560654
Log:
Migrate AsyncContext to use Context bind()/unbind()

Modified:
tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java

Modified: tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java?rev=1560654&r1=1560653&r2=1560654&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java Thu Jan 23 
12:15:56 2014
@@ -18,8 +18,6 @@ package org.apache.catalina.core;
 
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -99,22 +97,8 @@ public class AsyncContextImpl implements
 List listenersCopy = new ArrayList<>();
 listenersCopy.addAll(listeners);
 
-ClassLoader oldCL;
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedGetTccl();
-oldCL = AccessController.doPrivileged(pa);
-} else {
-oldCL = Thread.currentThread().getContextClassLoader();
-}
-ClassLoader newCL = context.getLoader().getClassLoader();
-
+ClassLoader oldCL = context.bind(Globals.IS_SECURITY_ENABLED, null);
 try {
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedSetTccl(newCL);
-AccessController.doPrivileged(pa);
-} else {
-Thread.currentThread().setContextClassLoader(newCL);
-}
 for (AsyncListenerWrapper listener : listenersCopy) {
 try {
 listener.fireOnComplete(event);
@@ -125,12 +109,7 @@ public class AsyncContextImpl implements
 }
 }
 } finally {
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedSetTccl(oldCL);
-AccessController.doPrivileged(pa);
-} else {
-Thread.currentThread().setContextClassLoader(oldCL);
-}
+context.unbind(Globals.IS_SECURITY_ENABLED, oldCL);
 }
 }
 
@@ -139,11 +118,8 @@ public class AsyncContextImpl implements
 request.getCoyoteRequest().action(ActionCode.ASYNC_TIMEOUT, result);
 
 if (result.get()) {
-
-ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
-ClassLoader newCL = 
request.getContext().getLoader().getClassLoader();
+ClassLoader oldCL = context.bind(false, null);
 try {
-Thread.currentThread().setContextClassLoader(newCL);
 List listenersCopy = new ArrayList<>();
 listenersCopy.addAll(listeners);
 for (AsyncListenerWrapper listener : listenersCopy) {
@@ -157,12 +133,11 @@ public class AsyncContextImpl implements
 }
 request.getCoyoteRequest().action(
 ActionCode.ASYNC_IS_TIMINGOUT, result);
-return !result.get();
 } finally {
-Thread.currentThread().setContextClassLoader(oldCL);
+context.unbind(false, oldCL);
 }
 }
-return true;
+return !result.get();
 }
 
 @Override
@@ -552,32 +527,11 @@ public class AsyncContextImpl implements
 
 @Override
 public void run() {
-ClassLoader oldCL;
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedGetTccl();
-oldCL = AccessController.doPrivileged(pa);
-} else {
-oldCL = Thread.currentThread().getContextClassLoader();
-}
-
+ClassLoader oldCL = context.bind(Globals.IS_SECURITY_ENABLED, 
null);
 try {
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedSetTccl(
-context.getLoader().getClassLoader());
-AccessController.doPrivileged(pa);
-} else {
-Thread.currentThread().setContextClassLoader
-(context.getLoader().getClassLoader());
-}
 wrapped.run();
 } finally {
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedSetTccl(
-oldCL);
-AccessController.doPrivileged(pa);
-} else {
-   

svn commit: r1560656 - /tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:17:00 2014
New Revision: 1560656

URL: http://svn.apache.org/r1560656
Log:
Migrate StandardHostValve to use Context bind/unbind

Modified:
tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java?rev=1560656&r1=1560655&r2=1560656&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardHostValve.java Thu Jan 
23 12:17:00 2014
@@ -14,14 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-
 package org.apache.catalina.core;
 
-
 import java.io.IOException;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
 
 import javax.servlet.DispatcherType;
 import javax.servlet.RequestDispatcher;
@@ -31,7 +26,6 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
-import org.apache.catalina.ThreadBindingListener;
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.comet.CometEvent;
 import org.apache.catalina.connector.ClientAbortException;
@@ -44,7 +38,6 @@ import org.apache.tomcat.util.ExceptionU
 import org.apache.tomcat.util.descriptor.web.ErrorPage;
 import org.apache.tomcat.util.res.StringManager;
 
-
 /**
  * Valve that implements the default basic behavior for the
  * StandardHost container implementation.
@@ -56,7 +49,6 @@ import org.apache.tomcat.util.res.String
  * @author Remy Maucherat
  * @version $Id$
  */
-
 final class StandardHostValve extends ValveBase {
 
 private static final Log log = LogFactory.getLog(StandardHostValve.class);
@@ -125,22 +117,8 @@ final class StandardHostValve extends Va
 return;
 }
 
-// Bind the context CL to the current thread
-if( context.getLoader() != null ) {
-// Not started - it should check for availability first
-// This should eventually move to Engine, it's generic.
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedSetTccl(
-context.getLoader().getClassLoader(),
-context.getThreadBindingListener(),
-true);
-AccessController.doPrivileged(pa);
-} else {
-Thread.currentThread().setContextClassLoader
-(context.getLoader().getClassLoader());
-context.getThreadBindingListener().bind();
-}
-}
+context.bind(Globals.IS_SECURITY_ENABLED, MY_CLASSLOADER);
+
 if (request.isAsyncSupported()) {
 
request.setAsyncSupported(context.getPipeline().isAsyncSupported());
 }
@@ -203,15 +181,7 @@ final class StandardHostValve extends Va
 request.getSession(false);
 }
 
-// Restore the context classloader
-if (Globals.IS_SECURITY_ENABLED) {
-PrivilegedAction pa = new PrivilegedSetTccl(MY_CLASSLOADER,
-context.getThreadBindingListener(), false);
-AccessController.doPrivileged(pa);
-} else {
-context.getThreadBindingListener().unbind();
-Thread.currentThread().setContextClassLoader(MY_CLASSLOADER);
-}
+context.unbind(Globals.IS_SECURITY_ENABLED, MY_CLASSLOADER);
 }
 
 
@@ -232,14 +202,7 @@ final class StandardHostValve extends Va
 // Select the Context to be used for this Request
 Context context = request.getContext();
 
-// Bind the context CL to the current thread
-if( context.getLoader() != null ) {
-// Not started - it should check for availability first
-// This should eventually move to Engine, it's generic.
-Thread.currentThread().setContextClassLoader
-(context.getLoader().getClassLoader());
-context.getThreadBindingListener().bind();
-}
+context.bind(false, MY_CLASSLOADER);
 
 // Ask this Context to process this request
 context.getPipeline().getFirst().event(request, response, event);
@@ -264,10 +227,7 @@ final class StandardHostValve extends Va
 }
 
 // Restore the context classloader
-context.getThreadBindingListener().unbind();
-Thread.currentThread().setContextClassLoader
-(StandardHostValve.class.getClassLoader());
-
+context.unbind(false, MY_CLASSLOADER);
 }
 
 
@@ -511,29 +471,4 @@ final class StandardHostValve extends Va
 return (null);
 
 }
-
-
-private static class PrivilegedSetTccl implements PrivilegedAction {
-
-private final ClassLoader cl;
-  

svn commit: r1560655 - /tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:16:28 2014
New Revision: 1560655

URL: http://svn.apache.org/r1560655
Log:
Add new message

Modified:
tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties

Modified: tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties?rev=1560655&r1=1560654&r2=1560655&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties Thu Jan 
23 12:16:28 2014
@@ -139,6 +139,7 @@ standardContext.servletMap.pattern=Inval
 standardContext.startFailed=Context [{0}] startup failed due to previous errors
 standardContext.startingContext=Exception starting Context with name [{0}]
 standardContext.stoppingContext=Exception stopping Context with name [{0}]
+standardContext.threadBindingListenerError=An error occurred in the thread 
binding listener configured for Context [{0}]
 standardContext.urlPattern.patternWarning=WARNING: URL pattern {0} must start 
with a ''/'' in Servlet 2.4
 standardContext.webappClassLoader.missingProperty=Unable to set the web 
application class loader property [{0}] to [{1}] as the property does not exist.
 standardContext.workPath=Exception obtaining work path for context [{0}]



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



svn commit: r1560659 - in /tomcat/trunk/java/org/apache/catalina: connector/CoyoteAdapter.java core/ApplicationDispatcher.java core/ContainerBase.java core/StandardWrapper.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:17:41 2014
New Revision: 1560659

URL: http://svn.apache.org/r1560659
Log:
More migrations to Context bind()/unbind()

Modified:
tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java
tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java
tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1560659&r1=1560658&r2=1560659&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Thu Jan 
23 12:17:41 2014
@@ -316,15 +316,12 @@ public class CoyoteAdapter implements Ad
 req.getAttributes().remove(RequestDispatcher.ERROR_EXCEPTION);
 ReadListener readListener = req.getReadListener();
 if (readListener != null) {
-ClassLoader oldCL =
-Thread.currentThread().getContextClassLoader();
-ClassLoader newCL =
-request.getContext().getLoader().getClassLoader();
+ClassLoader oldCL = null;
 try {
-Thread.currentThread().setContextClassLoader(newCL);
+oldCL = request.getContext().bind(false, null);
 readListener.onError(t);
 } finally {
-Thread.currentThread().setContextClassLoader(oldCL);
+request.getContext().unbind(false, oldCL);
 }
 }
 if (t != null) {
@@ -339,15 +336,12 @@ public class CoyoteAdapter implements Ad
 RequestDispatcher.ERROR_EXCEPTION);
 req.getAttributes().remove(RequestDispatcher.ERROR_EXCEPTION);
 if (res.getWriteListener() != null) {
-ClassLoader oldCL =
-Thread.currentThread().getContextClassLoader();
-ClassLoader newCL =
-request.getContext().getLoader().getClassLoader();
+ClassLoader oldCL = null;
 try {
-Thread.currentThread().setContextClassLoader(newCL);
+oldCL = request.getContext().bind(false, null);
 res.getWriteListener().onError(t);
 } finally {
-Thread.currentThread().setContextClassLoader(oldCL);
+request.getContext().unbind(false, oldCL);
 }
 }
 if (t != null) {
@@ -360,12 +354,9 @@ public class CoyoteAdapter implements Ad
 WriteListener writeListener = res.getWriteListener();
 ReadListener readListener = req.getReadListener();
 if (writeListener != null && status == 
SocketStatus.OPEN_WRITE) {
-ClassLoader oldCL =
-Thread.currentThread().getContextClassLoader();
-ClassLoader newCL =
-request.getContext().getLoader().getClassLoader();
+ClassLoader oldCL = null;
 try {
-Thread.currentThread().setContextClassLoader(newCL);
+oldCL = request.getContext().bind(false, null);
 res.onWritePossible();
 if (request.isFinished() && req.sendAllDataReadEvent() 
&&
 readListener != null) {
@@ -376,16 +367,13 @@ public class CoyoteAdapter implements Ad
 writeListener.onError(t);
 throw t;
 } finally {
-Thread.currentThread().setContextClassLoader(oldCL);
+request.getContext().unbind(false, oldCL);
 }
 success = true;
 } else if (readListener != null && status == 
SocketStatus.OPEN_READ) {
-ClassLoader oldCL =
-Thread.currentThread().getContextClassLoader();
-ClassLoader newCL =
-request.getContext().getLoader().getClassLoader();
+ClassLoader oldCL = null;
 try {
-Thread.currentThread().setContextClassLoader(newCL);
+oldCL = request.getContext().bind(false, null);
 readListener.onDataAvailable();
 if (request.isFinished() && 
req.sendAllDataReadEve

svn commit: r1560660 - /tomcat/trunk/java/org/apache/catalina/session/StandardSession.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 12:18:14 2014
New Revision: 1560660

URL: http://svn.apache.org/r1560660
Log:
Migrate to Context bind()/unbind()

Modified:
tomcat/trunk/java/org/apache/catalina/session/StandardSession.java

Modified: tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardSession.java?rev=1560660&r1=1560659&r2=1560660&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/session/StandardSession.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Thu Jan 
23 12:18:14 2014
@@ -53,7 +53,6 @@ import org.apache.catalina.Manager;
 import org.apache.catalina.Session;
 import org.apache.catalina.SessionEvent;
 import org.apache.catalina.SessionListener;
-import org.apache.catalina.ThreadBindingListener;
 import org.apache.catalina.TomcatPrincipal;
 import org.apache.catalina.security.SecurityUtil;
 import org.apache.tomcat.util.ExceptionUtils;
@@ -805,7 +804,7 @@ public class StandardSession implements 
 // listeners
 ClassLoader oldContextClassLoader = null;
 try {
-oldContextClassLoader = bindThread(context);
+oldContextClassLoader = 
context.bind(Globals.IS_SECURITY_ENABLED, null);
 if (notify) {
 Object listeners[] = 
context.getApplicationLifecycleListeners();
 if (listeners != null && listeners.length > 0) {
@@ -838,7 +837,7 @@ public class StandardSession implements 
 }
 }
 } finally {
-unbindThread(context, oldContextClassLoader);
+context.unbind(Globals.IS_SECURITY_ENABLED, 
oldContextClassLoader);
 }
 
 if (ACTIVITY_CHECK) {
@@ -879,99 +878,6 @@ public class StandardSession implements 
 }
 
 
-protected ClassLoader bindThread(Context context) {
-
-ClassLoader contextClassLoader = null;
-ThreadBindingListener threadBindingListener = null;
-if (context != null) {
-if (context.getLoader() != null && 
context.getLoader().getClassLoader() != null) {
-contextClassLoader = context.getLoader().getClassLoader();
-}
-threadBindingListener = context.getThreadBindingListener();
-}
-if (threadBindingListener == null || contextClassLoader == null) {
-return null;
-}
-
-if (Globals.IS_SECURITY_ENABLED) {
-return AccessController.doPrivileged(new 
PrivilegedBind(contextClassLoader, threadBindingListener));
-} else {
-ClassLoader oldContextClassLoader =
-Thread.currentThread().getContextClassLoader();
-if (oldContextClassLoader == contextClassLoader) {
-return null;
-} else {
-
Thread.currentThread().setContextClassLoader(contextClassLoader);
-threadBindingListener.bind();
-return oldContextClassLoader;
-}
-}
-
-}
-
-protected class PrivilegedBind implements PrivilegedAction {
-private ClassLoader contextClassLoader;
-private ThreadBindingListener threadBindingListener;
-
-PrivilegedBind(ClassLoader contextClassLoader, ThreadBindingListener 
threadBindingListener) {
-this.contextClassLoader = contextClassLoader;
-this.threadBindingListener = threadBindingListener;
-}
-
-@Override
-public ClassLoader run() {
-ClassLoader oldContextClassLoader =
-Thread.currentThread().getContextClassLoader();
-if (oldContextClassLoader == contextClassLoader) {
-return null;
-} else {
-
Thread.currentThread().setContextClassLoader(contextClassLoader);
-threadBindingListener.bind();
-return oldContextClassLoader;
-}
-}
-}
-
-protected void unbindThread(Context context, ClassLoader 
oldContextClassLoader) {
-
-if (oldContextClassLoader == null) {
-return;
-}
-ThreadBindingListener threadBindingListener = null;
-if (context != null) {
-threadBindingListener = context.getThreadBindingListener();
-}
-if (threadBindingListener == null) {
-return;
-}
-
-if (Globals.IS_SECURITY_ENABLED) {
-AccessController.doPrivileged(new 
PrivilegedUnbind(oldContextClassLoader, threadBindingListener));
-} else {
-threadBindingListener.unbind();
-
Thread.currentThread().setContextClassLoader(oldContextClassLoader);
-}
-
-}
-
-protected class PrivilegedUnbind implements PrivilegedAction {
-private ClassLoader oldContextClassLoader;
-

Re: Context switch integration

2014-01-23 Thread Rémy Maucherat
2014/1/23 Mark Thomas 

> http://people.apache.org/~markt/dev/2014-01-23-tccl-tc8-v2.patch
>
> It was easier to write, removes more code and the result is easier to
> read. Unless there are objections I plan to commit this along with some
> additional work to migrate other code that is currently doing this itself.
>
>
Ok, let's try that. Don't forget to keep SecurityClassLoad in sync.

Rémy


Re: Context switch integration

2014-01-23 Thread Mark Thomas
On 23/01/2014 12:22, Rémy Maucherat wrote:
> 2014/1/23 Mark Thomas 
> 
>> http://people.apache.org/~markt/dev/2014-01-23-tccl-tc8-v2.patch
>>
>> It was easier to write, removes more code and the result is easier to
>> read. Unless there are objections I plan to commit this along with some
>> additional work to migrate other code that is currently doing this itself.
>>
>>
> Ok, let's try that.

Done (by accident - I was on the wrong branch when I did a "git svn
dcommit" but no harm done).

> Don't forget to keep SecurityClassLoad in sync.

We have a test case that should catch those sorts of issues now.

The one thing the patch doesn't do is make the calling of the
ThreadBindingListener optional. We could add a parameter for that if
necessary.

We can also remove the DEFAULT_NAMING_LISTENER as all uses of the
listener are from StandardContext and it checks for null.

Mark


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



Apache Tomcat Summit at ApacheCon NA 2014

2014-01-23 Thread Mark Thomas
ApacheCon NA will be in Denver 7th to 11th April.

The schedule for ApacheCon NA 2014 has been firmed up. There is an
opportunity for a project summit on either the Thursday or the Friday.
Since the BarCamp has been scheduled for the Thursday the Friday seems
like the better option.

We have complete flexibility as to the organisation of the Summit. One
possible topic is with the Java EE 7 work pretty much complete, what new
features is the community interested in between now and when the Java EE
8 work starts? Other suggestions for topics welcome.

To get this up and running we need an idea of how many folks might want
to attend so please reply to this thread on the users list if:
- you are interested in attending
- you have a topic / some topics to suggest

Thanks,

Mark

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



svn commit: r1560702 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsRemoteEndpointImplBase.java WsSession.java pojo/PojoEndpointBase.java

2014-01-23 Thread remm
Author: remm
Date: Thu Jan 23 14:42:21 2014
New Revision: 1560702

URL: http://svn.apache.org/r1560702
Log:
- Call onClose before actually closing anything (sending a close message closes 
the endpoint).
- If onClose throws an exception, call onError.
- After using a blocking send, clear the client buffer in case it gets reused 
(I have no idea why this is needed ...).

Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java?rev=1560702&r1=1560701&r2=1560702&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 
Thu Jan 23 14:42:21 2014
@@ -234,6 +234,7 @@ public abstract class WsRemoteEndpointIm
 } else {
 f2sh.get(timeout, TimeUnit.MILLISECONDS);
 }
+payload.clear();
 } catch (InterruptedException | ExecutionException |
 TimeoutException e) {
 throw new IOException(e);

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1560702&r1=1560701&r2=1560702&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Thu Jan 23 
14:42:21 2014
@@ -45,6 +45,7 @@ import javax.websocket.WebSocketContaine
 
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.res.StringManager;
 
 public class WsSession implements Session {
@@ -413,8 +414,8 @@ public class WsSession implements Sessio
 
 state = State.CLOSING;
 
-sendCloseMessage(closeReasonMessage);
 fireEndpointOnClose(closeReasonLocal);
+sendCloseMessage(closeReasonMessage);
 
 state = State.CLOSED;
 }
@@ -436,8 +437,8 @@ public class WsSession implements Sessio
 
 synchronized (stateLock) {
 if (state == State.OPEN) {
-sendCloseMessage(closeReason);
 fireEndpointOnClose(closeReason);
+sendCloseMessage(closeReason);
 state = State.CLOSED;
 }
 
@@ -455,6 +456,9 @@ public class WsSession implements Sessio
 t.setContextClassLoader(applicationClassLoader);
 try {
 localEndpoint.onClose(this, closeReason);
+} catch (Throwable throwable) {
+ExceptionUtils.handleThrowable(throwable);
+localEndpoint.onError(this, throwable);
 } finally {
 t.setContextClassLoader(cl);
 }

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java?rev=1560702&r1=1560701&r2=1560702&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java 
Thu Jan 23 14:42:21 2014
@@ -64,14 +64,14 @@ public abstract class PojoEndpointBase e
 log.error(sm.getString(
 "pojoEndpointBase.onOpenFail",
 pojo.getClass().getName()), e);
-handleOnOpenError(session, e);
+handleOnOpenOrCloseError(session, e);
 return;
 } catch (InvocationTargetException e) {
 Throwable cause = e.getCause();
-handleOnOpenError(session, cause);
+handleOnOpenOrCloseError(session, cause);
 return;
 } catch (Throwable t) {
-handleOnOpenError(session, t);
+handleOnOpenOrCloseError(session, t);
 return;
 }
 }
@@ -83,7 +83,7 @@ public abstract class PojoEndpointBase e
 }
 
 
-private void handleOnOpenError(Session session, Throwable t) {
+private void handleOnOpenOrCloseError(Session session, Throwable t) {
 // If really fatal - re-throw
 ExceptionUtils.handleThrowable(t);
 
@@ -104,9 +104,9 @@ public abstract class PojoEndpointBase e
 methodMapping.getOnClose().invoke(pojo,
 methodMapping.getOnClose

Re: svn commit: r1560702 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsRemoteEndpointImplBase.java WsSession.java pojo/PojoEndpointBase.java

2014-01-23 Thread Mark Thomas
On 23/01/2014 14:42, r...@apache.org wrote:
> Author: remm
> Date: Thu Jan 23 14:42:21 2014
> New Revision: 1560702
> 
> URL: http://svn.apache.org/r1560702
> Log:
> - Call onClose before actually closing anything (sending a close message 
> closes the endpoint).

-1 (veto) for a specification violation

Section 2.1.5 requires that:
"the implementation must attempt to send the websocket close frame prior
to calling the onClose() method of the websocket endpoint."

> - If onClose throws an exception, call onError.

No objections.

> - After using a blocking send, clear the client buffer in case it gets reused 
> (I have no idea why this is needed ...).

This seems wrong (although I don't see the harm). I'd really expect the
client to take care of that.

Mark

> 
> Modified:
> 
> tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
> tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
> tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java
> 
> Modified: 
> tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java?rev=1560702&r1=1560701&r2=1560702&view=diff
> ==
> --- 
> tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 
> (original)
> +++ 
> tomcat/trunk/java/org/apache/tomcat/websocket/WsRemoteEndpointImplBase.java 
> Thu Jan 23 14:42:21 2014
> @@ -234,6 +234,7 @@ public abstract class WsRemoteEndpointIm
>  } else {
>  f2sh.get(timeout, TimeUnit.MILLISECONDS);
>  }
> +payload.clear();
>  } catch (InterruptedException | ExecutionException |
>  TimeoutException e) {
>  throw new IOException(e);
> 
> Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1560702&r1=1560701&r2=1560702&view=diff
> ==
> --- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original)
> +++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Thu Jan 23 
> 14:42:21 2014
> @@ -45,6 +45,7 @@ import javax.websocket.WebSocketContaine
>  
>  import org.apache.juli.logging.Log;
>  import org.apache.juli.logging.LogFactory;
> +import org.apache.tomcat.util.ExceptionUtils;
>  import org.apache.tomcat.util.res.StringManager;
>  
>  public class WsSession implements Session {
> @@ -413,8 +414,8 @@ public class WsSession implements Sessio
>  
>  state = State.CLOSING;
>  
> -sendCloseMessage(closeReasonMessage);
>  fireEndpointOnClose(closeReasonLocal);
> +sendCloseMessage(closeReasonMessage);
>  
>  state = State.CLOSED;
>  }
> @@ -436,8 +437,8 @@ public class WsSession implements Sessio
>  
>  synchronized (stateLock) {
>  if (state == State.OPEN) {
> -sendCloseMessage(closeReason);
>  fireEndpointOnClose(closeReason);
> +sendCloseMessage(closeReason);
>  state = State.CLOSED;
>  }
>  
> @@ -455,6 +456,9 @@ public class WsSession implements Sessio
>  t.setContextClassLoader(applicationClassLoader);
>  try {
>  localEndpoint.onClose(this, closeReason);
> +} catch (Throwable throwable) {
> +ExceptionUtils.handleThrowable(throwable);
> +localEndpoint.onError(this, throwable);
>  } finally {
>  t.setContextClassLoader(cl);
>  }
> 
> Modified: 
> tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java?rev=1560702&r1=1560701&r2=1560702&view=diff
> ==
> --- tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java 
> (original)
> +++ tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java 
> Thu Jan 23 14:42:21 2014
> @@ -64,14 +64,14 @@ public abstract class PojoEndpointBase e
>  log.error(sm.getString(
>  "pojoEndpointBase.onOpenFail",
>  pojo.getClass().getName()), e);
> -handleOnOpenError(session, e);
> +handleOnOpenOrCloseError(session, e);
>  return;
>  } catch (InvocationTargetException e) {
>  Throwable cause = e.getCause();
> -handleOnOpenError(session, cause);
> +handleOnOpenOrCloseError(session, cause);
>  return;
>  } catch (Throwable t) {
> -handleOnOp

svn commit: r1560704 - /tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java

2014-01-23 Thread remm
Author: remm
Date: Thu Jan 23 14:59:45 2014
New Revision: 1560704

URL: http://svn.apache.org/r1560704
Log:
Revert: Call onClose before actually closing anything (sending a close message 
closes the endpoint).

Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java

Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1560704&r1=1560703&r2=1560704&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Thu Jan 23 
14:59:45 2014
@@ -414,8 +414,8 @@ public class WsSession implements Sessio
 
 state = State.CLOSING;
 
-fireEndpointOnClose(closeReasonLocal);
 sendCloseMessage(closeReasonMessage);
+fireEndpointOnClose(closeReasonLocal);
 
 state = State.CLOSED;
 }
@@ -437,8 +437,8 @@ public class WsSession implements Sessio
 
 synchronized (stateLock) {
 if (state == State.OPEN) {
-fireEndpointOnClose(closeReason);
 sendCloseMessage(closeReason);
+fireEndpointOnClose(closeReason);
 state = State.CLOSED;
 }
 



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



Re: svn commit: r1560702 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsRemoteEndpointImplBase.java WsSession.java pojo/PojoEndpointBase.java

2014-01-23 Thread Rémy Maucherat
2014/1/23 Mark Thomas 

> > - Call onClose before actually closing anything (sending a close message
> closes the endpoint).
>
> -1 (veto) for a specification violation
>
> Section 2.1.5 requires that:
> "the implementation must attempt to send the websocket close frame prior
> to calling the onClose() method of the websocket endpoint."
>

Ok, but then onClose has the endpoint already closed, and it cannot do
anything (like send messages).

> - After using a blocking send, clear the client buffer in case it gets
> reused (I have no idea why this is needed ...).
>
> This seems wrong (although I don't see the harm). I'd really expect the
> client to take care of that.
>

Well, yes, I agree !

Rémy


Re: svn commit: r1560702 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsRemoteEndpointImplBase.java WsSession.java pojo/PojoEndpointBase.java

2014-01-23 Thread Mark Thomas
On 23/01/2014 15:01, Rémy Maucherat wrote:
> 2014/1/23 Mark Thomas 
> 
>>> - Call onClose before actually closing anything (sending a close message
>> closes the endpoint).
>>
>> -1 (veto) for a specification violation
>>
>> Section 2.1.5 requires that:
>> "the implementation must attempt to send the websocket close frame prior
>> to calling the onClose() method of the websocket endpoint."
>>
> 
> Ok, but then onClose has the endpoint already closed, and it cannot do
> anything (like send messages).

I'd need to go back and check the archives but the I think the
expectation from the EG was that onClose() would be used to clean up
resources rather than anything else.

It is always possible that I have misunderstood the intention of the
spec here but it looks to be pretty clear.

Mark

-
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-23 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/5430

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

Buildslave for this Build: bb-vm_ubuntu

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

BUILD FAILED: failed compile_1

sincerely,
 -The Buildbot





[Bug 56056] New: Tomcat fail to redeploy application, when webapps is on NFS file system

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

Bug ID: 56056
   Summary: Tomcat fail to redeploy application, when webapps is
on NFS file system
   Product: Tomcat 7
   Version: 7.0.42
  Hardware: All
OS: BeOS
Status: NEW
  Severity: normal
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: yair.le...@citi.com

When a new WAR file is copied to the 'webapps' in redepoyment mode
(unpackWar=true), tomcat is unable to complete redeployment in many case, where
the NFS unpacked applications can not be completed.

The reason for the partial delete is that NFS file delete will sometimes rename
the removed file to ".nfsN". This is usually result of some process the
file open (can be a thread in the application, leaked resources, or a user on
any machine that can view/inspect files/folders in the unpack tree.

While it is bad for any application to have leaked open connections to
resources in the WAR, it is impossible to identify and fix all resource
leakages in third part libraries, etc.

If any file is still open in the unpacked WAR, the directory where the file use
to exists can not be removed. If tomcat can not removed the top level directory
of the old app, it will not redeploy the new WAR. leaving the server without
any running instance of the application.

The requested fix is to add an option (either with passing '-d' to catalina.sh,
or new option in the container XML (similar to antiJARLocking). The new feature
(possible name: 'redeployNFS' ?), will use the following logic for redeployt:

Try to remove the unpacked WAR
If the removal was not completed, sleep 3 seconds, then try again (NFS removal
are not always instant, because some NFS data may be cached on the client).
If the removal is still incomplete, rename the unpacked war (e.g.,
nfs-WAR.-MM-DDTHH:MM:SS) folder
If the rename works, continue with redeploy. Otherwise stop.

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



Re: svn commit: r1560702 - in /tomcat/trunk/java/org/apache/tomcat/websocket: WsRemoteEndpointImplBase.java WsSession.java pojo/PojoEndpointBase.java

2014-01-23 Thread Rémy Maucherat
2014/1/23 Mark Thomas 

> I'd need to go back and check the archives but the I think the
> expectation from the EG was that onClose() would be used to clean up
> resources rather than anything else.
>
> It is always possible that I have misunderstood the intention of the
> spec here but it looks to be pretty clear.
>

Let's assume you didn't misunderstand anything for now. I think the
important fix is calling onError if onClose throws an exception, I cannot
find any item indicating that sending a message is mandatory.

Rémy


svn commit: r1560717 - /tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 15:59:48 2014
New Revision: 1560717

URL: http://svn.apache.org/r1560717
Log:
No need to load classes that have been deleted.

Modified:
tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java

Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java?rev=1560717&r1=1560716&r2=1560717&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java Thu 
Jan 23 15:59:48 2014
@@ -135,10 +135,6 @@ public final class SecurityClassLoad {
 loader.loadClass
 (basePackage + "StandardSession");
 loader.loadClass
-(basePackage + "StandardSession$PrivilegedBind");
-loader.loadClass
-(basePackage + "StandardSession$PrivilegedUnbind");
-loader.loadClass
 (basePackage + "StandardSession$1");
 loader.loadClass
 (basePackage + "StandardManager$PrivilegedDoUnload");



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



Tomcat 6 status file needs one more vote

2014-01-23 Thread Mark Thomas
Folks,

I'd really like to tag 6.0.x today or tomorrow. The remaining issue in
the status file needs one more vote. If any committer has the time to
review that patch and vote that would be great.

Thanks,

Mark

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



svn commit: r1560764 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/tomcat/util/net/NioEndpoint.java webapps/docs/changelog.xml

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 17:33:42 2014
New Revision: 1560764

URL: http://svn.apache.org/r1560764
Log:
Make the HTTP NIO connector tolerant of whitespace in the individual alues used 
for the ciphers attribute.

Modified:
tomcat/tc6.0.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1560764&r1=1560763&r2=1560764&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 23 17:33:42 2014
@@ -30,19 +30,6 @@ None
 PATCHES PROPOSED TO BACKPORT:
   [ New proposals should be added at the end of the list ]
 
-* BIO tolerates whitespace in the ciphers attribute whereas NIO does not. Make
-  NIO tolerate it as well
-  
http://people.apache.org/~markt/patches/2014-01-18-ciphers-whitespace-nio-tc6-v1.patch
-  +1: markt, rjung, schultz
-  +1: kkolinko: OK, though I have two comments:
-   1. If we align NIO and BIO here, the code in 
JSSESocketFactory.getEnabledCiphers(..)
-   also skips empty tokens.
-   2. There is similar code in TC7 & trunk in 
AbstractEndpoint.setCiphers(),
-   but it has not been fixed yet.
-   Actually as far as I see the ciphersarr is never used in TC7 &
-   trunk, as there are no calls to AbstractEndpoint.getCiphersArray().
-  -1:
-
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56029
   Regression in fix for BZ55198 broke parsing of some ternary expressions
   Align tc6 implementation with that of trunk (diff to trunk is easy to review)

Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1560764&r1=1560763&r2=1560764&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu 
Jan 23 17:33:42 2014
@@ -640,7 +640,9 @@ public class NioEndpoint extends Abstrac
 else {
 StringTokenizer t = new StringTokenizer(s,",");
 ciphersarr = new String[t.countTokens()];
-for (int i=0; ihttp://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1560764&r1=1560763&r2=1560764&view=diff
==
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Thu Jan 23 17:33:42 2014
@@ -44,6 +44,14 @@
  General, Catalina, Coyote, Jasper, Cluster, Web applications, Other
 -->
 
+  
+
+  
+Make the HTTP NIO connector tolerant of whitespace in the individual
+values used for the ciphers attribute. (markt)
+  
+
+  
   
 
   



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



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

2014-01-23 Thread remm
Author: remm
Date: Thu Jan 23 17:53:11 2014
New Revision: 1560769

URL: http://svn.apache.org/r1560769
Log:
Vote.

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

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1560769&r1=1560768&r2=1560769&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 23 17:53:11 2014
@@ -34,7 +34,7 @@ PATCHES PROPOSED TO BACKPORT:
   Regression in fix for BZ55198 broke parsing of some ternary expressions
   Align tc6 implementation with that of trunk (diff to trunk is easy to review)
   http://people.apache.org/~markt/patches/2014-01-21-ELParser-tc6-v1.patch
-  +1: markt, kkolinko
+  +1: markt, kkolinko, remm
   -1:
 
 



-
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-23 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/5432

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

Buildslave for this Build: bb-vm_ubuntu

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

Build succeeded!

sincerely,
 -The Buildbot





[Bug 56045] Cannot start embedded container without Jasper

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

--- Comment #1 from Konstantin Kolinko  ---
You do not need Jasper, but you need the JSP APIs - the "jsp-api.jar" file.

1. The common XML Schema for the Servlet 3.0 deployment descriptor does depend
on the XML Schema for the JSP 2.2 deployment descriptor.

2. Tomcat processes tag libraries and instantiates Listeners defined in their
TLD files regardless of whether you use Jasper. This may need the schema for
TLD files.


Note that both of these issues have been fixed in Tomcat 8.
Re: 1: in Tomcat 8 the schemas are bundled in servlet-api.jar
Re: 2: in Tomcat 8 the listeners are initialized by Jasper and are injected
into web application via ServletContext.addListener() API.

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

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 18:59:51 2014
New Revision: 1560784

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

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=1560784&r1=1560783&r2=1560784&view=diff
==
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Thu Jan 
23 18:59:51 2014
@@ -876,20 +876,10 @@ public abstract class AbstractEndpoint

svn commit: r1560785 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/util/net/AbstractEndpoint.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 19:01:26 2014
New Revision: 1560785

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

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

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

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=1560785&r1=1560784&r2=1560785&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 
Thu Jan 23 19:01:26 2014
@@ -832,20 +832,10 @@ public abstract class AbstractEndpoint {
 public String getSslProtocol() { return sslProtocol;}
 public void setSslProtocol(String s) { sslProtocol = s;}
 
-// Note: Some implementations use the comma separated string, some use
-// the array
 private String ciphers = null;
-private String[] ciphersarr = new String[0];
-public String[] getCiphersArray() { return this.ciphersarr;}
 public String getCiphers() { return ciphers;}
 public void setCiphers(String s) {
 ciphers = s;
-if ( s == null ) ciphersarr = new String[0];
-else {
-StringTokenizer t = new StringTokenizer(s,",");
-ciphersarr = new String[t.countTokens()];
-for (int i=0; i

Re: Tomcat 6 status file needs one more vote

2014-01-23 Thread Konstantin Kolinko
2014/1/23 Mark Thomas :
> Folks,
>
> I'd really like to tag 6.0.x today or tomorrow. The remaining issue in
> the status file needs one more vote. If any committer has the time to
> review that patch and vote that would be great.
>

Regarding NPEs in forId().
(An example:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56045
)

I think the following need a fix before tagging:

1. I think the Maven POM file for the jar that contains
"org.apache.tomcat.util.descriptor.DigesterFactory"  (coyote.jar in
TC6 maven libs, tomcat-util.jar in Tomcat 7) needs dependency on
jsp-api JAR.

2. I suspect that catalina does not work without DigesterFactory,
and thus catalina.jar in Tomcat 6 needs dependency on coyote.jar (or
tomcat-util.jar if we create it).

Best regards,
Konstantin Kolinko

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



[Bug 56056] Tomcat fail to redeploy application, when webapps is on NFS file system

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

Mark Thomas  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #1 from Mark Thomas  ---
There is no need for yet another deployment option to work around this issue.
You can use parallel deployment to work-around it.

Note with Tomcat 8 you can track open files and Tomcat will forcibly close them
on web application shutdown (assuming the app goes via the Servlet API rather
than directly to the file system).

-- 
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 56045] Cannot start embedded container without Jasper

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

--- Comment #2 from Dave Syer  ---
Good to know that jasper is a sufficient but not necessary dependency, but that
doesn't really help if you don't want anything to do with JSPs.

I did raise this issue specifically against Tomcat 7. It's a regression (and a
pretty significant one) between 7.0.47 and 7.0.50, so I'm kind of hoping it
might be fixable.

-- 
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: r1560810 - /tomcat/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 21:22:48 2014
New Revision: 1560810

URL: http://svn.apache.org/r1560810
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56039
Enable JmxRemoteLifecycleListener to work with SSL.
Patch by esengstrom.

Modified:
tomcat/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java

Modified: 
tomcat/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java?rev=1560810&r1=1560809&r2=1560810&view=diff
==
--- 
tomcat/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java 
Thu Jan 23 21:22:48 2014
@@ -240,6 +240,7 @@ public class JmxRemoteLifecycleListener 
 if (csf != null) {
 env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE,
 csf);
+env.put("com.sun.jndi.rmi.factory.socket", csf);
 }
 if (ssf != null) {
 env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE,



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



svn commit: r1560812 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java webapps/docs/changelog.xml

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 21:25:27 2014
New Revision: 1560812

URL: http://svn.apache.org/r1560812
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56039
Enable JmxRemoteLifecycleListener to work with SSL.
Patch by esengstrom.

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

tomcat/tc7.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

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

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java?rev=1560812&r1=1560811&r2=1560812&view=diff
==
--- 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
 (original)
+++ 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
 Thu Jan 23 21:25:27 2014
@@ -240,6 +240,7 @@ public class JmxRemoteLifecycleListener 
 if (csf != null) {
 env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE,
 csf);
+env.put("com.sun.jndi.rmi.factory.socket", csf);
 }
 if (ssf != null) {
 env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE,

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=1560812&r1=1560811&r2=1560812&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Thu Jan 23 21:25:27 2014
@@ -200,6 +200,14 @@
   
 
   
+  
+
+  
+56039: Enable the JmxRemoteLifecycleListener to work over
+SSL. Patch by esengstrom. (markt)
+  
+
+  
   
 
   



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



[Bug 56039] JmxRemoteLifecycleListener does not work with SSL

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

Mark Thomas  changed:

   What|Removed |Added

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

--- Comment #1 from Mark Thomas  ---
Thanks for the report and the patch. The patch has been applied to 8.0.x for
8.0.0 onwards and to 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: r1560817 - /tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java

2014-01-23 Thread remm
Author: remm
Date: Thu Jan 23 21:37:42 2014
New Revision: 1560817

URL: http://svn.apache.org/r1560817
Log:
Fix some arcane introspection errors.

Modified:

tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java?rev=1560817&r1=1560816&r2=1560817&view=diff
==
--- 
tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java 
(original)
+++ 
tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java 
Thu Jan 23 21:37:42 2014
@@ -49,6 +49,12 @@ public abstract class PojoMessageHandler
 int indexSession, long maxMessageSize) {
 this.pojo = pojo;
 this.method = method;
+try {
+this.method.setAccessible(true);
+} catch (Exception e) {
+// It is better to make sure the method is accessible, but
+// ignore exceptions and hope for the best
+}
 this.session = session;
 this.params = params;
 this.indexPayload = indexPayload;



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



Re: svn commit: r1560817 - /tomcat/trunk/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java

2014-01-23 Thread Mark Thomas
On 23/01/2014 21:37, r...@apache.org wrote:
> Author: remm
> Date: Thu Jan 23 21:37:42 2014
> New Revision: 1560817
> 
> URL: http://svn.apache.org/r1560817
> Log:
> Fix some arcane introspection errors.

Could you explain what problem this is trying to fix. The method passed
in to this constructor is previously checked with:

if (!Modifier.isPublic(m.getModifiers())) {
throw new DeploymentException(sm.getString(
"pojoMethodMapping.methodNotPublic", m.getName()));
}

Is there a code path where that isn't happening?

Mark


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



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

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 21:51:15 2014
New Revision: 1560823

URL: http://svn.apache.org/r1560823
Log:
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=1560823&r1=1560822&r2=1560823&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 23 21:51:15 2014
@@ -37,6 +37,11 @@ PATCHES PROPOSED TO BACKPORT:
   +1: markt, kkolinko, remm
   -1:
 
+* Correct Maven dependencies
+  http://people.apache.org/~markt/patches/2014-01-23-poms-tc6-v1.patch
+  +1: markt
+  -1:
+
 
 PATCHES/ISSUES THAT ARE STALLED:
 



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



Re: Tomcat 6 status file needs one more vote

2014-01-23 Thread Mark Thomas
On 23/01/2014 19:05, Konstantin Kolinko wrote:

> I think the following need a fix before tagging:
> 
> 1. I think the Maven POM file for the jar that contains
> "org.apache.tomcat.util.descriptor.DigesterFactory"  (coyote.jar in
> TC6 maven libs, tomcat-util.jar in Tomcat 7) needs dependency on
> jsp-api JAR.
> 
> 2. I suspect that catalina does not work without DigesterFactory,
> and thus catalina.jar in Tomcat 6 needs dependency on coyote.jar (or
> tomcat-util.jar if we create it).

Patch proposed. Review and vote please.

Mark

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



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

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

Mark Thomas  changed:

   What|Removed |Added

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

--- Comment #10 from Mark Thomas  ---
This has been fixed in 6.0.x and will be included in 6.0.39 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: r1560824 - in /tomcat/tc6.0.x/trunk: STATUS.txt java/org/apache/jasper/compiler/ELNode.java java/org/apache/jasper/compiler/ELParser.java test/org/apache/jasper/compiler/TestELParser.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 21:52:38 2014
New Revision: 1560824

URL: http://svn.apache.org/r1560824
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56029
Regression in fix for BZ55198 broke parsing of some ternary expressions
Align tc6 implementation with that of trunk (diff to trunk is easy to review)

Modified:
tomcat/tc6.0.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELNode.java
tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java
tomcat/tc6.0.x/trunk/test/org/apache/jasper/compiler/TestELParser.java

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1560824&r1=1560823&r2=1560824&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 23 21:52:38 2014
@@ -30,13 +30,6 @@ None
 PATCHES PROPOSED TO BACKPORT:
   [ New proposals should be added at the end of the list ]
 
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56029
-  Regression in fix for BZ55198 broke parsing of some ternary expressions
-  Align tc6 implementation with that of trunk (diff to trunk is easy to review)
-  http://people.apache.org/~markt/patches/2014-01-21-ELParser-tc6-v1.patch
-  +1: markt, kkolinko, remm
-  -1:
-
 * Correct Maven dependencies
   http://people.apache.org/~markt/patches/2014-01-23-poms-tc6-v1.patch
   +1: markt

Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELNode.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELNode.java?rev=1560824&r1=1560823&r2=1560824&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELNode.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELNode.java Thu Jan 23 
21:52:38 2014
@@ -115,14 +115,16 @@ abstract class ELNode {
 
private String prefix;
private String name;
+private final String originalText;
private String uri;
private FunctionInfo functionInfo;
private String methodName;
private String[] parameters;
 
-   Function(String prefix, String name) {
+   Function(String prefix, String name, String originalText) {
this.prefix = prefix;
this.name = name;
+   this.originalText = originalText;
}
 
public void accept(Visitor v) throws JasperException {
@@ -137,6 +139,10 @@ abstract class ELNode {
return name;
}
 
+   public String getOriginalText() {
+   return originalText;
+   }
+   
public void setUri(String uri) {
this.uri = uri;
}

Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java?rev=1560824&r1=1560823&r2=1560824&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/compiler/ELParser.java Thu Jan 
23 21:52:38 2014
@@ -37,19 +37,18 @@ import org.apache.jasper.compiler.ELNode
 public class ELParser {
 
 private Token curToken; // current token
-
-private ELNode.Nodes expr;
+private String whiteSpace = "";
+
+private final ELNode.Nodes expr;
 
 private ELNode.Nodes ELexpr;
 
 private int index; // Current index of the expression
 
-private String expression; // The EL expression
+private final String expression; // The EL expression
 
 private char type;
 
-private boolean escapeBS; // is '\' an escape char in text outside EL?
-
 private final boolean isDeferredSyntaxAllowedAsLiteral;
 
 private static final String reservedWords[] = { "and", "div", "empty",
@@ -91,34 +90,41 @@ public class ELParser {
 }
 
 /**
- * Parse an EL expression string '${...}'
+ * Parse an EL expression string '${...}'. Currently only separates the EL
+ * into functions and everything else.
  * 
- * @return An ELNode.Nodes representing the EL expression TODO: Currently
- * only parsed into functions and text strings. This should be
- * rewritten for a full parser.
+ * @return An ELNode.Nodes representing the EL expression
+ * 
+ * Note: This can not be refactored to use the standard EL implementation 
as
+ *   the EL API does not provide the level of access required to the
+ *   parsed expression.
  */
 private ELNode.Nodes parseEL() {
 
-StringBuffer buf = new StringBuffer();
+StringBuilder buf = new StringBuilder();
 ELexpr = new ELNode.Nodes();
+curToken = null;
 while (hasNext()) {
 curToken = nextToken();
   

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

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Thu Jan 23 22:26:02 2014
New Revision: 1560829

URL: http://svn.apache.org/r1560829
Log:
vote and 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=1560829&r1=1560828&r2=1560829&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 23 22:26:02 2014
@@ -32,9 +32,16 @@ PATCHES PROPOSED TO BACKPORT:
 
 * Correct Maven dependencies
   http://people.apache.org/~markt/patches/2014-01-23-poms-tc6-v1.patch
-  +1: markt
+  +1: markt, kkolinko
   -1:
 
+* Update sample Eclipse IDE project to use JUnit 4 and
+  to prefer a Java 5 JDK instead of the default one
+  when several JDKs are configured.
+  Remove unused JUnit-related properties from Ant build files.
+  
https://people.apache.org/~kkolinko/patches/2014-01-24_tc6_junit4_eclipse.patch
+  +1: kkolinko
+  -1:
 
 PATCHES/ISSUES THAT ARE STALLED:
 



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



svn commit: r1560828 - /tomcat/tc6.0.x/trunk/BUILDING.txt

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Thu Jan 23 22:21:51 2014
New Revision: 1560828

URL: http://svn.apache.org/r1560828
Log:
CTR: docs
Correction: The "release" target in dist.xml of Tomcat 6 does not run the tests.

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

Modified: tomcat/tc6.0.x/trunk/BUILDING.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/BUILDING.txt?rev=1560828&r1=1560827&r2=1560828&view=diff
==
--- tomcat/tc6.0.x/trunk/BUILDING.txt (original)
+++ tomcat/tc6.0.x/trunk/BUILDING.txt Thu Jan 23 22:21:51 2014
@@ -165,7 +165,7 @@ The documentation can be easly built:
 cd ${tomcat.source}
 ant -f extras.xml
 
-(7) Building a release running tests:
+(7) Building a release:
 
 cd ${tomcat.source}
 ant -f dist.xml release



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



svn commit: r1560838 - in /tomcat/trunk: java/org/apache/catalina/valves/ErrorReportValve.java test/org/apache/catalina/valves/TestErrorReportValve.java

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 22:43:27 2014
New Revision: 1560838

URL: http://svn.apache.org/r1560838
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56042
If a request in async mode has an error but has already been dispatched don't 
generate an error page in the ErrorReportValve so the dispatch target can 
handle it.

Modified:
tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java
tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java

Modified: tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java?rev=1560838&r1=1560837&r2=1560838&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/valves/ErrorReportValve.java Thu Jan 
23 22:43:27 2014
@@ -82,8 +82,8 @@ public class ErrorReportValve extends Va
 Throwable throwable =
 (Throwable) 
request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
 
-if (request.isAsyncStarted() && response.getStatus() < 400 &&
-throwable == null) {
+if (request.isAsyncStarted() && ((response.getStatus() < 400 &&
+throwable == null) || request.isAsyncDispatching())) {
 return;
 }
 

Modified: tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java?rev=1560838&r1=1560837&r2=1560838&view=diff
==
--- tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java Thu 
Jan 23 22:43:27 2014
@@ -16,8 +16,10 @@
  */
 package org.apache.catalina.valves;
 
+import java.io.File;
 import java.io.IOException;
 
+import javax.servlet.AsyncContext;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -28,6 +30,7 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import org.apache.catalina.Context;
+import org.apache.catalina.Wrapper;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -169,4 +172,50 @@ public class TestErrorReportValve extend
 resp.sendError(ERROR_STATUS, ERROR_MESSAGE);
 }
 }
+
+@Test
+public void testBug56042() throws Exception {
+// Setup Tomcat instance
+Tomcat tomcat = getTomcatInstance();
+
+// Must have a real docBase - just use temp
+File docBase = new File(System.getProperty("java.io.tmpdir"));
+
+Context ctx = tomcat.addContext("", docBase.getAbsolutePath());
+
+Bug56042Servlet bug56042Servlet = new Bug56042Servlet();
+Wrapper wrapper =
+Tomcat.addServlet(ctx, "bug56042Servlet", bug56042Servlet);
+wrapper.setAsyncSupported(true);
+ctx.addServletMapping("/bug56042Servlet", "bug56042Servlet");
+
+tomcat.start();
+
+StringBuilder url = new StringBuilder(48);
+url.append("http://localhost:";);
+url.append(getPort());
+url.append("/bug56042Servlet");
+
+ByteChunk res = new ByteChunk();
+int rc = getUrl(url.toString(), res, null);
+
+Assert.assertEquals(HttpServletResponse.SC_BAD_REQUEST, rc);
+}
+
+private static class Bug56042Servlet extends HttpServlet {
+
+private static final long serialVersionUID = 1L;
+
+@Override
+protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+throws ServletException, IOException {
+// Only set the status on the first call (the dispatch will trigger
+// another call to this Servlet)
+if (resp.getStatus() != HttpServletResponse.SC_BAD_REQUEST) {
+resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+AsyncContext ac = req.startAsync();
+ac.dispatch();
+}
+}
+}
 }



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



svn commit: r1560839 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/catalina/valves/ErrorReportValve.java test/org/apache/catalina/valves/TestErrorReportValve.java webapps/docs/changelog.xml

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 22:45:19 2014
New Revision: 1560839

URL: http://svn.apache.org/r1560839
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56042
If a request in async mode has an error but has already been dispatched don't 
generate an error page in the ErrorReportValve so the dispatch target can 
handle it.

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

tomcat/tc7.0.x/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

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

Modified: 
tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java?rev=1560839&r1=1560838&r2=1560839&view=diff
==
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/ErrorReportValve.java 
Thu Jan 23 22:45:19 2014
@@ -106,8 +106,8 @@ public class ErrorReportValve extends Va
 Throwable throwable =
 (Throwable) 
request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
 
-if (request.isAsyncStarted() && response.getStatus() < 400 &&
-throwable == null) {
+if (request.isAsyncStarted() && ((response.getStatus() < 400 &&
+throwable == null) || request.isAsyncDispatching())) {
 return;
 }
 

Modified: 
tomcat/tc7.0.x/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java?rev=1560839&r1=1560838&r2=1560839&view=diff
==
--- 
tomcat/tc7.0.x/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java 
(original)
+++ 
tomcat/tc7.0.x/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java 
Thu Jan 23 22:45:19 2014
@@ -16,8 +16,10 @@
  */
 package org.apache.catalina.valves;
 
+import java.io.File;
 import java.io.IOException;
 
+import javax.servlet.AsyncContext;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -28,6 +30,7 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import org.apache.catalina.Context;
+import org.apache.catalina.Wrapper;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.ByteChunk;
@@ -169,4 +172,50 @@ public class TestErrorReportValve extend
 resp.sendError(ERROR_STATUS, ERROR_MESSAGE);
 }
 }
+
+@Test
+public void testBug56042() throws Exception {
+// Setup Tomcat instance
+Tomcat tomcat = getTomcatInstance();
+
+// Must have a real docBase - just use temp
+File docBase = new File(System.getProperty("java.io.tmpdir"));
+
+Context ctx = tomcat.addContext("", docBase.getAbsolutePath());
+
+Bug56042Servlet bug56042Servlet = new Bug56042Servlet();
+Wrapper wrapper =
+Tomcat.addServlet(ctx, "bug56042Servlet", bug56042Servlet);
+wrapper.setAsyncSupported(true);
+ctx.addServletMapping("/bug56042Servlet", "bug56042Servlet");
+
+tomcat.start();
+
+StringBuilder url = new StringBuilder(48);
+url.append("http://localhost:";);
+url.append(getPort());
+url.append("/bug56042Servlet");
+
+ByteChunk res = new ByteChunk();
+int rc = getUrl(url.toString(), res, null);
+
+Assert.assertEquals(HttpServletResponse.SC_BAD_REQUEST, rc);
+}
+
+private static class Bug56042Servlet extends HttpServlet {
+
+private static final long serialVersionUID = 1L;
+
+@Override
+protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+throws ServletException, IOException {
+// Only set the status on the first call (the dispatch will trigger
+// another call to this Servlet)
+if (resp.getStatus() != HttpServletResponse.SC_BAD_REQUEST) {
+resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+AsyncContext ac = req.startAsync();
+ac.dispatch();
+}
+}
+}
 }

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=1560839&r1=1560838&r2=1560839&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webap

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

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

--- Comment #2 from Mark Thomas  ---
Fixed in 8.0.x for 8.0.0 and 7.0.x for 7.0.51.

-- 
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 56042] java.lang.IllegalStateException: Calling [asyncComplete()] is not valid for a request with Async state [MUST_DISPATCH]

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

Mark Thomas  changed:

   What|Removed |Added

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

--- Comment #1 from Mark Thomas  ---
The problem was in the ErrorReportValve. It was taking over if the response had
an error state and async had been started. As part of this it called
complete().

The issue was that if dispatch had been called (e.g. to generate a custom error
page in the app) the ErrorReportValve didn't let that happen. IN this case the
ErrorReportValve no longer takes over so the dispatch() target can handle the
error reporting. It will need to commit the response to stop the
ErrorReportValve taking over after the dispatch.

-- 
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 56058] New: AccessLogValve Local IP/port inconsistent

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

Bug ID: 56058
   Summary: AccessLogValve Local IP/port inconsistent
   Product: Tomcat 6
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: Catalina
  Assignee: dev@tomcat.apache.org
  Reporter: andil...@gmx.de

Hi,
i think the logging of 
%A - Local IP address
%p - Local port on which this request was received
is inconsisstent if an ajp-connector is used.

%A logs the ip of the tomcat Server
%p logs the port of the Apache webserver

There should be a possibility to log:
1) the ip-address of the tomcat Server on which the request was recieved
2) the port of the tomcat Server on which the request was recieved

3) the ip-address of the webserver on which the request was recieved
4) the port of the webserver on which the request was recieved

Even 
%h - Remote host name (or IP address if resolveHosts is false) (and %a)
is not clear in case of an ajp-request.

There should be a possibility to log
5) the remote host of the ajp-request (= webserver)
6) the remote host of the webserver-request (= browser)

Use case:
i want to log, who is connecting to my tomcat Server. In case of ajp i can only
see the endusers ip (with %h).

-- 
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: r1560850 - in /tomcat/trunk: build.xml res/maven/tomcat-embed-el.pom res/maven/tomcat-embed-jasper.pom res/maven/tomcat-embed-websocket.pom

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 23:26:44 2014
New Revision: 1560850

URL: http://svn.apache.org/r1560850
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56044
Separate out the EL and WebSocket implementations into separate JARs for 
embedded.

Added:
tomcat/trunk/res/maven/tomcat-embed-el.pom   (with props)
tomcat/trunk/res/maven/tomcat-embed-websocket.pom   (with props)
Modified:
tomcat/trunk/build.xml
tomcat/trunk/res/maven/tomcat-embed-jasper.pom

Modified: tomcat/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/build.xml?rev=1560850&r1=1560849&r2=1560850&view=diff
==
--- tomcat/trunk/build.xml (original)
+++ tomcat/trunk/build.xml Thu Jan 23 23:26:44 2014
@@ -139,10 +139,14 @@
   
   
   
+  
+  
   
 
   
   
+  
+  
   
   
 
@@ -415,10 +419,7 @@
 
 
 
-
 
-
-
 
 
 
 
@@ -1179,11 +1189,18 @@
  solution will be required. -->
 
+   filesId="files.tomcat-embed-core"/>
 
+   filesId="files.tomcat-embed-jasper"
+   meta-inf="${tomcat.manifests}/jasper.jar"/>
+
+
 
@@ -1204,6 +1221,12 @@
 
+
+
 

Added: tomcat/trunk/res/maven/tomcat-embed-el.pom
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/res/maven/tomcat-embed-el.pom?rev=1560850&view=auto
==
--- tomcat/trunk/res/maven/tomcat-embed-el.pom (added)
+++ tomcat/trunk/res/maven/tomcat-embed-el.pom Thu Jan 23 23:26:44 2014
@@ -0,0 +1,32 @@
+
+
+
+  4.0.0
+  org.apache.tomcat.embed
+  tomcat-embed-el
+  @MAVEN.DEPLOY.VERSION@
+  Core Tomcat implementation
+  http://tomcat.apache.org/
+  
+
+  Apache License, Version 2.0
+  http://www.apache.org/licenses/LICENSE-2.0.txt
+  repo
+
+  
+

Propchange: tomcat/trunk/res/maven/tomcat-embed-el.pom
--
svn:eol-style = native

Modified: tomcat/trunk/res/maven/tomcat-embed-jasper.pom
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/res/maven/tomcat-embed-jasper.pom?rev=1560850&r1=1560849&r2=1560850&view=diff
==
--- tomcat/trunk/res/maven/tomcat-embed-jasper.pom (original)
+++ tomcat/trunk/res/maven/tomcat-embed-jasper.pom Thu Jan 23 23:26:44 2014
@@ -37,6 +37,12 @@
   compile
 
 
+  org.apache.tomcat.embed
+  tomcat-embed-el
+  @MAVEN.DEPLOY.VERSION@
+  compile
+
+
   org.eclipse.jdt.core.compiler
   ecj
   4.3.1

Added: tomcat/trunk/res/maven/tomcat-embed-websocket.pom
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/res/maven/tomcat-embed-websocket.pom?rev=1560850&view=auto
==
--- tomcat/trunk/res/maven/tomcat-embed-websocket.pom (added)
+++ tomcat/trunk/res/maven/tomcat-embed-websocket.pom Thu Jan 23 23:26:44 2014
@@ -0,0 +1,40 @@
+
+
+
+  4.0.0
+  org.apache.tomcat.embed
+  tomcat-embed-websocket
+  @MAVEN.DEPLOY.VERSION@
+  Core Tomcat implementation
+  http://tomcat.apache.org/
+  
+
+  Apache License, Version 2.0
+  http://www.apache.org/licenses/LICENSE-2.0.txt
+  repo
+
+  
+  
+
+  org.apache.tomcat.embed
+  tomcat-embed-core
+  @MAVEN.DEPLOY.VERSION@
+  compile
+
+  
+

Propchange: tomcat/trunk/res/maven/tomcat-embed-websocket.pom
--
svn:eol-style = native



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



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

2014-01-23 Thread markt
Author: markt
Date: Thu Jan 23 23:36:14 2014
New Revision: 1560852

URL: http://svn.apache.org/r1560852
Log:
Vote

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

Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1560852&r1=1560851&r2=1560852&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 23 23:36:14 2014
@@ -40,7 +40,7 @@ PATCHES PROPOSED TO BACKPORT:
   when several JDKs are configured.
   Remove unused JUnit-related properties from Ant build files.
   
https://people.apache.org/~kkolinko/patches/2014-01-24_tc6_junit4_eclipse.patch
-  +1: kkolinko
+  +1: kkolinko, markt
   -1:
 
 PATCHES/ISSUES THAT ARE STALLED:



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



[Bug 56044] Extract EL implementation from embedded Jasper into a separate JAR

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

--- Comment #1 from Mark Thomas  ---
I think I have fixed in this in 8.0.x. I have deployed a new 8.0.0 snapshot. If
you could test that and confirm that the issue is fixed that would be great.

-- 
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-23 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/5434

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

Buildslave for this Build: bb-vm_ubuntu

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

BUILD FAILED: failed compile_1

sincerely,
 -The Buildbot





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

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Thu Jan 23 23:46:56 2014
New Revision: 1560855

URL: http://svn.apache.org/r1560855
Log:
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=1560855&r1=1560854&r2=1560855&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 23 23:46:56 2014
@@ -43,6 +43,14 @@ PATCHES PROPOSED TO BACKPORT:
   +1: kkolinko, markt
   -1:
 
+* Remove a stale empty test class from tribes tests.
+  It does nothing, has no references.
+  JUnit complains about it with "junit.framework.AssertionFailedError: No 
tests found"
+
+  svn rm 
test/org/apache/catalina/tribes/test/interceptors/TestTwoPhaseCommit.java
+  +1: kkolinko
+  -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



svn commit: r1560856 - /tomcat/trunk/webapps/ROOT/index.jsp

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 00:23:47 2014
New Revision: 1560856

URL: http://svn.apache.org/r1560856
Log:
Replace mailing lists links so that they point to the Mailng List page on the 
site,
so that people have a chance to read instructions there

Modified:
tomcat/trunk/webapps/ROOT/index.jsp

Modified: tomcat/trunk/webapps/ROOT/index.jsp
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/ROOT/index.jsp?rev=1560856&r1=1560855&r2=1560856&view=diff
==
--- tomcat/trunk/webapps/ROOT/index.jsp (original)
+++ tomcat/trunk/webapps/ROOT/index.jsp Fri Jan 24 00:23:47 2014
@@ -141,16 +141,16 @@ request.setAttribute("tomcatExamplesUrl"
 FAQ and Mailing Lists
 The following mailing lists are available:
 
-mailto:announce-subscr...@tomcat.apache.org";>annou...@tomcat.apache.org
+tomcat-announce
 Important announcements, releases, security 
vulnerability notifications. (Low volume).
 
-mailto:users-subscr...@tomcat.apache.org";>us...@tomcat.apache.org
+tomcat-users
 User support and discussion
 
-mailto:taglibs-user-subscr...@tomcat.apache.org";>taglibs-u...@tomcat.apache.org
+taglibs-user
 User support and discussion for Apache Taglibs
 
-mailto:dev-subscr...@tomcat.apache.org";>dev@tomcat.apache.org
+tomcat-dev
 Development mailing list, including commit 
messages
 
 



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



svn commit: r1560857 - in /tomcat/tc7.0.x/trunk: ./ webapps/ROOT/index.jsp webapps/docs/changelog.xml

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 00:33:12 2014
New Revision: 1560857

URL: http://svn.apache.org/r1560857
Log:
Merged r1560856 from tomcat/trunk:
Replace mailing lists links so that they point to the Mailing List page on the 
site,
so that people have a chance to read instructions there

Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

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

Modified: tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp?rev=1560857&r1=1560856&r2=1560857&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp (original)
+++ tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp Fri Jan 24 00:33:12 2014
@@ -140,16 +140,16 @@ request.setAttribute("tomcat7ExamplesUrl
 FAQ and Mailing Lists
 The following mailing lists are available:
 
-mailto:announce-subscr...@tomcat.apache.org";>annou...@tomcat.apache.org
+tomcat-announce
 Important announcements, releases, security 
vulnerability notifications. (Low volume).
 
-mailto:users-subscr...@tomcat.apache.org";>us...@tomcat.apache.org
+tomcat-users
 User support and discussion
 
-mailto:taglibs-user-subscr...@tomcat.apache.org";>taglibs-u...@tomcat.apache.org
+taglibs-user
 User support and discussion for Apache Taglibs
 
-mailto:dev-subscr...@tomcat.apache.org";>dev@tomcat.apache.org
+tomcat-dev
 Development mailing list, including commit 
messages
 
 

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=1560857&r1=1560856&r2=1560857&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri Jan 24 00:33:12 2014
@@ -203,6 +203,10 @@
 address available on the status page of the Manager web application.
 (markt)
   
+  
+Correct links to the Tomcat mailing lists in the ROOT web application.
+(kkolinko)
+  
 
   
   



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



svn commit: r1560858 - in /tomcat/tc7.0.x/trunk: ./ webapps/ROOT/index.jsp

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 00:47:01 2014
New Revision: 1560858

URL: http://svn.apache.org/r1560858
Log:
Align EL variables names with trunk
s/tomcat7/tomcat/

This is merge of r1520273 minus s/7/8/ change.


Modified:
tomcat/tc7.0.x/trunk/   (props changed)
tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp

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

Modified: tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp?rev=1560858&r1=1560857&r2=1560858&view=diff
==
--- tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp (original)
+++ tomcat/tc7.0.x/trunk/webapps/ROOT/index.jsp Fri Jan 24 00:47:01 2014
@@ -19,9 +19,9 @@ limitations under the License.
 <%
 java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("");
 request.setAttribute("year", sdf.format(new java.util.Date()));
-request.setAttribute("tomcat7Url", "http://tomcat.apache.org/";);
-request.setAttribute("tomcat7DocUrl", "/docs/");
-request.setAttribute("tomcat7ExamplesUrl", "/examples/");
+request.setAttribute("tomcatUrl", "http://tomcat.apache.org/";);
+request.setAttribute("tomcatDocUrl", "/docs/");
+request.setAttribute("tomcatExamplesUrl", "/examples/");
 %>
 
 
@@ -34,13 +34,13 @@ request.setAttribute("tomcat7ExamplesUrl
 
 
 
-Home
-Documentation
-Configuration
-Examples
+Home
+Documentation
+Configuration
+Examples
 http://wiki.apache.org/tomcat/FrontPage";>Wiki
-Mailing 
Lists
-Find 
Help
+Mailing 
Lists
+Find 
Help
 
 
 
@@ -54,9 +54,9 @@ request.setAttribute("tomcat7ExamplesUrl
 
 
 Recommended Reading:
-Security Considerations 
HOW-TO
-Manager Application HOW-TO
-Clustering/Session Replication 
HOW-TO
+Security Considerations 
HOW-TO
+Manager Application HOW-TO
+Clustering/Session Replication 
HOW-TO
 
 
 
@@ -79,19 +79,19 @@ request.setAttribute("tomcat7ExamplesUrl
 Developer Quick Start
 
 
-Tomcat 
Setup
-First Web 
Application
+Tomcat 
Setup
+First Web 
Application
 
 
 
 
-Realms 
& AAA
-JDBC 
DataSources
+Realms 
& AAA
+JDBC 
DataSources
 
 
 
 
-Examples
+Examples
 
 
 
@@ -110,26 +110,26 @@ request.setAttribute("tomcat7ExamplesUrl
 Users are defined in:
 $CATALINA_HOME/conf/tomcat-users.xml
 In Tomcat 7.0 access to the manager application is 
split between
-   different users.   Read more...
+   different users.   Read more...
 
-Release Notes
-Changelog
-Migration 
Guide
-Security 
Notices
+Release 
Notes
+Changelog
+Migration 
Guide
+Security 
Notices
 
 
 
 
 Documentation
-Tomcat 7.0 
Documentation
-Tomcat 7.0 
Configuration
+Tomcat 7.0 
Documentation
+Tomcat 7.0 
Configuration
 http://wiki.apache.org/tomcat/FrontPage";>Tomcat Wiki
 Find additional important configuration information 
in:
 $CATALINA_HOME/RUNNING.txt
 Developers may be interested in:
 
 http://tomcat.apache.org/bugreport.html";>Tomcat 7.0 Bug Database
-Tomcat 7.0 JavaDocs
+Tomcat 
7.0 JavaDocs
 http://svn.apache.org/repos/asf/tomcat/tc7.0.x/";>Tomcat 7.0 SVN 
Repository
 
 
@@ -137,19 +137,19 @@ request.setAttrib

svn commit: r1560861 - in /tomcat/tc6.0.x/trunk/webapps/ROOT: index.html index.jsp

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 00:56:49 2014
New Revision: 1560861

URL: http://svn.apache.org/r1560861
Log:
CTR: whitespaces (and duplicate nbsp whitespace) and comment removal,
to align index.jsp and index.html pages.

Modified:
tomcat/tc6.0.x/trunk/webapps/ROOT/index.html
tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp

Modified: tomcat/tc6.0.x/trunk/webapps/ROOT/index.html
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/ROOT/index.html?rev=1560861&r1=1560860&r2=1560861&view=diff
==
--- tomcat/tc6.0.x/trunk/webapps/ROOT/index.html (original)
+++ tomcat/tc6.0.x/trunk/webapps/ROOT/index.html Fri Jan 24 00:56:49 2014
@@ -90,9 +90,9 @@
 
 
   
-  http://tomcat.apache.org/";>
-
-  
+http://tomcat.apache.org/";>
+  
+
   
   Apache Tomcat
   
@@ -130,7 +130,7 @@
   
 Release Notes
 Change Log
-Tomcat Documentation 
    
+Tomcat Documentation
  

 

Modified: tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp?rev=1560861&r1=1560860&r2=1560861&view=diff
==
--- tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp (original)
+++ tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp Fri Jan 24 00:56:49 2014
@@ -116,7 +116,6 @@
 
  
Status
-
 Tomcat Manager
  
   
@@ -132,7 +131,7 @@
   
 Release Notes
 Change Log
-Tomcat Documentation  
   
+Tomcat Documentation
  

 



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



[Bug 56056] Tomcat fail to redeploy application, when webapps is on NFS file system

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

--- Comment #2 from Yair Lenga  ---
Mark,

Thank for your feedback. I do not believe that the suggested alternatives
address the problem with NFS removals. The issue is not a tomcat problem
problem, it is just the way Nfs works. The temporary .nfs files may be a result
of bad third party code, background file scanning jobs, or just a user that
does a 'chdir' and forgot to leave. Triggering the problem does not even
require read write access to tomcat.

While tomcat is not the source of the problem, it can help solve the it. I will
appreciate if you will take a second look. Solving this problem will provide
significant improvement to many deployment situation. I will be happy to help
with additional information.

Yair

-- 
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: r1560865 - in /tomcat/tc6.0.x/trunk/webapps/ROOT: index.html index.jsp

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 01:05:58 2014
New Revision: 1560865

URL: http://svn.apache.org/r1560865
Log:
CTR: tabs -> spaces

Modified:
tomcat/tc6.0.x/trunk/webapps/ROOT/index.html
tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp

Modified: tomcat/tc6.0.x/trunk/webapps/ROOT/index.html
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/ROOT/index.html?rev=1560865&r1=1560864&r2=1560865&view=diff
==
--- tomcat/tc6.0.x/trunk/webapps/ROOT/index.html (original)
+++ tomcat/tc6.0.x/trunk/webapps/ROOT/index.html Fri Jan 24 01:05:58 2014
@@ -25,14 +25,14 @@
   body {
   color: #00;
   background-color: #FF;
- font-family: Arial, "Times New Roman", Times, serif;
+  font-family: Arial, "Times New Roman", Times, serif;
   margin: 10px 0px;
   }
 
 img {
border: none;
 }
-
+
 a:link, a:visited {
 color: blue
 }
@@ -48,9 +48,9 @@
 
 td {
 color: #00;
-   font-family: Arial, Helvetica, sans-serif;
+font-family: Arial, Helvetica, sans-serif;
 }
-
+
 td.menu {
 background: #FFDC75;
 }
@@ -65,7 +65,7 @@
 font-size: 110%;
 margin-left: 2.5em;
 }
-
+
  #banner {
 margin-bottom: 12px;
  }
@@ -97,8 +97,8 @@
   Apache Tomcat
   
 http://www.apache.org/";>
- 
-   
+  
+

  
 
@@ -110,21 +110,20 @@
 
 
 
- Administration
+  Administration
 
 
- 
-   Status
+  
+Status
 Tomcat Manager
  
   
 
 
-
-   
+
 
 
- Documentation
+  Documentation
 
 
   
@@ -132,10 +131,9 @@
 Change Log
 Tomcat Documentation
  
-   
+
 
 
-   
 
 
 
@@ -144,20 +142,19 @@
 
   
 http://tomcat.apache.org/";>Home Page
-   http://tomcat.apache.org/faq/";>FAQ
+http://tomcat.apache.org/faq/";>FAQ
 http://tomcat.apache.org/bugreport.html";>Bug Database
 http://mail-archives.apache.org/mod_mbox/tomcat-users/";>Users Mailing List
 http://mail-archives.apache.org/mod_mbox/tomcat-dev/";>Developers Mailing List
 IRC
-    
+ 
   
 
 
-   
 
 
 
- Miscellaneous
+  Miscellaneous
 
 
   
@@ -165,21 +162,21 @@
 JSP Examples
 http://java.sun.com/products/jsp";>Sun's Java Server Pages Site
 http://java.sun.com/products/servlet";>Sun's Servlet Site
-    
+ 
   
 
 
 
 
  
-   
+
 
 
   If you're seeing this page via a web browser, it 
means you've setup Tomcat successfully. Congratulations!
- 
+
   As you may have guessed by now, this is the default Tomcat home 
page. It can be found on the local filesystem at:
   $CATALINA_HOME/webapps/ROOT/index.html
- 
+
   where "$CATALINA_HOME" is the root of the Tomcat installation 
directory. If you're seeing this page, and you don't think you should be, then 
you're either a user who has arrived at new installation of Tomcat, or you're 
an administrator who hasn't got his/her setup quite right. Providing the latter 
is the case, please refer to the Tomcat Documentation for 
more detailed setup and administration information than is found in the INSTALL 
file.
 
 NOTE: For security reasons, using the manager webapp
@@ -198,9 +195,9 @@
 Thanks for using Tomcat!
 
 
-    
+ 
 
-   Copyright © 1999-@YEAR@ Apache Software Foundation
+Copyright © 1999-@YEAR@ Apache Software Foundation
 All Rights Reserved
 
 

Modified: tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp?rev=1560865&r1=1560864&r2=1560865&view=diff
==
--- tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp (original)
+++ tomcat/tc6.0.x/trunk/webapps/ROOT/index.jsp Fri Jan 2

[Bug 56056] Tomcat fail to redeploy application, when webapps is on NFS file system

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

--- Comment #3 from Konstantin Kolinko  ---
(In reply to Yair Lenga from comment #0)
> This is usually result of some
> process the file open (can be a thread in the application, leaked resources,
> or a user on any machine that can view/inspect files/folders in the unpack
> tree.
>

In all the above cases waiting for 3 seconds (or for any reasonable longer
time) is futile, as that would not be enough for an user to close the file
or for a resource leak to disappear.

> sleep 3 seconds, then try again

It is not that simple. A retry must be performed at the top-most possible
level, at caller's discretion and consent. Automatic retries are evil when they
sum up.

-- 
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-23 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/5435

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

Buildslave for this Build: bb-vm_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch tomcat/trunk] 1560850
Blamelist: markt,remm

Build succeeded!

sincerely,
 -The Buildbot





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

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 01:42:04 2014
New Revision: 1560878

URL: http://svn.apache.org/r1560878
Log:
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=1560878&r1=1560877&r2=1560878&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Jan 24 01:42:04 2014
@@ -51,6 +51,24 @@ PATCHES PROPOSED TO BACKPORT:
   +1: kkolinko
   -1:
 
+* Align ROOT/index.html and ROOT/index.jsp
+  It is backport of r1560857 and followup to r648575 that
+  fixed one of the two files.
+
+  The following fixes were part of r648575:
+  - Fix broken links if ROOT application is renamed.
+  - Merge "Examples" section of menu into "Miscellaneous" one.
+
+  The following fixes are new:
+  - Remove dead links to Sun sites.
+  - Add link to the Specifications page of Tomcat Wiki.
+  - Correct mailing lists links so that they point to the Mailing List
+  page on the site, so that people have a chance to read instructions there.
+
+  https://people.apache.org/~kkolinko/patches/2014-01-24_tc6_ROOT_index.patch
+  +1: kkolinko
+  -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



About Cobertura error on parsing ServiceProxy.java

2014-01-23 Thread Konstantin Kolinko
Hi!

If you run tests with Cobertura 2.0.3 being enabled, it prints a
warning that it cannot parse the source code of ServiceProxy class:

It can be seen in Buildbot logs.

[cobertura-report] WARN   getAccumlatedCCNForSource, JavaNCSS got an
error while parsing the java file
/home/buildslave3/slave3/tomcat-trunk/build/java/org/apache/naming/factory/webservices/ServiceProxy.java
[cobertura-report] ParseException in STDIN
[cobertura-report] Last useful checkpoint:
"org.apache.naming.factory.webservices.ServiceProxy.getProxyPortQNameClass(Object[])"
[cobertura-report] Encountered " "@" "@ "" at line 106, column 14.
[cobertura-report] Was expecting one of:
[cobertura-report] "assert" ...
[cobertura-report] "boolean" ...
...


The same issue has already been reported:
https://github.com/cobertura/cobertura/issues/109

This is triggered by the following code in Tomcat:
for (@SuppressWarnings("unchecked")
Iterator ports = service.getPorts(); ports.hasNext();) {
QName portName = ports.next();
String portnameString = portName.getLocalPart();
if (portnameString.equals(nameString)) {
return service.getPort(name, serviceendpointClass);
}
}

If it bothers anyone, it is easy to move the "ports" variable out of
the loop, or move annotation to the method level.

I think there is no urge in fixing this and we can wait for a next
release of Cobertura.

Best regards,
Konstantin Kolinko

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



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

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 02:45:17 2014
New Revision: 1560893

URL: http://svn.apache.org/r1560893
Log:
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=1560893&r1=1560892&r2=1560893&view=diff
==
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Fri Jan 24 02:45:17 2014
@@ -69,6 +69,12 @@ PATCHES PROPOSED TO BACKPORT:
   +1: kkolinko
   -1:
 
+* Remove second copy of RUNNING.txt from the full-docs distribution.
+  (Backport of r981845)
+  
https://people.apache.org/~kkolinko/patches/2014-01-24_tc6_fulldocs_RUNNING.patch
+  +1: kkolinko
+  -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



svn commit: r1560895 - /tomcat/tc6.0.x/trunk/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 03:23:06 2014
New Revision: 1560895

URL: http://svn.apache.org/r1560895
Log:
CTR: javadoc fix

Modified:

tomcat/tc6.0.x/trunk/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java?rev=1560895&r1=1560894&r2=1560895&view=diff
==
--- 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java
 (original)
+++ 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java
 Fri Jan 24 03:23:06 2014
@@ -94,7 +94,7 @@ public class JMXAccessorCreateTask exten
 }
 
 /**
- * @param classLoader The classLoader to set.
+ * @param classLoaderName The classLoader to set.
  */
 public void setClassLoader(String classLoaderName) {
 this.classLoader = classLoaderName;



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



svn commit: r1560896 - /tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 03:25:48 2014
New Revision: 1560896

URL: http://svn.apache.org/r1560896
Log:
CTR: javadoc fixes

Modified:

tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java?rev=1560896&r1=1560895&r2=1560896&view=diff
==
--- 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
 (original)
+++ 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
 Fri Jan 24 03:25:48 2014
@@ -311,7 +311,7 @@ public class FormAuthenticator
  * @param configLogin configuration describing how authentication
  *  should be performed
  * @throws IOException  If the forward to the login page fails and the call
- *  to {@link HttpServletResponse#sendError(int, 
String)
+ *  to {@link HttpServletResponse#sendError(int, 
String)}
  *  throws an {@link IOException}
  */
 protected void forwardToLoginPage(Request request, Response response,
@@ -363,7 +363,7 @@ public class FormAuthenticator
  * @param configLogin configuration describing how authentication
  *  should be performed
  * @throws IOException  If the forward to the error page fails and the call
- *  to {@link HttpServletResponse#sendError(int, 
String)
+ *  to {@link HttpServletResponse#sendError(int, 
String)}
  *  throws an {@link IOException}
  */
 protected void forwardToErrorPage(Request request, Response response,



-
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-23 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/5436

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

Buildslave for this Build: bb-vm_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch tomcat/trunk] 1560856
Blamelist: kkolinko

BUILD FAILED: failed compile_1

sincerely,
 -The Buildbot





svn commit: r1560897 - in /tomcat/tc6.0.x/trunk/java/org/apache: catalina/connector/ catalina/core/ catalina/realm/ catalina/startup/ catalina/tribes/ catalina/users/ tomcat/jni/

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 03:55:17 2014
New Revision: 1560897

URL: http://svn.apache.org/r1560897
Log:
CTR: javadoc fixes

Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Request.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/CombinedRealm.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/LockOutRealm.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/ChannelListener.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/users/MemoryUserDatabase.java
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/jni/SSL.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Request.java?rev=1560897&r1=1560896&r2=1560897&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Request.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Request.java Fri 
Jan 24 03:55:17 2014
@@ -979,12 +979,12 @@ public class Request
  * not be included although they are accessible via
  * {@link #getAttribute(String)}. The Tomcat internal attributes include:
  * 
- * {@link Globals.DISPATCHER_TYPE_ATTR}
- * {@link Globals.DISPATCHER_REQUEST_PATH_ATTR}
- * {@link Globals.CERTIFICATES_ATTR} (SSL connections only)
- * {@link Globals.CIPHER_SUITE_ATTR} (SSL connections only)
- * {@link Globals.KEY_SIZE_ATTR} (SSL connections only)
- * {@link Globals.SSL_SESSION_ID_ATTR} (SSL connections only)
+ * {@link Globals#DISPATCHER_TYPE_ATTR}
+ * {@link Globals#DISPATCHER_REQUEST_PATH_ATTR}
+ * {@link Globals#CERTIFICATES_ATTR} (SSL connections only)
+ * {@link Globals#CIPHER_SUITE_ATTR} (SSL connections only)
+ * {@link Globals#KEY_SIZE_ATTR} (SSL connections only)
+ * {@link Globals#SSL_SESSION_ID_ATTR} (SSL connections only)
  * {@link Globals#PARAMETER_PARSE_FAILED_ATTR}
  * 
  * The underlying connector may also expose request attributes. These all
@@ -2346,7 +2346,7 @@ public class Request
 
 /**
  * Get the event associated with the request.
- * @return
+ * @return the event
  */
 public CometEventImpl getEvent() {
 if (event == null) {

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1560897&r1=1560896&r2=1560897&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Fri 
Jan 24 03:55:17 2014
@@ -2265,9 +2265,9 @@ public class StandardContext
 
 
 /**
- * Set the clearReferencesStopThreads feature for this Context.
+ * Set the clearReferencesThreadLocals feature for this Context.
  *
- * @param clearReferencesStopThreads The new flag value
+ * @param clearReferencesThreadLocals The new flag value
  */
 public void setClearReferencesThreadLocals(
 boolean clearReferencesThreadLocals) {

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/CombinedRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/CombinedRealm.java?rev=1560897&r1=1560896&r2=1560897&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/CombinedRealm.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/CombinedRealm.java Fri 
Jan 24 03:55:17 2014
@@ -127,7 +127,7 @@ public class CombinedRealm extends Realm
  * @param clientDigest Digest which has been submitted by the client
  * @param nOnce Unique (or supposedly unique) token which has been used
  * for this request
- * @param realm Realm name
+ * @param realmName Realm name
  * @param md5a2 Second MD5 digest used to calculate the digest :
  * MD5(Method + ":" + uri)
  */

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/LockOutRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/LockOutRealm.java?rev=1560897&r1=1560896&r2=1560897&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/LockOutRealm.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/LockOutRealm.java Fri 
Jan 24 03:55:17 2014
@@ -148,7 +148,7 @@ public class LockOutRealm extends Combin
  * @param clientDigest Digest which has been submitted by the client
  * @param nOn

svn commit: r1560898 - in /tomcat/tc6.0.x/trunk/java/org/apache/catalina: ha/session/DeltaRequest.java ha/tcp/ReplicationValve.java mbeans/JmxRemoteLifecycleListener.java realm/JNDIRealm.java

2014-01-23 Thread kkolinko
Author: kkolinko
Date: Fri Jan 24 04:13:02 2014
New Revision: 1560898

URL: http://svn.apache.org/r1560898
Log:
CTR: javadoc fixes

Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java

tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/JNDIRealm.java

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java?rev=1560898&r1=1560897&r2=1560898&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaRequest.java 
Fri Jan 24 04:13:02 2014
@@ -292,7 +292,6 @@ public class DeltaRequest implements Ext
  * serialize DeltaRequest
  * @see DeltaRequest#writeExternal(java.io.ObjectOutput)
  * 
- * @param deltaRequest
  * @return serialized delta request
  * @throws IOException
  */

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java?rev=1560898&r1=1560897&r2=1560898&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java 
Fri Jan 24 04:13:02 2014
@@ -526,7 +526,7 @@ public class ReplicationValve
 
/**
 * Send message delta message from request session 
-* @param request current request
+* @param session current session
 * @param manager session manager
 * @param cluster replication cluster
 */

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java?rev=1560898&r1=1560897&r2=1560898&view=diff
==
--- 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
 (original)
+++ 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.java
 Fri Jan 24 04:13:02 2014
@@ -78,7 +78,7 @@ public class JmxRemoteLifecycleListener 
 /**
  * Get the port on which the Platform RMI server is exported. This is the
  * port that is normally chosen by the RMI stack.
- * @returns The port number
+ * @return The port number
  */
 public int getRmiServerPortPlatform() {
 return rmiServerPortPlatform;
@@ -95,7 +95,7 @@ public class JmxRemoteLifecycleListener 
 
 /**
  * Get the port on which the Platform RMI registry is exported.
- * @returns The port number
+ * @return The port number
  */
 public int getRmiRegistryPortPlatform() {
 return rmiRegistryPortPlatform;
@@ -113,7 +113,7 @@ public class JmxRemoteLifecycleListener 
  * Get the flag that indicates that local ports should be used for all
  * connections. If using SSH tunnels, or similar, this should be set to
  * true to ensure the RMI client uses the tunnel.
- * @returns true if local ports should be used
+ * @return true if local ports should be used
  */
 public boolean getUseLocalPorts() {
 return useLocalPorts;

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/JNDIRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/JNDIRealm.java?rev=1560898&r1=1560897&r2=1560898&view=diff
==
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/JNDIRealm.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/JNDIRealm.java Fri Jan 
24 04:13:02 2014
@@ -1139,7 +1139,7 @@ public class JNDIRealm extends RealmBase
  *
  * @exception NamingException if a directory server error occurs
  *
- * @see #getUser(DirContext, String, int)
+ * @see #getUser(DirContext, String, String, int)
  */
 protected User getUser(DirContext context, String username, String 
credentials)
 throws NamingException {



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



[Bug 56050] NPE in WebappClassLoader.clearReferencesJdbc on shutdown

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

Alex Panchenko  changed:

   What|Removed |Added

 Status|NEEDINFO|RESOLVED
 Resolution|--- |INVALID

--- Comment #4 from Alex Panchenko  ---
Let's close it for now. It had happened a few times in the beginning of the
week on all our servers, but was not happening since then.
Sorry for the false alert.

-- 
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 56056] Tomcat fail to redeploy application, when webapps is on NFS file system

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

--- Comment #4 from Mark Thomas  ---
I'll happily re-open this if you explain how parallel deployment doesn't solve
this problem. If you use parallel deployment:
- you can deploy a new version before deleting the old one
- new users will be directed to the new version
- current users will be directed to the old version until you undeploy it after
which they will be directed to the new one
- if deleting the old one fails users continue to be directed to the new one
- you can repeat the attempt to undeploy the old one as many times as you like
and whenever you like
- the old version will remain listed (in a failed state) in the Manager app so
any tools that work via the Manager app will continue to be able to see it and
attempt to delete it

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