You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Johannes Rudolph (JIRA)" <ji...@apache.org> on 2008/01/08 11:31:33 UTC
[jira] Created: (IVY-696) StackOverflowError when configuration
extends itself
StackOverflowError when configuration extends itself
----------------------------------------------------
Key: IVY-696
URL: https://issues.apache.org/jira/browse/IVY-696
Project: Ivy
Issue Type: Bug
Components: Core
Affects Versions: 2.0.0-beta-1
Reporter: Johannes Rudolph
Priority: Minor
I filed this as a bug though it is a clear usage error. But since this might happen more often I think it should be handled more gracefully and informatively:
If a configuration is specified to extend itself like in here:
{quote}
<configurations>
<conf name="compile" visibility="public" extends="compile"/>
<conf name="runtime"/>
</configurations>
{quote}
Ivy doesn't complain but fails with a StackOverflowError:
{quote}
--- Nested Exception ---
java.lang.StackOverflowError
at java.util.HashMap.getEntry(HashMap.java:344)
at java.util.LinkedHashMap.get(LinkedHashMap.java:280)
at org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.getConfiguration(DefaultModuleDescriptor.java:368)
at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:596)
at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
{quote}
This might as well be valid for arbitrary configuration inheritance cycles, but I didn't tested this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (IVY-696) StackOverflowError when configuration
extends itself
Posted by "Xavier Hanin (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/IVY-696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xavier Hanin resolved IVY-696.
------------------------------
Resolution: Fixed
Fix Version/s: (was: 2.0)
2.0-RC1
I've fixed this by checking configurations cycles at parse time. Consequently the StackOverflowError is still technically feasible if you use a custom parser, with a custom ModuleDescriptor implementation in which you don't check the cycles. But we can consider this is part of the ModuleDescriptor contract to be valid.
> StackOverflowError when configuration extends itself
> ----------------------------------------------------
>
> Key: IVY-696
> URL: https://issues.apache.org/jira/browse/IVY-696
> Project: Ivy
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.0-beta-1
> Reporter: Johannes Rudolph
> Assignee: Xavier Hanin
> Priority: Minor
> Fix For: 2.0-RC1
>
>
> I filed this as a bug though it is a clear usage error. But since this might happen more often I think it should be handled more gracefully and informatively:
> If a configuration is specified to extend itself like in here:
> {quote}
> <configurations>
> <conf name="compile" visibility="public" extends="compile"/>
> <conf name="runtime"/>
> </configurations>
> {quote}
> Ivy doesn't complain but fails with a StackOverflowError:
> {quote}
> --- Nested Exception ---
> java.lang.StackOverflowError
> at java.util.HashMap.getEntry(HashMap.java:344)
> at java.util.LinkedHashMap.get(LinkedHashMap.java:280)
> at org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.getConfiguration(DefaultModuleDescriptor.java:368)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:596)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> {quote}
> This might as well be valid for arbitrary configuration inheritance cycles, but I didn't tested this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (IVY-696) StackOverflowError when configuration
extends itself
Posted by "Xavier Hanin (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/IVY-696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xavier Hanin updated IVY-696:
-----------------------------
Fix Version/s: 2.0
> StackOverflowError when configuration extends itself
> ----------------------------------------------------
>
> Key: IVY-696
> URL: https://issues.apache.org/jira/browse/IVY-696
> Project: Ivy
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.0-beta-1
> Reporter: Johannes Rudolph
> Priority: Minor
> Fix For: 2.0
>
>
> I filed this as a bug though it is a clear usage error. But since this might happen more often I think it should be handled more gracefully and informatively:
> If a configuration is specified to extend itself like in here:
> {quote}
> <configurations>
> <conf name="compile" visibility="public" extends="compile"/>
> <conf name="runtime"/>
> </configurations>
> {quote}
> Ivy doesn't complain but fails with a StackOverflowError:
> {quote}
> --- Nested Exception ---
> java.lang.StackOverflowError
> at java.util.HashMap.getEntry(HashMap.java:344)
> at java.util.LinkedHashMap.get(LinkedHashMap.java:280)
> at org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.getConfiguration(DefaultModuleDescriptor.java:368)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:596)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> {quote}
> This might as well be valid for arbitrary configuration inheritance cycles, but I didn't tested this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (IVY-696) StackOverflowError when configuration
extends itself
Posted by "Xavier Hanin (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/IVY-696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xavier Hanin reassigned IVY-696:
--------------------------------
Assignee: Xavier Hanin
> StackOverflowError when configuration extends itself
> ----------------------------------------------------
>
> Key: IVY-696
> URL: https://issues.apache.org/jira/browse/IVY-696
> Project: Ivy
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.0-beta-1
> Reporter: Johannes Rudolph
> Assignee: Xavier Hanin
> Priority: Minor
> Fix For: 2.0
>
>
> I filed this as a bug though it is a clear usage error. But since this might happen more often I think it should be handled more gracefully and informatively:
> If a configuration is specified to extend itself like in here:
> {quote}
> <configurations>
> <conf name="compile" visibility="public" extends="compile"/>
> <conf name="runtime"/>
> </configurations>
> {quote}
> Ivy doesn't complain but fails with a StackOverflowError:
> {quote}
> --- Nested Exception ---
> java.lang.StackOverflowError
> at java.util.HashMap.getEntry(HashMap.java:344)
> at java.util.LinkedHashMap.get(LinkedHashMap.java:280)
> at org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.getConfiguration(DefaultModuleDescriptor.java:368)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:596)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> at org.apache.ivy.core.resolve.IvyNode.addRootModuleConfigurations(IvyNode.java:599)
> {quote}
> This might as well be valid for arbitrary configuration inheritance cycles, but I didn't tested this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.