tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: svn commit: r565464 - in /tomcat/tc6.0.x/trunk/java/org/apache: catalina/connector/ catalina/startup/ coyote/ajp/ coyote/http11/ tomcat/util/ tomcat/util/digester/
Date Wed, 15 Aug 2007 14:40:07 GMT
this should have been done in trunk, way too big change for a minor dot 
release upgrade
I suggest we move it there, revert in 6.0, and if it works well in 
trunk, we backport

Filip

remm@apache.org wrote:
> Author: remm
> Date: Mon Aug 13 11:13:47 2007
> New Revision: 565464
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=565464
> Log:
> - Experiment with reporting warnings for unmatched elements and attributes, based on
Bill's ideas.
> - The NIO HTTP protocol handler does not seem very reporting friendly at the moment.
> - The change should be rather safe, if it causes problems that cannot be fixed easily
I will revert it.
>
> Modified:
>     tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java
>     tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Catalina.java
>     tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java
>     tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetAllPropertiesRule.java
>     tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetContextPropertiesRule.java
>     tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
>     tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java
>     tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
>     tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Protocol.java
>     tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java
>     tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/Digester.java
>     tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
>     tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertyRule.java
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java Mon Aug 13
11:13:47 2007
> @@ -318,6 +318,20 @@
>          if (replacements.get(name) != null) {
>              repl = (String) replacements.get(name);
>          }
> +        if (!IntrospectionUtils.setProperty(protocolHandler, repl, value)) {
> +            log.warn("Property " + name + " not found on the protocol handler.");
> +        }
> +    }
> +
> +
> +    /**
> +     * Set a configured property.
> +     */
> +    public void setPropertyInternal(String name, String value) {
> +        String repl = name;
> +        if (replacements.get(name) != null) {
> +            repl = (String) replacements.get(name);
> +        }
>          IntrospectionUtils.setProperty(protocolHandler, repl, value);
>      }
>  
> @@ -388,7 +402,7 @@
>      public void setAllowTrace(boolean allowTrace) {
>  
>          this.allowTrace = allowTrace;
> -        setProperty("allowTrace", String.valueOf(allowTrace));
> +        setPropertyInternal("allowTrace", String.valueOf(allowTrace));
>  
>      }
>  
> @@ -466,7 +480,7 @@
>      public void setEmptySessionPath(boolean emptySessionPath) {
>  
>          this.emptySessionPath = emptySessionPath;
> -        setProperty("emptySessionPath", String.valueOf(emptySessionPath));
> +        setPropertyInternal("emptySessionPath", String.valueOf(emptySessionPath));
>  
>      }
>  
> @@ -489,7 +503,7 @@
>      public void setEnableLookups(boolean enableLookups) {
>  
>          this.enableLookups = enableLookups;
> -        setProperty("enableLookups", String.valueOf(enableLookups));
> +        setPropertyInternal("enableLookups", String.valueOf(enableLookups));
>  
>      }
>  
> @@ -559,7 +573,7 @@
>      public void setMaxSavePostSize(int maxSavePostSize) {
>  
>          this.maxSavePostSize = maxSavePostSize;
> -        setProperty("maxSavePostSize", String.valueOf(maxSavePostSize));
> +        setPropertyInternal("maxSavePostSize", String.valueOf(maxSavePostSize));
>      }
>  
>  
> @@ -581,7 +595,7 @@
>      public void setPort(int port) {
>  
>          this.port = port;
> -        setProperty("port", String.valueOf(port));
> +        setPropertyInternal("port", String.valueOf(port));
>  
>      }
>  
> @@ -745,7 +759,7 @@
>  
>          if(proxyName != null && proxyName.length() > 0) {
>              this.proxyName = proxyName;
> -            setProperty("proxyName", proxyName);
> +            setPropertyInternal("proxyName", proxyName);
>          } else {
>              this.proxyName = null;
>              removeProperty("proxyName");
> @@ -772,7 +786,7 @@
>      public void setProxyPort(int proxyPort) {
>  
>          this.proxyPort = proxyPort;
> -        setProperty("proxyPort", String.valueOf(proxyPort));
> +        setPropertyInternal("proxyPort", String.valueOf(proxyPort));
>  
>      }
>  
> @@ -797,7 +811,7 @@
>      public void setRedirectPort(int redirectPort) {
>  
>          this.redirectPort = redirectPort;
> -        setProperty("redirectPort", String.valueOf(redirectPort));
> +        setPropertyInternal("redirectPort", String.valueOf(redirectPort));
>  
>      }
>  
> @@ -846,7 +860,7 @@
>      public void setSecure(boolean secure) {
>  
>          this.secure = secure;
> -        setProperty("secure", Boolean.toString(secure));
> +        setPropertyInternal("secure", Boolean.toString(secure));
>      }
>  
>       /**
> @@ -867,7 +881,7 @@
>       public void setURIEncoding(String URIEncoding) {
>  
>           this.URIEncoding = URIEncoding;
> -         setProperty("uRIEncoding", URIEncoding);
> +         setPropertyInternal("uRIEncoding", URIEncoding);
>  
>       }
>  
> @@ -890,7 +904,7 @@
>       public void setUseBodyEncodingForURI(boolean useBodyEncodingForURI) {
>  
>           this.useBodyEncodingForURI = useBodyEncodingForURI;
> -         setProperty
> +         setPropertyInternal
>               ("useBodyEncodingForURI", String.valueOf(useBodyEncodingForURI));
>  
>       }
> @@ -918,7 +932,7 @@
>       */
>      public void setXpoweredBy(boolean xpoweredBy) {
>          this.xpoweredBy = xpoweredBy;
> -        setProperty("xpoweredBy", String.valueOf(xpoweredBy));
> +        setPropertyInternal("xpoweredBy", String.valueOf(xpoweredBy));
>      }
>  
>      /**
> @@ -929,7 +943,7 @@
>       */
>      public void setUseIPVHosts(boolean useIPVHosts) {
>          this.useIPVHosts = useIPVHosts;
> -        setProperty("useIPVHosts", String.valueOf(useIPVHosts));
> +        setPropertyInternal("useIPVHosts", String.valueOf(useIPVHosts));
>      }
>  
>      /**
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Catalina.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Catalina.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Catalina.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Catalina.java Mon Aug 13 11:13:47
2007
> @@ -21,10 +21,14 @@
>  
>  import java.io.File;
>  import java.io.FileInputStream;
> -import java.io.InputStream;
>  import java.io.IOException;
> +import java.io.InputStream;
>  import java.io.OutputStream;
>  import java.net.Socket;
> +import java.util.ArrayList;
> +import java.util.HashMap;
> +import java.util.List;
> +
>  import org.apache.catalina.Container;
>  import org.apache.catalina.Lifecycle;
>  import org.apache.catalina.LifecycleException;
> @@ -260,6 +264,12 @@
>          // Initialize the digester
>          Digester digester = new Digester();
>          digester.setValidating(false);
> +        digester.setRulesValidation(true);
> +        HashMap<Class, List<String>> fakeAttributes = new HashMap<Class,
List<String>>();
> +        ArrayList<String> attrs = new ArrayList<String>();
> +        attrs.add("className");
> +        fakeAttributes.put(Object.class, attrs);
> +        digester.setFakeAttributes(fakeAttributes);
>          digester.setClassLoader(StandardServer.class.getClassLoader());
>  
>          // Configure the actions we will be using
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java Mon Aug 13 11:13:47
2007
> @@ -427,7 +427,7 @@
>                  connector = new Connector();
>                  connector.setScheme("https");
>                  connector.setSecure(true);
> -                connector.setProperty("SSLEnabled","true");
> +                connector.setPropertyInternal("SSLEnabled","true");
>                  // FIXME !!!! SET SSL PROPERTIES
>              } else {
>                  connector = new Connector(protocol);
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetAllPropertiesRule.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetAllPropertiesRule.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetAllPropertiesRule.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetAllPropertiesRule.java Mon
Aug 13 11:13:47 2007
> @@ -62,8 +62,15 @@
>                  name = attributes.getQName(i);
>              }
>              String value = attributes.getValue(i);
> -            if ( !excludes.containsKey(name)) 
> -                IntrospectionUtils.setProperty(digester.peek(), name, value);
> +            if ( !excludes.containsKey(name)) {
> +                if (!digester.isFakeAttribute(digester.peek(), name) 
> +                        && !IntrospectionUtils.setProperty(digester.peek(),
name, value) 
> +                        && digester.getRulesValidation()) {
> +                    digester.getLogger().warn("[SetAllPropertiesRule]{" + digester.getMatch()
+
> +                            "} Setting property '" + name + "' to '" +
> +                            value + "' did not find a matching property.");
> +                }
> +            }
>          }
>  
>      }
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetContextPropertiesRule.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetContextPropertiesRule.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetContextPropertiesRule.java
(original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/SetContextPropertiesRule.java
Mon Aug 13 11:13:47 2007
> @@ -60,7 +60,13 @@
>                  continue;
>              }
>              String value = attributes.getValue(i);
> -            IntrospectionUtils.setProperty(digester.peek(), name, value);
> +            if (!digester.isFakeAttribute(digester.peek(), name) 
> +                    && !IntrospectionUtils.setProperty(digester.peek(), name,
value) 
> +                    && digester.getRulesValidation()) {
> +                digester.getLogger().warn("[SetContextPropertiesRule]{" + digester.getMatch()
+
> +                        "} Setting property '" + name + "' to '" +
> +                        value + "' did not find a matching property.");
> +            }
>          }
>  
>      }
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java Mon Aug 13 11:13:47
2007
> @@ -137,22 +137,6 @@
>  
>  
>      /**
> -     * Set a property.
> -     */
> -    public void setProperty(String name, String value) {
> -        setAttribute(name, value);
> -    }
> -
> -
> -    /**
> -     * Get a property
> -     */
> -    public String getProperty(String name) {
> -        return (String) getAttribute(name);
> -    }
> -
> -
> -    /**
>       * The adapter, used to call the connector
>       */
>      public void setAdapter(Adapter adapter) {
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java Mon Aug 13 11:13:47
2007
> @@ -137,22 +137,6 @@
>  
>  
>      /**
> -     * Set a property.
> -     */
> -    public void setProperty(String name, String value) {
> -        setAttribute(name, value);
> -    }
> -
> -
> -    /**
> -     * Get a property
> -     */
> -    public String getProperty(String name) {
> -        return (String) getAttribute(name);
> -    }
> -
> -
> -    /**
>       * The adapter, used to call the connector
>       */
>      public void setAdapter(Adapter adapter) {
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Mon Aug
13 11:13:47 2007
> @@ -90,20 +90,6 @@
>      }
>  
>      /**
> -     * Set a property.
> -     */
> -    public void setProperty(String name, String value) {
> -        setAttribute(name, value);
> -    }
> -
> -    /**
> -     * Get a property
> -     */
> -    public String getProperty(String name) {
> -        return (String)getAttribute(name);
> -    }
> -
> -    /**
>       * The adapter, used to call the connector.
>       */
>      protected Adapter adapter;
> @@ -325,14 +311,9 @@
>      public void setRestrictedUserAgents(String valueS) { restrictedUserAgents = valueS;
}
>      
>      
> -    public String getProtocol() {
> -        return getProperty("protocol");
> -    }
> -
> -    public void setProtocol( String k ) {
> -        setSecure(true);
> -        setAttribute("protocol", k);
> -    }
> +    protected String protocol = null;
> +    public String getProtocol() { return protocol; }
> +    public void setProtocol(String protocol) { setSecure(true); this.protocol = protocol;
}
>  
>      /**
>       * Maximum number of requests which can be performed over a keepalive 
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Protocol.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Protocol.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Protocol.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Protocol.java Mon Aug 13
11:13:47 2007
> @@ -103,20 +103,6 @@
>  
>      
>      /**
> -     * Set a property.
> -     */
> -    public void setProperty(String name, String value) {
> -        setAttribute(name, value);
> -    }
> -
> -    /**
> -     * Get a property
> -     */
> -    public String getProperty(String name) {
> -        return (String)getAttribute(name);
> -    }
> -
> -    /**
>       * Pass config info
>       */
>      public void setAttribute(String name, Object value) {
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java Mon Aug
13 11:13:47 2007
> @@ -258,7 +258,7 @@
>       * int or boolean we'll convert value to the right type before) - that means
>       * you can have setDebug(1).
>       */
> -    public static void setProperty(Object o, String name, String value) {
> +    public static boolean setProperty(Object o, String name, String value) {
>          if (dbg > 1)
>              d("setProperty(" + o.getClass() + " " + name + "=" + value + ")");
>  
> @@ -275,7 +275,7 @@
>                          && "java.lang.String".equals(paramT[0].getName())) {
>  
>                      methods[i].invoke(o, new Object[] { value });
> -                    return;
> +                    return true;
>                  }
>              }
>  
> @@ -328,7 +328,7 @@
>  
>                      if (ok) {
>                          methods[i].invoke(o, params);
> -                        return;
> +                        return true;
>                      }
>                  }
>  
> @@ -344,6 +344,7 @@
>                  params[0] = name;
>                  params[1] = value;
>                  setPropertyMethod.invoke(o, params);
> +                return true;
>              }
>  
>          } catch (IllegalArgumentException ex2) {
> @@ -367,6 +368,7 @@
>              if (dbg > 1)
>                  ie.printStackTrace();
>          }
> +        return false;
>      }
>  
>      public static Object getProperty(Object o, String name) {
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/Digester.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/Digester.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/Digester.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/Digester.java Mon Aug 13
11:13:47 2007
> @@ -312,6 +312,19 @@
>      protected boolean validating = false;
>  
>  
> +    
> +    /**
> +     * Warn on missing attributes and elements.
> +     */
> +    protected boolean rulesValidation = false;
> +
> +    
> +    /**
> +     * Fake attributes map (attributes are often used for object creation).
> +     */
> +    protected Map<Class, List<String>> fakeAttributes = null;
> +
> +
>      /**
>       * The Log to which most logging calls will be made.
>       */
> @@ -889,6 +902,72 @@
>  
>  
>      /**
> +     * Return the rules validation flag.
> +     */
> +    public boolean getRulesValidation() {
> +
> +        return (this.rulesValidation);
> +
> +    }
> +
> +
> +    /**
> +     * Set the rules validation flag.  This must be called before
> +     * <code>parse()</code> is called the first time.
> +     *
> +     * @param rulesValidation The new rules validation flag.
> +     */
> +    public void setRulesValidation(boolean rulesValidation) {
> +
> +        this.rulesValidation = rulesValidation;
> +
> +    }
> +
> +
> +    /**
> +     * Return the fake attributes list.
> +     */
> +    public Map<Class, List<String>> getFakeAttributes() {
> +
> +        return (this.fakeAttributes);
> +
> +    }
> +
> +
> +    /**
> +     * Determine if an attribute is a fake attribute.
> +     */
> +    public boolean isFakeAttribute(Object object, String name) {
> +
> +        if (fakeAttributes == null) {
> +            return false;
> +        }
> +        List<String> result = fakeAttributes.get(object.getClass());
> +        if (result == null) {
> +            result = fakeAttributes.get(Object.class);
> +        }
> +        if (result == null) {
> +            return false;
> +        } else {
> +            return result.contains(name);
> +        }
> +
> +    }
> +
> +
> +    /**
> +     * Set the fake attributes.
> +     *
> +     * @param fakeAttributes The new fake attributes.
> +     */
> +    public void setFakeAttributes(Map<Class, List<String>> fakeAttributes)
{
> +
> +        this.fakeAttributes = fakeAttributes;
> +
> +    }
> +
> +
> +    /**
>       * Return the XMLReader to be used for parsing the input document.
>       *
>       * FIX ME: there is a bug in JAXP/XERCES that prevent the use of a 
> @@ -1037,6 +1116,9 @@
>          } else {
>              if (debug) {
>                  log.debug("  No rules found matching '" + match + "'.");
> +            }
> +            if (rulesValidation) {
> +                log.warn("  No rules found matching '" + match + "'.");
>              }
>          }
>  
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertiesRule.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
(original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
Mon Aug 13 11:13:47 2007
> @@ -205,7 +205,13 @@
>                          "} Setting property '" + name + "' to '" +
>                          value + "'");
>              }
> -            IntrospectionUtils.setProperty(top, name, value);
> +            if (!digester.isFakeAttribute(top, name) 
> +                    && !IntrospectionUtils.setProperty(top, name, value) 
> +                    && digester.getRulesValidation()) {
> +                digester.log.warn("[SetPropertiesRule]{" + digester.match +
> +                        "} Setting property '" + name + "' to '" +
> +                        value + "' did not find a matching property.");
> +            }
>          }
>  
>      }
>
> Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertyRule.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertyRule.java?view=diff&rev=565464&r1=565463&r2=565464
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertyRule.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/digester/SetPropertyRule.java Mon
Aug 13 11:13:47 2007
> @@ -125,8 +125,13 @@
>          }
>  
>          // Set the property (with conversion as necessary)
> -        // FIXME: Exception if property doesn't exist ?
> -        IntrospectionUtils.setProperty(top, actualName, actualValue);
> +        if (!digester.isFakeAttribute(top, actualName) 
> +                && !IntrospectionUtils.setProperty(top, actualName, actualValue)

> +                && digester.getRulesValidation()) {
> +            digester.log.warn("[SetPropertyRule]{" + digester.match +
> +                    "} Setting property '" + name + "' to '" +
> +                    value + "' did not find a matching property.");
> +        }
>  
>      }
>  
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>
>   


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


Mime
View raw message