DO NOT REPLY [Bug 48454] New: "Bad file descriptor"-IOException in CGIServlet for some programs
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
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
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/
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
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
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
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
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 aelement 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
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
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
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
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