[ https://issues.apache.org/jira/browse/KARAF-5637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16373864#comment-16373864 ]
Jean-Baptiste Onofré commented on KARAF-5637: --------------------------------------------- I would say it's an expected behavior as your features introduce circular dep. However, the plugin should prevent by checking if the feature is not already seen in the construction map. > karaf-maven-plugin:features-add-to-repository crash on features with circular > dependencies > ------------------------------------------------------------------------------------------ > > Key: KARAF-5637 > URL: https://issues.apache.org/jira/browse/KARAF-5637 > Project: Karaf > Issue Type: Bug > Components: karaf-tooling > Affects Versions: 4.1.4, 4.1.5, 4.1.6 > Reporter: Jan-Peter Nilsson > Assignee: Jean-Baptiste Onofré > Priority: Critical > Attachments: > 0001-KARAF-5637-karaf-maven-plugin-features-add-to-reposi.patch > > > The features-add-to-repository goal in the karaf-maven-plugin will go into an > infinite recursion in addFeaturesDependencies (until it runs out of stack) > when given a feature descriptor that contains features with circular > dependencies. > A wild example of such a feature descriptor is > mvn:org.ops4j.pax.cdi/pax-cdi-features/1.0.0/xml/features. > > A reduced example > {code:xml} > <features name="test features" > xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"> > <feature name="FeatureA" description="Test Feature A" version="1.0.0"> > <feature version="1.0.0">FeatureB</feature> > </feature> > <feature name="FeatureB" description="Test Feature B" version="1.0.0"> > <feature version="1.0.0">FeatureA</feature> > </feature> > </features> > {code} > {code:xml} > <project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/xsd/maven-4.0.0.xsd"> > <modelVersion>4.0.0</modelVersion> > <groupId>test</groupId> > > <artifactId>test-features-add-to-repository-circular-dependencies</artifactId> > <version>1.0-SNAPSHOT</version> > <packaging>pom</packaging> > <build> > <plugins> > <plugin> > <groupId>org.apache.karaf.tooling</groupId> > <artifactId>karaf-maven-plugin</artifactId> > <version>@pom.version@</version> > <executions> > <execution> > <id>build-features-repo</id> > <phase>generate-resources</phase> > <goals> > <goal>features-add-to-repository</goal> > </goals> > <configuration> > <descriptors> > <descriptor>features.xml</descriptor> > </descriptors> > > <repository>${project.build.directory}/features</repository> > </configuration> > </execution> > </executions> > </plugin> > </plugins> > </build> > </project> > {code} > This will crash the plugin > {noformat} > Exception in thread "main" java.lang.StackOverflowError > at > org.apache.karaf.tooling.features.AbstractFeatureMojo.getMatchingFeature(AbstractFeatureMojo.java:198) > at > org.apache.karaf.tooling.features.AbstractFeatureMojo.addFeaturesDependencies(AbstractFeatureMojo.java:188) > at > org.apache.karaf.tooling.features.AbstractFeatureMojo.addFeaturesDependencies(AbstractFeatureMojo.java:191) > at > org.apache.karaf.tooling.features.AbstractFeatureMojo.addFeaturesDependencies(AbstractFeatureMojo.java:191) > ....{noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)