You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Bruce Snyder (JIRA)" <ji...@apache.org> on 2008/03/07 16:23:35 UTC

[jira] Commented: (SM-1161) jbi-service-unit causes infinite loop when dependency graph is not cycle-free

    [ https://issues.apache.org/activemq/browse/SM-1161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=41594#action_41594 ] 

Bruce Snyder commented on SM-1161:
----------------------------------

Committed to the 3.2 branch via [revision 634707|http://svn.apache.org/viewvc?rev=634707&view=rev] and to the trunk (3.3) via [revision 634714|http://svn.apache.org/viewvc?rev=634714&view=rev]. 

> jbi-service-unit causes infinite loop when dependency graph is not cycle-free
> -----------------------------------------------------------------------------
>
>                 Key: SM-1161
>                 URL: https://issues.apache.org/activemq/browse/SM-1161
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: tooling
>    Affects Versions: 3.2, 3.2.1
>         Environment: mvn 2.0.6, win xp pro
>            Reporter: Tammo van Lessen
>            Assignee: Bruce Snyder
>            Priority: Critical
>         Attachments: infinite-loop-patch.txt
>
>
> Hi,
> when building a JSR181 SU, maven dies in a StackOverflowException, caused by an infinite loop in AbstractJBIMojo.getArtifacts(). My guess is that one of the used libraries draws some
> transitive dependencies, which have have a cycle.
> [ERROR] FATAL ERROR
> [INFO] ------------------------------------------------------------------------
> [INFO] null
> [INFO] ------------------------------------------------------------------------
> [INFO] Trace
> java.lang.StackOverflowError
>         at org.apache.maven.artifact.DefaultArtifact.hashCode(DefaultArtifact.java:305)
>         at java.util.HashMap.put(HashMap.java:372)
>         at java.util.HashSet.add(HashSet.java:200)
>         at org.apache.servicemix.maven.plugin.jbi.AbstractJbiMojo.getArtifacts(AbstractJbiMojo.java:
> 144)
>         at org.apache.servicemix.maven.plugin.jbi.AbstractJbiMojo.getArtifacts(AbstractJbiMojo.java:
> 147)
>         at org.apache.servicemix.maven.plugin.jbi.AbstractJbiMojo.getArtifacts(AbstractJbiMojo.java:
> 147)
>         at org.apache.servicemix.maven.plugin.jbi.AbstractJbiMojo.getArtifacts(AbstractJbiMojo.java:
> 147)
> ...
> I had a look at the code and are wondering whether the exit condition of the recursive getArtifacts() methods should also check if the artifact has already been processed.
> The same applies to the debug method "print".
> Please find attached a patch against SM 3.2.1 which fixes that (unless I did not get the original intention of getArtifacts() wrong).
> Thanks,
>   Tammo

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.