"Filip Hanik - Dev Lists" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> 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
>

Tomcat has <strong>never</strong> made any promise that the core API won't 
change between versions.  If you depend on the Tomcat API at any version 
level, then you are required to review at the next level.  Therefore, I'm 
officially voting -1 (veto) on your suggestion.  Remy's patch is useful, and 
if any minor bugs are found, easily fixed.

> Filip
>
> [EMAIL PROTECTED] 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: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>> 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to