DO NOT REPLY [Bug 48454] New: "Bad file descriptor"-IOException in CGIServlet for some programs

2009-12-29 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48454

   Summary: "Bad file descriptor"-IOException in CGIServlet for
some programs
   Product: Tomcat 6
   Version: 6.0.20
  Platform: PC
OS/Version: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: Catalina
AssignedTo: dev@tomcat.apache.org
ReportedBy: mgrie...@gmx.ch


Created an attachment (id=24763)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=24763)
Patch

The internal CGIRunner-thread which reads the errorstream logs a "Bad file
descriptor"-IOException everytime i called a program (see stacktrace at the
end). The program works fine, but the log-messages disturb.

I could reproduce the behaviour with Nagiostat as CGI-Program
(http://nagiostat.sourceforge.net/). I think the behaviour depends on how fast
the cgi-program will return, because I haven't the error with another
cgi-program on the same machine.

Looking at the code shows that the Process-Object in CGIRunner could be
destroyed before the internal Thread has a chance to completely read the
errorstream.  

I fixed the problem in CGIServlet with a errorStreamReaderThread.join(...)
before proc.destroy() to allow a clean processing of the errorstream.
This is not yet fixed in tomcat trunk / branch tc6.0.x

Environment:
Linux, Centos5.3 x64, JDK SUN 1.6.0_17, JBoss AS 5.1.0.GA (based on tomcat6.0)

Patch: The attached Patch is against source of JBossWeb2.1.3. Improvement: The
timeout of the join should be configurable.

java.io.IOException: Bad file descriptor
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:199)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at
org.apache.catalina.servlets.CGIServlet$CGIRunner.sendToLog(CGIServlet.java:1828)
at
org.apache.catalina.servlets.CGIServlet$CGIRunner.access$400(CGIServlet.java:1388)
at
org.apache.catalina.servlets.CGIServlet$CGIRunner$1.run(CGIServlet.java:1663)

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- 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: r894365 - /tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 12:21:42 2009
New Revision: 894365

URL: http://svn.apache.org/viewvc?rev=894365&view=rev
Log:
Expose string array of dispatcher names

Modified:
tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java

Modified: tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java?rev=894365&r1=894364&r2=894365&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java Tue Dec 29 
12:21:42 2009
@@ -21,6 +21,7 @@
 
 import org.apache.catalina.util.RequestUtil;
 import java.io.Serializable;
+import java.util.ArrayList;
 
 import javax.servlet.DispatcherType;
 
@@ -166,6 +167,25 @@
 return dispatcherMapping; 
 }
 
+public String[] getDispatcherNames() {
+   ArrayList result = new ArrayList();
+   if ((dispatcherMapping & FORWARD) > 0) {
+   result.add(DispatcherType.FORWARD.name());
+   }
+   if ((dispatcherMapping & INCLUDE) > 0) {
+   result.add(DispatcherType.INCLUDE.name());
+   }
+   if ((dispatcherMapping & REQUEST) > 0) {
+   result.add(DispatcherType.REQUEST.name());
+   }
+   if ((dispatcherMapping & ERROR) > 0) {
+   result.add(DispatcherType.ERROR.name());
+   }
+   if ((dispatcherMapping & ASYNC) > 0) {
+   result.add(DispatcherType.ASYNC.name());
+   }
+   return result.toArray(new String[result.size()]);
+}
 
 // - Public Methods
 



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



svn commit: r894366 - in /tomcat/trunk/java/org/apache/catalina: deploy/ContextService.java startup/WebRuleSet.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 12:23:07 2009
New Revision: 894366

URL: http://svn.apache.org/viewvc?rev=894366&view=rev
Log:
Interface and type are separate

Modified:
tomcat/trunk/java/org/apache/catalina/deploy/ContextService.java
tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java

Modified: tomcat/trunk/java/org/apache/catalina/deploy/ContextService.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/ContextService.java?rev=894366&r1=894365&r2=894366&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/deploy/ContextService.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/ContextService.java Tue Dec 29 
12:23:07 2009
@@ -77,6 +77,20 @@
 }
 
 /**
+ * The fully qualified class name of the JAX-WS Service interface that the
+ * client depends on.
+ */
+private String serviceInterface = null;
+
+public String getInterface() {
+return serviceInterface;
+}
+
+public void setInterface(String serviceInterface) {
+this.serviceInterface = serviceInterface;
+}
+
+/**
  * Contains the location (relative to the root of
  * the module) of the web service WSDL description.
  */

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java?rev=894366&r1=894365&r2=894366&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java Tue Dec 29 
12:23:07 2009
@@ -568,6 +568,8 @@
 digester.addCallMethod(fullPrefix + "/service-ref/service-ref-name",
"setName", 0);
 digester.addCallMethod(fullPrefix + "/service-ref/service-interface",
+   "setInterface", 0);
+digester.addCallMethod(fullPrefix + "/service-ref/service-ref-type",
"setType", 0);
 digester.addCallMethod(fullPrefix + "/service-ref/wsdl-file",
"setWsdlfile", 0);



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



svn commit: r894372 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/core/ java/org/apache/catalina/startup/ java/org/apache/tomcat/util/scan/ webapps/docs/config/

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 12:50:54 2009
New Revision: 894372

URL: http://svn.apache.org/viewvc?rev=894372&view=rev
Log:
Add configuration option that allows the effective web.xml to be logged on 
context start.
Expose the effective web.xml through a context attribute so other components 
(eg Jasper) can use it.

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/ContextConfig.java
tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
tomcat/trunk/java/org/apache/tomcat/util/scan/Constants.java
tomcat/trunk/webapps/docs/config/context.xml

Modified: tomcat/trunk/java/org/apache/catalina/Context.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Context.java?rev=894372&r1=894371&r2=894372&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/Context.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Context.java Tue Dec 29 12:50:54 2009
@@ -1101,5 +1101,16 @@
  * null if none is used.
  */
 public Authenticator getAuthenticator();
+
+/**
+ * Set whether or not the effective web.xml for this context should be
+ * logged on context start.
+ */
+public void setLogEffectiveWebXml(boolean logEffectiveWebXml);
+
+/**
+ * Should the effective web.xml for this context be logged on context 
start?
+ */
+public boolean getLogEffectiveWebXml();
 }
 

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=894372&r1=894371&r2=894372&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Tue Dec 29 
12:50:54 2009
@@ -758,8 +758,20 @@
  */
 private boolean clearReferencesStopThreads = false;
 
+/**
+ * Should the effective web.xml be logged when the context starts?
+ */
+private boolean logEffectiveWebXml = false;
+
 // - Context Properties
 
+public void setLogEffectiveWebXml(boolean logEffectiveWebXml) {
+this.logEffectiveWebXml = logEffectiveWebXml;
+}
+
+public boolean getLogEffectiveWebXml() {
+return logEffectiveWebXml;
+}
 
 public Authenticator getAuthenticator() {
 if (this instanceof Authenticator)

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=894372&r1=894371&r2=894372&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Tue Dec 29 
12:50:54 2009
@@ -32,7 +32,6 @@
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
@@ -1224,6 +1223,15 @@
 // Apply merged web.xml to Context
 webXml.configureContext(context);
 }
+// Make the merged web.xml available to other components, specifically
+// Jasper, to save those components from having to re-generate it.
+String mergedWebXml = webXml.toXml();
+context.getServletContext().setAttribute(
+   org.apache.tomcat.util.scan.Constants.MERGED_WEB_XML,
+mergedWebXml);
+if (context.getLogEffectiveWebXml()) {
+log.info("web.xml:\n" + mergedWebXml);
+}
 }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=894372&r1=894371&r2=894372&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/WebXml.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Tue Dec 29 
12:50:54 2009
@@ -21,6 +21,7 @@
 import java.net.URL;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
@@ -34,6 +35,7 @@
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.deploy.ContextEjb;
 import org.apache.catalina.deploy.ContextEnvironment;
+import org.apache.catalina.deploy.ContextHandler;
 import org.apache.catalina.deploy.ContextLocalEjb;
 import org.apache.catalina.deploy.ContextResource;
 import org.apache.catalina.deploy.ContextResourceEnvRef;
@

svn commit: r894375 - in /tomcat/trunk/java/org/apache/catalina: deploy/ServletDef.java startup/WebXml.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 13:03:46 2009
New Revision: 894375

URL: http://svn.apache.org/viewvc?rev=894375&view=rev
Log:
Make handling of ServletDef.asyncSupport consistent

Modified:
tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java
tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

Modified: tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java?rev=894375&r1=894374&r2=894375&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java Tue Dec 29 
13:03:46 2009
@@ -225,13 +225,13 @@
 /**
  * Does this servlet support async.
  */
-private String asyncSupported = null;
+private Boolean asyncSupported = null;
 
-public String getAsyncSupported() {
+public Boolean getAsyncSupported() {
 return this.asyncSupported;
 }
 
 public void setAsyncSupported(String asyncSupported) {
-this.asyncSupported = asyncSupported;
+this.asyncSupported = Boolean.valueOf(asyncSupported);
 }
 }

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=894375&r1=894374&r2=894375&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/WebXml.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Tue Dec 29 
13:03:46 2009
@@ -1138,7 +1138,7 @@
 }
 if (servlet.getAsyncSupported() != null) {
 wrapper.setAsyncSupported(
-Boolean.parseBoolean(servlet.getAsyncSupported()));
+servlet.getAsyncSupported().booleanValue());
 }
 context.addChild(wrapper);
 }
@@ -1624,7 +1624,7 @@
 }
 
 if (dest.getAsyncSupported() == null) {
-dest.setAsyncSupported(src.getAsyncSupported());
+dest.setAsyncSupported(src.getAsyncSupported().toString());
 } else if (src.getAsyncSupported() != null) {
 if (failOnConflict &&
 !src.getAsyncSupported().equals(dest.getAsyncSupported())) 
{



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



svn commit: r894376 - /tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 13:04:33 2009
New Revision: 894376

URL: http://svn.apache.org/viewvc?rev=894376&view=rev
Log:
Fix copy/paste error

Modified:
tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=894376&r1=894375&r2=894376&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/WebXml.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Tue Dec 29 
13:04:33 2009
@@ -1596,7 +1596,7 @@
 }
 
 if (dest.getLoadOnStartup() == null) {
-dest.setLoadOnStartup(src.getServletClass());
+dest.setLoadOnStartup(src.getLoadOnStartup().toString());
 } else if (src.getLoadOnStartup() != null) {
 if (failOnConflict &&
 !src.getLoadOnStartup().equals(dest.getLoadOnStartup())) {



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



svn commit: r894393 - in /tomcat/trunk/java/org/apache/catalina: Wrapper.java core/StandardWrapper.java deploy/ServletDef.java startup/WebRuleSet.java startup/WebXml.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 14:13:24 2009
New Revision: 894393

URL: http://svn.apache.org/viewvc?rev=894393&view=rev
Log:
Add support for the enabled attribute for servlets in web.xml

Modified:
tomcat/trunk/java/org/apache/catalina/Wrapper.java
tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java
tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java
tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java
tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

Modified: tomcat/trunk/java/org/apache/catalina/Wrapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Wrapper.java?rev=894393&r1=894392&r2=894393&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/Wrapper.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Wrapper.java Tue Dec 29 14:13:24 2009
@@ -360,4 +360,15 @@
  * Set the async support for the associated servlet.
  */
 public void setAsyncSupported(boolean asyncSupport);
+
+/**
+ * Is the associated Servlet enabled? Defaults to true.
+ */
+public boolean isEnabled();
+
+/**
+ * Sets the enabled attribute for the associated servlet.
+ */
+public void setEnabled(boolean enabled);
+
 }

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java?rev=894393&r1=894392&r2=894393&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java Tue Dec 29 
14:13:24 2009
@@ -267,6 +267,11 @@
 protected boolean asyncSupported = true;
 
 /**
+ * Enabled
+ */
+protected boolean enabled = true;
+
+/**
  * Static class array used when the SecurityManager is turned on and 
  * Servlet.init is invoked.
  */
@@ -586,13 +591,15 @@
  */
 public boolean isUnavailable() {
 
-if (available == 0L)
-return (false);
+if (!isEnabled())
+return true;
+else if (available == 0L)
+return false;
 else if (available <= System.currentTimeMillis()) {
 available = 0L;
-return (false);
+return false;
 } else
-return (true);
+return true;
 
 }
 
@@ -1516,6 +1523,14 @@
 this.asyncSupported = asyncSupported;
 }
 
+public boolean isEnabled() {
+return enabled;
+}
+
+public void setEnabled(boolean enabled) {
+this.enabled = enabled;
+}
+
 //  Package Methods
 
 

Modified: tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java?rev=894393&r1=894392&r2=894393&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java Tue Dec 29 
14:13:24 2009
@@ -234,4 +234,18 @@
 public void setAsyncSupported(String asyncSupported) {
 this.asyncSupported = Boolean.valueOf(asyncSupported);
 }
+
+
+/**
+ * Is this servlet enabled.
+ */
+private Boolean enabled = null;
+
+public Boolean getEnabled() {
+return this.enabled;
+}
+
+public void setEnabled(String enabled) {
+this.enabled = Boolean.valueOf(enabled);
+}
 }

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java?rev=894393&r1=894392&r2=894393&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java Tue Dec 29 
14:13:24 2009
@@ -390,7 +390,9 @@
"setFileSizeThreshold", 0);
 
 digester.addCallMethod(fullPrefix + "/servlet/async-supported",
-"setAsyncSupported", 0);
+   "setAsyncSupported", 0);
+digester.addCallMethod(fullPrefix + "/servlet/enabled",
+   "setEnabled", 0);
 
 
 digester.addRule(fullPrefix + "/servlet-mapping",

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=894393&r1=894392&r2=894393&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/WebXml.jav

svn commit: r894450 - in /tomcat/trunk/java/org/apache/catalina: deploy/SessionConfig.java startup/LocalStrings.properties startup/WebRuleSet.java startup/WebXml.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 17:33:22 2009
New Revision: 894450

URL: http://svn.apache.org/viewvc?rev=894450&view=rev
Log:
Add support for configuring session cookies and session tracking in web.xml

Added:
tomcat/trunk/java/org/apache/catalina/deploy/SessionConfig.java
Modified:
tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java
tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

Added: tomcat/trunk/java/org/apache/catalina/deploy/SessionConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/SessionConfig.java?rev=894450&view=auto
==
--- tomcat/trunk/java/org/apache/catalina/deploy/SessionConfig.java (added)
+++ tomcat/trunk/java/org/apache/catalina/deploy/SessionConfig.java Tue Dec 29 
17:33:22 2009
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.catalina.deploy;
+
+import java.util.EnumSet;
+
+import javax.servlet.SessionTrackingMode;
+
+/**
+ * Representation of a session configuration element for a web application,
+ * as represented in a  element in the
+ * deployment descriptor.
+ */
+public class SessionConfig {
+private Integer sessionTimeout;
+private String cookieName;
+private String cookieDomain;
+private String cookiePath;
+private String cookieComment;
+private Boolean cookieHttpOnly;
+private Boolean cookieSecure;
+private Integer cookieMaxAge;
+private EnumSet sessionTrackingModes =
+EnumSet.noneOf(SessionTrackingMode.class);
+
+public Integer getSessionTimeout() {
+return sessionTimeout;
+}
+public void setSessionTimeout(String sessionTimeout) {
+this.sessionTimeout = Integer.valueOf(sessionTimeout);
+}
+
+public String getCookieName() {
+return cookieName;
+}
+public void setCookieName(String cookieName) {
+this.cookieName = cookieName;
+}
+
+public String getCookieDomain() {
+return cookieDomain;
+}
+public void setCookieDomain(String cookieDomain) {
+this.cookieDomain = cookieDomain;
+}
+
+public String getCookiePath() {
+return cookiePath;
+}
+public void setCookiePath(String cookiePath) {
+this.cookiePath = cookiePath;
+}
+
+public String getCookieComment() {
+return cookieComment;
+}
+public void setCookieComment(String cookieComment) {
+this.cookieComment = cookieComment;
+}
+
+public Boolean getCookieHttpOnly() {
+return cookieHttpOnly;
+}
+public void setCookieHttpOnly(String cookieHttpOnly) {
+this.cookieHttpOnly = Boolean.valueOf(cookieHttpOnly);
+}
+
+public Boolean getCookieSecure() {
+return cookieSecure;
+}
+public void setCookieSecure(String cookieSecure) {
+this.cookieSecure = Boolean.valueOf(cookieSecure);
+}
+
+public Integer getCookieMaxAge() {
+return cookieMaxAge;
+}
+public void setCookieMaxAge(String cookieMaxAge) {
+this.cookieMaxAge = Integer.valueOf(cookieMaxAge);
+}
+
+public EnumSet getSessionTrackingModes() {
+return sessionTrackingModes;
+}
+public void addSessionTrackingMode(String sessionTrackingMode) {
+sessionTrackingModes.add(
+SessionTrackingMode.valueOf(sessionTrackingMode));
+}
+
+}

Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=894450&r1=894449&r2=894450&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Tue 
Dec 29 17:33:22 2009
@@ -130,6 +130,14 @@
 webXml.mergeConflictOrder=Fragment relative ordering contains circular 
references. Thsi can be resolved by using absolute ordering in web.xml.
 webXml.merge

svn commit: r894457 - /tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 17:47:36 2009
New Revision: 894457

URL: http://svn.apache.org/viewvc?rev=894457&view=rev
Log:
XML output tweaks
Fix some NPEs in the merge of session-config elements
Fix a copy and paste error in the merge of session-config elements

Modified:
tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=894457&r1=894456&r2=894457&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/WebXml.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Tue Dec 29 
17:47:36 2009
@@ -590,9 +590,11 @@
 appendElement(sb, INDENT4, "enabled", servletDef.getEnabled());
 appendElement(sb, INDENT4, "async-supported",
 servletDef.getAsyncSupported());
-sb.append("\n");
-appendElement(sb, INDENT6, "role-name", servletDef.getRunAs());
-sb.append("\n");
+if (servletDef.getRunAs() != null) {
+sb.append("\n");
+appendElement(sb, INDENT6, "role-name", servletDef.getRunAs());
+sb.append("\n");
+}
 for (SecurityRoleRef roleRef : servletDef.getSecurityRoleRefs()) {
 sb.append("\n");
 appendElement(sb, INDENT6, "role-name", roleRef.getName());
@@ -1491,8 +1493,10 @@
 }
 }
 }
-sessionConfig.setSessionTimeout(
-temp.getSessionConfig().getSessionTimeout().toString());
+if (temp.getSessionConfig().getSessionTimeout() != null) {
+sessionConfig.setSessionTimeout(
+
temp.getSessionConfig().getSessionTimeout().toString());
+}
 }
 
 if (sessionConfig.getCookieName() == null) {
@@ -1597,8 +1601,10 @@
 }
 }
 }
-sessionConfig.setCookieHttpOnly(
-temp.getSessionConfig().getCookieHttpOnly().toString());
+if (temp.getSessionConfig().getCookieHttpOnly() != null) {
+sessionConfig.setCookieHttpOnly(
+
temp.getSessionConfig().getCookieHttpOnly().toString());
+}
 }
 if (sessionConfig.getCookieSecure() == null) {
 for (WebXml fragment : fragments) {
@@ -1618,8 +1624,10 @@
 }
 }
 }
-sessionConfig.setCookieSecure(
-temp.getSessionConfig().getCookieSecure().toString());
+if (temp.getSessionConfig().getCookieSecure() != null) {
+sessionConfig.setCookieSecure(
+temp.getSessionConfig().getCookieSecure().toString());
+}
 }
 if (sessionConfig.getCookieMaxAge() == null) {
 for (WebXml fragment : fragments) {
@@ -1639,8 +1647,10 @@
 }
 }
 }
-sessionConfig.setCookieMaxAge(
-temp.getSessionConfig().getCookieMaxAge().toString());
+if (temp.getSessionConfig().getCookieMaxAge() != null) {
+sessionConfig.setCookieMaxAge(
+temp.getSessionConfig().getCookieMaxAge().toString());
+}
 }
 
 if (sessionConfig.getSessionTrackingModes().size() == 0) {
@@ -1662,8 +1672,8 @@
 }
 }
 }
-sessionConfig.setSessionTimeout(
-temp.getSessionConfig().getSessionTimeout().toString());
+sessionConfig.getSessionTrackingModes().addAll(
+temp.getSessionConfig().getSessionTrackingModes());
 }
 
 for (WebXml fragment : fragments) {



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



svn commit: r894475 - /tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 20:19:44 2009
New Revision: 894475

URL: http://svn.apache.org/viewvc?rev=894475&view=rev
Log:
Don't override method that has a more complete implementation (handles more 
edge cases) in RealmBase

Modified:
tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java

Modified: tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java?rev=894475&r1=894474&r2=894475&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/realm/JAASMemoryLoginModule.java Tue 
Dec 29 20:19:44 2009
@@ -22,7 +22,6 @@
 import java.io.File;
 import java.io.IOException;
 import java.security.Principal;
-import java.util.ArrayList;
 import java.util.Map;
 
 import javax.security.auth.Subject;
@@ -36,11 +35,7 @@
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
 
-import org.apache.catalina.Context;
 import org.apache.catalina.authenticator.Constants;
-import org.apache.catalina.connector.Request;
-import org.apache.catalina.deploy.SecurityConstraint;
-import org.apache.catalina.util.RequestUtil;
 import org.apache.tomcat.util.res.StringManager;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
@@ -210,56 +205,6 @@
 
 
 /**
- * Return the SecurityConstraints configured to guard the request URI for
- * this request, or null if there is no such constraint.
- *
- * @param request Request we are processing
- * @param context Context the Request is mapped to
- */
-@Override
-public SecurityConstraint [] findSecurityConstraints(Request request,
- Context context) {
-ArrayList results = null;
-// Are there any defined security constraints?
-SecurityConstraint constraints[] = context.findConstraints();
-if ((constraints == null) || (constraints.length == 0)) {
-if (context.getLogger().isDebugEnabled())
-context.getLogger().debug("  No applicable constraints 
defined");
-return (null);
-}
-
-// Check each defined security constraint
-String uri = request.getDecodedRequestURI();
-String contextPath = request.getContextPath();
-if (contextPath.length() > 0)
-uri = uri.substring(contextPath.length());
-uri = RequestUtil.URLDecode(uri); // Before checking constraints
-String method = request.getMethod();
-for (int i = 0; i < constraints.length; i++) {
-if (context.getLogger().isDebugEnabled())
-context.getLogger().debug("  Checking constraint '" + 
constraints[i] +
-"' against " + method + " " + uri + " --> " +
-constraints[i].included(uri, method));
-if (constraints[i].included(uri, method)) {
-if(results == null) {
-results = new ArrayList();
-}
-results.add(constraints[i]);
-}
-}
-
-// No applicable security constraint was found
-if (context.getLogger().isDebugEnabled())
-context.getLogger().debug("  No applicable constraint located");
-if(results == null)
-return null;
-SecurityConstraint [] array = new SecurityConstraint[results.size()];
-System.arraycopy(results.toArray(), 0, array, 0, array.length);
-return array;
-}
-
-
-/**
  * Initialize this LoginModule with the specified
  * configuration information.
  *



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



svn commit: r894483 - in /tomcat/trunk/java/org/apache/catalina: core/LocalStrings.properties core/StandardContext.java deploy/SecurityCollection.java startup/WebRuleSet.java startup/WebXml.java

2009-12-29 Thread markt
Author: markt
Date: Tue Dec 29 21:21:59 2009
New Revision: 894483

URL: http://svn.apache.org/viewvc?rev=894483&view=rev
Log:
Add support for http-method-omission

Modified:
tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/trunk/java/org/apache/catalina/deploy/SecurityCollection.java
tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java
tomcat/trunk/java/org/apache/catalina/startup/WebXml.java

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=894483&r1=894482&r2=894483&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties Tue Dec 
29 21:21:59 2009
@@ -115,6 +115,7 @@
 standardContext.reloadingFailed=Reloading this Context failed due to previous 
errors
 standardContext.reloadingStarted=Reloading Context with path [{0}] has started
 standardContext.resourcesStart=Error starting static Resources
+standardContext.securityConstraint.mixHttpMethod=It is not permitted to mix 
 and  in the same web resource collection
 standardContext.securityConstraint.pattern=Invalid  {0} in 
security constraint
 standardContext.servletMap.name=Servlet mapping specifies an unknown servlet 
name {0}
 standardContext.servletMap.pattern=Invalid  {0} in servlet mapping

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=894483&r1=894482&r2=894483&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Tue Dec 29 
21:21:59 2009
@@ -2287,6 +2287,11 @@
  ("standardContext.securityConstraint.pattern",
   patterns[j]));
 }
+if (collections[i].findMethods().length > 0 &&
+collections[i].findOmittedMethods().length > 0) {
+throw new IllegalArgumentException(sm.getString(
+"standardContext.securityConstraint.mixHttpMethod"));
+}
 }
 
 // Add this constraint to the set for our web application

Modified: tomcat/trunk/java/org/apache/catalina/deploy/SecurityCollection.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/SecurityCollection.java?rev=894483&r1=894482&r2=894483&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/deploy/SecurityCollection.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/SecurityCollection.java Tue 
Dec 29 21:21:59 2009
@@ -93,12 +93,17 @@
 
 
 /**
- * The HTTP methods covered by this web resource collection.
+ * The HTTP methods explicitly covered by this web resource collection.
  */
 private String methods[] = new String[0];
 
 
 /**
+ * The HTTP methods explicitly excluded from this web resource collection.
+ */
+private String omittedMethods[] = new String[0];
+
+/**
  * The name of this web resource collection.
  */
 private String name = null;
@@ -161,7 +166,8 @@
 
 
 /**
- * Add an HTTP request method to be part of this web resource collection.
+ * Add an HTTP request method to be explicitly part of this web resource
+ * collection.
  */
 public void addMethod(String method) {
 
@@ -177,6 +183,20 @@
 
 
 /**
+ * Add an HTTP request method to the methods explicitly excluded from this
+ * web resource collection.
+ */
+public void addOmittedMethod(String method) {
+if (method == null)
+return;
+String results[] = new String[omittedMethods.length + 1];
+for (int i = 0; i < omittedMethods.length; i++)
+results[i] = omittedMethods[i];
+results[omittedMethods.length] = method;
+omittedMethods = results;
+}
+
+/**
  * Add a URL pattern to be part of this web resource collection.
  */
 public void addPattern(String pattern) {
@@ -184,12 +204,12 @@
 if (pattern == null)
 return;
 
-pattern = RequestUtil.URLDecode(pattern);
+String decodedPattern = RequestUtil.URLDecode(pattern);
 String results[] = new String[patterns.length + 1];
 for (int i = 0; i < patterns.length; i++) {
 results[i] = patterns[i];
 }
-results[patterns.length] = pattern;
+results[patterns.length] = decodedPattern;
 patterns = results;
 
 }
@@ -203,21 +223,29

DO NOT REPLY [Bug 48458] New: Deployment is not happening

2009-12-29 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48458

   Summary: Deployment is not happening
   Product: Tomcat 6
   Version: 6.0.20
  Platform: PC
OS/Version: Windows Vista
Status: NEW
  Severity: critical
  Priority: P2
 Component: Native:Integration
AssignedTo: dev@tomcat.apache.org
ReportedBy: 4me.sun...@gmail.com


hi, my problem is that the deployment is not happening even though the server
is started. It was working fine till last two days, suddenly the problem
occurred. I want to know what might be the cause of this situation.
Thanks Sunoob Krish

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- 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