I just recently made some relatively minor changes to Eclipse ICE and found that when I tried building with Tycho (0.23), some of my tests bundles failed with a Caused by: java.lang.ClassCircularityError. They run fine as JUnit Tests in the UI.
I was able to get rid of most of these errors with simple changes to the tests and/or just cleaning up some packages. However, I am still encountering the error in the case where a bundle publishes an interface that is realized by another bundle. Both bundles are started lazily. The bundle that realizes the interface causes the declaring bundle to load, which in turn tries to load the first bundle through the ExtensionRegistry.