Hi Thomas,
Indeed this is circular dependency most likely caused by support for
.product files. I have played a little more with it, here is what I get.
The project is structured in this way:
+product.plugin
+--+product.product
| \--product.feature
\-- ..
+product.feature
+--+feature.xml
| \--product.plugin
\-- ..
+other.plugins
\-- ..
Product file is in plugin. Product is feature based therefore it includes
the product.feature. On the other hand product.feature lists product.plugin
in its feature.xml. Before version 0.3.0 product files where not parsed so
there was no problem with my layout.
I have tried several scenarios:
1) Materialize product.plugin. Then I get something working and I can
perform buckminster actions. However product.feature does not get
materialized. It seems that in this case product file is not considered by
buckminster.
2) Materialize product.feature. I get this error at resolve and can not
proceed further:
Circular component dependency detected. Chain is product.plugin -> product.feature -> product.plugin
3) I add advisor node to my cquery:
<advisorNode namePattern="product.feature" componentType="eclipse.feature" allowCircularDependency="true"/>
Then I materialize everything successfully but get endless recursion on
perform action.
I hope this information helps,
Vaidas
Thomas Hallgren wrote:
Hi Vaidas,
This is odd. I can't recall I've modified anything that would have an
impact on the resolver. Are the things you're working on proprietary or is
there a chance for me to look at it? I must get some more info somehow in
order to address this.
From the looks of it, you get an endless recursion in LocalResolver but
I'm not sure why that would
happen. Any chance you have introduced a circular dependency? If you have,
it should be trapped and not result in a stack overflow so something is
definitely wrong, but I'm still curious.
Regards,
Thomas Hallgren
Vaidas Nargelas wrote:
Hi Thomas,
I have upgraded buckminster to r07488 and headless r07406 and I can no
longer perform an action. When I do perform plugin_x#bundle.jar I get
this exception:
java.lang.StackOverflowError
at sun.nio.cs.UTF_8$Encoder.encodeArrayLoop(UTF_8.java:446)
at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:517)
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:947)
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:228)
at java.io.File.exists(File.java:733)
at org.eclipse.buckminster.core.metadata.WorkspaceInfo.getMaterialization(WorkspaceInfo.java:397)
at org.eclipse.buckminster.core.metadata.WorkspaceInfo.getMaterialization(WorkspaceInfo.java:419)
at org.eclipse.buckminster.core.resolver.LocalResolver.localResolve(LocalResolver.java:190)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:405)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:450)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:450)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:450)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:450)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:450)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:450)
at org.eclipse.buckminster.core.resolver.LocalResolver.deepResolve(LocalResolver.java:450)
...
I can successfully perform the action with r7034.
Thanks,
Vaidas