[JIRA] Updated: (MDA-53) Setting recurseDirectories = true for DomFilesystemSourceStage causes recursive loop

james.webb@idp.protectnetwork.org (JIRA) noreply at shibboleth.net
Fri Nov 4 23:26:26 GMT 2011


     [ https://issues.shibboleth.net/jira/browse/MDA-53?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

james.webb at idp.protectnetwork.org updated MDA-53:
-------------------------------------------------

    Attachment: recursion_fix.patch

I'm working with Dan here on this project.  We found the issue with the recursion in DomFilesystemSourceStage.getSourceFiles.

Essentially, the code was in an infinite loop as soon as it hit its first directory. 

Here is a patch that should fix the recursion issue.  I made the change against the 0.6.1 tag since that was we code we were working with.

> Setting recurseDirectories = true for DomFilesystemSourceStage causes recursive loop
> ------------------------------------------------------------------------------------
>
>                 Key: MDA-53
>                 URL: https://issues.shibboleth.net/jira/browse/MDA-53
>             Project: Metadata Aggregator
>          Issue Type: Bug
>          Components: Pipeline
>    Affects Versions: 0.6.1
>         Environment: Mac OS X Lion 10.7.2 (11C74), java full version "1.6.0_26-b03-383"
>            Reporter: dantech at idp.protectnetwork.org
>            Assignee: Chad La Joie
>         Attachments: recursion_fix.patch
>
>
> If I create the following bean and point it to a directory with subdirectories containing my entity metadata, the DomFilesystemSourceStage gets stuck in a recursive loop.
> 	<bean id="source" class="net.shibboleth.metadata.dom.DomFilesystemSourceStage" p:id="source">
> 		<property name="parserPool">
> 			<bean class="org.opensaml.util.xml.BasicParserPool"/>
> 		</property>
> 		<property name="source">
> 			<bean class="java.io.File">
> 				<constructor-arg value="/tmp/mda/entities"/>
> 			</bean>
> 		</property>
> 		<property name="recurseDirectories" value="true"/>
> 	</bean>
> mda.sh /tmp/mda/my-federation-config.xml main
> Exception in thread "main" java.lang.StackOverflowError
> 	at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:447)
> 	at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)
> 	at java.lang.StringCoding$StringEncoder.encode(StringCoding.java:240)
> 	at java.lang.StringCoding.encode(StringCoding.java:272)
> 	at java.lang.String.getBytes(String.java:946)
> 	at java.io.UnixFileSystem.list(Native Method)
> 	at java.io.File.list(File.java:973)
> 	at java.io.File.listFiles(File.java:1051)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:250)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> 	at net.shibboleth.metadata.dom.DomFilesystemSourceStage.getSourceFiles(DomFilesystemSourceStage.java:254)
> ...

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the commits mailing list