Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 324746

Summary: Building an RCP plugin application with "Allow for binary cycles in target platform" unchecked produce a build error
Product: z_Archived Reporter: Ralph Bosson <rbosson>
Component: BIRTAssignee: Birt-Build <Birt-Build-inbox>
Status: RESOLVED INVALID QA Contact:
Severity: major    
Priority: P3 CC: bluesoldier, rbosson
Version: 2.6.0   
Target Milestone: 3.7.0   
Hardware: Macintosh   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Ralph Bosson CLA 2010-09-08 10:15:45 EDT
Build Identifier: Helios Release Build id: 20100617-1415: BIRT:2.6.0.v20100427-35-7w31211716 Build id: v20100609-1613

Building an RCP plugin application with "Allow for binary cycles in target platform" unchecked produces the following error:

"A cycle was detected when generating the classpath com.corgroup.plugin_0.1.0.001,  org.eclipse.birt.report.viewer_2.6.0.v20100605,  org.eclipse.equinox.http.jetty_2.0.0.v20100503, org.mortbay.jetty.util_6.1.23.v201004211559, org.slf4j.api_1.5.11.v20100519-1910, 
ch.qos.logback.classic_0.9.19.v20100519-1505,  ch.qos.logback.core_0.9.19.v20100419-1216,  org.slf4j.api_1.5.11.v20100519-1910."

The same plugin application build with "Allow for binary cycles in target platform" checked for macosx (cocoa/x86_64) crashes the JVM when a BIRT report is selected for display.  

The application built for macosx (cocoa/x86) and macosx (carbon/ppc) does not crash when a BIRT report is selected for display.

Product - Build - Dependencies

<plugin id="com.ibm.icu"/>
<plugin id="com.lowagie.text"/>
<plugin id="javax.activation"/>
<plugin id="javax.mail"/>
<plugin id="javax.servlet"/>
<plugin id="javax.servlet.jsp"/>
<plugin id="javax.wsdl"/>
<plugin id="javax.xml"/>
<plugin id="javax.xml.rpc"/>
<plugin id="javax.xml.soap"/>
<plugin id="org.aopalliance"/>
<plugin id="org.apache.axis"/>
<plugin id="org.apache.batik.bridge"/>
<plugin id="org.apache.batik.css"/>
<plugin id="org.apache.batik.dom"/>
<plugin id="org.apache.batik.dom.svg"/>
<plugin id="org.apache.batik.ext.awt"/>
<plugin id="org.apache.batik.parser"/>
<plugin id="org.apache.batik.svggen"/>
<plugin id="org.apache.batik.transcoder"/>
<plugin id="org.apache.batik.util"/>
<plugin id="org.apache.batik.util.gui"/>
<plugin id="org.apache.batik.xml"/>
<plugin id="org.apache.commons.codec"/>
<plugin id="org.apache.commons.discovery"/>
<plugin id="org.apache.commons.el"/>
<plugin id="org.apache.commons.logging"/>
<plugin id="org.apache.jasper"/>
<plugin id="org.apache.lucene"/>
<plugin id="org.apache.lucene.analysis"/>
<plugin id="org.apache.xerces"/>
<plugin id="org.apache.xml.resolver"/>
<plugin id="org.apache.xml.serializer"/>
<plugin id="org.eclipse.birt"/>
<plugin id="org.eclipse.birt.chart.engine"/>
<plugin id="org.eclipse.birt.chart.reportitem"/>
<plugin id="org.eclipse.birt.core"/>
<plugin id="org.eclipse.birt.data"/>
<plugin id="org.eclipse.birt.data.aggregation"/>
<plugin id="org.eclipse.birt.report.data.adapter"/>
<plugin id="org.eclipse.birt.report.designer.core"/>
<plugin id="org.eclipse.birt.report.designer.ui"/>
<plugin id="org.eclipse.birt.report.engine"/>
<plugin id="org.eclipse.birt.report.engine.dataextraction"/>
<plugin id="org.eclipse.birt.report.engine.emitter.config"/>
<plugin id="org.eclipse.birt.report.engine.emitter.html"/>
<plugin id="org.eclipse.birt.report.engine.emitter.html.config"/>
<plugin id="org.eclipse.birt.report.engine.emitter.pdf"/>
<plugin id="org.eclipse.birt.report.engine.emitter.pdf.config"/>
<plugin id="org.eclipse.birt.report.engine.emitter.postscript"/>
<plugin id="org.eclipse.birt.report.engine.emitter.postscript.config"/>
<plugin id="org.eclipse.birt.report.engine.fonts"/>
<plugin id="org.eclipse.birt.report.engine.script.javascript"/>
<plugin id="org.eclipse.birt.report.item.crosstab.core"/>
<plugin id="org.eclipse.birt.report.model"/>
<plugin id="org.eclipse.birt.report.viewer"/>
<plugin id="org.eclipse.compare.core"/>
<plugin id="org.eclipse.core.commands"/>
<plugin id="org.eclipse.core.contenttype"/>
<plugin id="org.eclipse.core.databinding"/>
<plugin id="org.eclipse.core.databinding.beans"/>
<plugin id="org.eclipse.core.databinding.observable"/>
<plugin id="org.eclipse.core.databinding.property"/>
<plugin id="org.eclipse.core.expressions"/>
<plugin id="org.eclipse.core.filesystem"/>
<plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
<plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
<plugin id="org.eclipse.core.jobs"/>
<plugin id="org.eclipse.core.resources"/>
<plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
<plugin id="org.eclipse.core.runtime"/>
<plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
<plugin id="org.eclipse.core.variables"/>
<plugin id="org.eclipse.datatools.connectivity"/>
<plugin id="org.eclipse.datatools.connectivity.oda"/>
<plugin id="org.eclipse.datatools.connectivity.oda.consumer"/>
<plugin id="org.eclipse.datatools.connectivity.oda.profile"/>
<plugin id="org.eclipse.draw2d"/>
<plugin id="org.eclipse.emf.common"/>
<plugin id="org.eclipse.emf.ecore"/>
<plugin id="org.eclipse.emf.ecore.xmi"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.http.jetty"/>
<plugin id="org.eclipse.equinox.http.registry"/>
<plugin id="org.eclipse.equinox.http.servlet"/>
<plugin id="org.eclipse.equinox.jsp.jasper"/>
<plugin id="org.eclipse.equinox.jsp.jasper.registry"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.gef"/>
<plugin id="org.eclipse.help"/>
<plugin id="org.eclipse.help.appserver"/>
<plugin id="org.eclipse.help.base"/>
<plugin id="org.eclipse.help.ui"/>
<plugin id="org.eclipse.help.webapp"/>
<plugin id="org.eclipse.jface"/>
<plugin id="org.eclipse.jface.databinding"/>
<plugin id="org.eclipse.jface.text"/>
<plugin id="org.eclipse.osgi"/>
<plugin id="org.eclipse.osgi.services"/>
<plugin id="org.eclipse.swt"/>
<plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
<plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
<plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
<plugin id="org.eclipse.swt.motif.aix.ppc" fragment="true"/>
<plugin id="org.eclipse.swt.motif.hpux.ia64_32" fragment="true"/>
<plugin id="org.eclipse.swt.motif.linux.x86" fragment="true"/>
<plugin id="org.eclipse.swt.motif.solaris.sparc" fragment="true"/>
<plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/>
<plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
<plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
<plugin id="org.eclipse.text"/>
<plugin id="org.eclipse.ui"/>
<plugin id="org.eclipse.ui.carbon" fragment="true"/>
<plugin id="org.eclipse.ui.cocoa" fragment="true"/>
<plugin id="org.eclipse.ui.forms"/>
<plugin id="org.eclipse.ui.views"/>
<plugin id="org.eclipse.ui.workbench"/>
<plugin id="org.eclipse.ui.workbench.texteditor"/>
<plugin id="org.eclipse.update.configurator"/>
<plugin id="org.mortbay.jetty.server"/>
<plugin id="org.mortbay.jetty.util"/>
<plugin id="org.mozilla.rhino"/>
<plugin id="org.springframework.bundle.osgi.core"/>
<plugin id="org.springframework.bundle.osgi.extender"/>
<plugin id="org.springframework.bundle.osgi.io"/>
<plugin id="org.springframework.bundle.spring"/>
<plugin id="org.w3c.css.sac"/>
<plugin id="org.w3c.dom.smil"/>
<plugin id="org.w3c.dom.svg"/>
<plugin id="org.w3c.sac"/>


Reproducible: Always

Steps to Reproduce:
1. Install eclipse package: eclipse-jee-helios-macosx-cocoa-x86_64
2. Using software updates install BIRT: http://download.eclipse.org/birt/update-site/2.6
3. Add to the eclipse drop-in folder: com.sysdeo.eclipse.tomcat_3.2.1
4. Create a product and build.
Comment 1 Ralph Bosson CLA 2010-09-21 10:28:29 EDT
Tested using:

Version: 2.6.1.v20100709a-9iF7A8FGLY4z0pxX3ORrsdrp6JXb
Build id: v20100915-1750

Result: Binary cycle problem still exists.

Result: No longer crashing in cocoa/x86-64 build
Comment 2 Xiaoying Gu CLA 2011-03-11 04:12:47 EST
Removing below plugins from your config:

<plugin id="org.aopalliance"/>
<plugin id="org.springframework.bundle.osgi.core"/>
<plugin id="org.springframework.bundle.osgi.extender"/>
<plugin id="org.springframework.bundle.osgi.io"/>
<plugin id="org.springframework.bundle.spring"/>

The rcp plugins can be exported correctly with the option "Allow for binary cycles in target platform" unchecked. Apparently the cycles does not come from BIRT plugins. And birt doesn't have any dependency on above removed plugins.