You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sk...@apache.org on 2005/06/03 05:19:52 UTC
svn commit: r179710 -
/jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/CallMethodRule.java
Author: skitching
Date: Thu Jun 2 20:19:51 2005
New Revision: 179710
URL: http://svn.apache.org/viewcvs?rev=179710&view=rev
Log:
Added javadoc comment re flaw in CallMethodRule design.
Modified:
jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/CallMethodRule.java
Modified: jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/CallMethodRule.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/CallMethodRule.java?rev=179710&r1=179709&r2=179710&view=diff
==============================================================================
--- jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/CallMethodRule.java (original)
+++ jakarta/commons/proper/digester/trunk/src/java/org/apache/commons/digester/CallMethodRule.java Thu Jun 2 20:19:51 2005
@@ -76,6 +76,19 @@
* target function takes something other than a string as a parameter) then
* the conversion will fail if the converter class does not accept an empty
* string as valid input.</p>
+ *
+ * <p>CallMethodRule has a design flaw which can cause it to fail under
+ * certain rule configurations. All CallMethodRule instances share a single
+ * parameter stack, and all CallParamRule instances simply store their data
+ * into the parameter-info structure that is on the top of the stack. This
+ * means that two CallMethodRule instances cannot be associated with the
+ * same pattern without getting scrambled parameter data. This same issue
+ * also applies when a CallMethodRule matches some element X, a different
+ * CallMethodRule matches a child element Y and some of the CallParamRules
+ * associated with the first CallMethodRule match element Y or one of its
+ * child elements. This issue has been present since the very first release
+ * of Digester. Note, however, that this configuration of CallMethodRule
+ * instances is not commonly required.</p>
*/
public class CallMethodRule extends Rule {
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org