Description
When using <extends> without specifying a location, we end up with a StackOverflowError. For example:
... <info organisation="foo" module="bar" revision="1.0" status="integration"> <extends organisation="foo" module="parent" revision="1.0.0" /> </info> ...
[ivy:buildlist] :: Apache Ivy 2.3.0-rc1 - 20120416000235 :: http://ant.apache.org/ivy/ :: [ivy:buildlist] :: loading settings :: file = D:\foo\ivysettings.xml BUILD FAILED java.lang.StackOverflowError at java.net.URL.set(URL.java:683) at java.net.URLStreamHandler.setURL(URLStreamHandler.java:521) at java.net.URLStreamHandler.setURL(URLStreamHandler.java:571) at sun.net.www.protocol.jar.Handler.parseURL(Handler.java:76) at java.net.URL.<init>(URL.java:596) at java.net.URL.<init>(URL.java:464) at sun.misc.URLClassPath$JarLoader.checkResource(URLClassPath.java:674) at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:759) at sun.misc.URLClassPath$JarLoader.findResource(URLClassPath.java:735) at sun.misc.URLClassPath.findResource(URLClassPath.java:146) at java.net.URLClassLoader$2.run(URLClassLoader.java:385) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findResource(URLClassLoader.java:382) at java.lang.ClassLoader.getResource(ClassLoader.java:1003) at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1193) at javax.xml.parsers.SecuritySupport$4.run(SecuritySupport.java:96) at java.security.AccessController.doPrivileged(Native Method) at javax.xml.parsers.SecuritySupport.getResourceAsStream(SecuritySupport.java:89) at javax.xml.parsers.FactoryFinder.findJarServiceProvider(FactoryFinder.java:250) at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:223) at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:128) at org.apache.ivy.util.XMLHelper.newSAXParser(XMLHelper.java:57) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:120) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:96) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:86) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.parse(XmlModuleDescriptorParser.java:276) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser.parseDescriptor(XmlModuleDescriptorParser.java:116) at org.apache.ivy.plugins.resolver.RepositoryResolver.findResourceUsingPattern(RepositoryResolver.java:109) at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findResourceUsingPatterns(AbstractPatternsBasedResolver.java:96) at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findIvyFileRef(AbstractPatternsBasedResolver.java:66) at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:228) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.resolveParentFromModuleInheritanceRepository(XmlModuleDescriptorParser.java:684) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.extendsStarted(XmlModuleDescriptorParser.java:438) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.startElement(XmlModuleDescriptorParser.java:327) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:133) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:96) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:86) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.parse(XmlModuleDescriptorParser.java:276) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser.parseDescriptor(XmlModuleDescriptorParser.java:116) at org.apache.ivy.plugins.resolver.RepositoryResolver.findResourceUsingPattern(RepositoryResolver.java:109) at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findResourceUsingPatterns(AbstractPatternsBasedResolver.java:96) at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findIvyFileRef(AbstractPatternsBasedResolver.java:66) at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:228) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.resolveParentFromModuleInheritanceRepository(XmlModuleDescriptorParser.java:684) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.extendsStarted(XmlModuleDescriptorParser.java:438) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.startElement(XmlModuleDescriptorParser.java:327) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:133) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:96) at org.apache.ivy.util.XMLHelper.parse(XMLHelper.java:86) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.parse(XmlModuleDescriptorParser.java:276) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser.parseDescriptor(XmlModuleDescriptorParser.java:116) at org.apache.ivy.plugins.resolver.RepositoryResolver.findResourceUsingPattern(RepositoryResolver.java:109) at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findResourceUsingPatterns(AbstractPatternsBasedResolver.java:96) at org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findIvyFileRef(AbstractPatternsBasedResolver.java:66) at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:228) at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.resolveParentFromModuleInheritanceRepository(XmlModuleDescriptorParser.java:684) ...