[ 
https://issues.apache.org/jira/browse/DIGESTER-167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eugene Fedotov updated DIGESTER-167:
------------------------------------

    Description: 
Looks like org.apache.commons.digester3.xmlrules.IncludeRule doesn't remove the 
name of included XML rules resource from the set of included files of the 
memoryRulesBinder after included module is installed. Hence, one can include 
resource actually only once. Parsing  of the following XML rules (slightly 
modified example from the documentation) causes unexpected "Circular file 
inclusion detected" exception:

rules1.xml
<?xml version="1.0"?>
<!DOCTYPE digester-rules PUBLIC
        "-//Apache Commons //DTD digester-rules XML V1.0//EN"
        "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd";>
<digester-rules>
    <pattern value="root/foo">
        <object-create-rule classname="Foo"/>
        <include url="classpath:/rules2.xml"/>
    </pattern>
    <pattern value="root/foo2">
        <object-create-rule classname="Foo"/>
        <include url="classpath:/rules2.xml"/>
    </pattern>
</digester-rules>

rules2.xml
<?xml version="1.0"?>
<!DOCTYPE digester-rules PUBLIC
        "-//Apache Commons //DTD digester-rules XML V1.0//EN"
        "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd";>
<digester-rules>
    <pattern value="bar">
        <object-create-rule classname="Bar"/>
    </pattern>
</digester-rules>

  was:
Looks like org.apache.commons.digester3.xmlrules.IncludeRule doesn't remove the 
name of included XML rules resource from the set of included files of the 
memoryRulesBinder after included module is installed. Hence, one can include 
resource actually only once. Parsing  of the following XML rules (slightly 
modified example from the documentation) causes unexpected "Circular file 
inclusion detected" exception:

<digester-rules>
    <pattern value="root/foo">
        <object-create-rule classname="Foo"/>
        <include url="classpath:/rules2.xml"/>
    </pattern>
    <pattern value="root/foo2">
        <object-create-rule classname="Foo"/>
        <include url="classpath:/rules2.xml"/>
    </pattern>
</digester-rules>

    
> Groundless "Circular file inclusion detected" exception when including rules 
> XML file
> -------------------------------------------------------------------------------------
>
>                 Key: DIGESTER-167
>                 URL: https://issues.apache.org/jira/browse/DIGESTER-167
>             Project: Commons Digester
>          Issue Type: Bug
>    Affects Versions: 3.2
>            Reporter: Eugene Fedotov
>
> Looks like org.apache.commons.digester3.xmlrules.IncludeRule doesn't remove 
> the name of included XML rules resource from the set of included files of the 
> memoryRulesBinder after included module is installed. Hence, one can include 
> resource actually only once. Parsing  of the following XML rules (slightly 
> modified example from the documentation) causes unexpected "Circular file 
> inclusion detected" exception:
> rules1.xml
> <?xml version="1.0"?>
> <!DOCTYPE digester-rules PUBLIC
>         "-//Apache Commons //DTD digester-rules XML V1.0//EN"
>         "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd";>
> <digester-rules>
>     <pattern value="root/foo">
>         <object-create-rule classname="Foo"/>
>         <include url="classpath:/rules2.xml"/>
>     </pattern>
>     <pattern value="root/foo2">
>         <object-create-rule classname="Foo"/>
>         <include url="classpath:/rules2.xml"/>
>     </pattern>
> </digester-rules>
> rules2.xml
> <?xml version="1.0"?>
> <!DOCTYPE digester-rules PUBLIC
>         "-//Apache Commons //DTD digester-rules XML V1.0//EN"
>         "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd";>
> <digester-rules>
>     <pattern value="bar">
>         <object-create-rule classname="Bar"/>
>     </pattern>
> </digester-rules>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to