Bug 197277 - Inserting xml comments in the ant build file editor breaks syntax highlighting
Summary: Inserting xml comments in the ant build file editor breaks syntax highlighting
Status: ASSIGNED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Ant (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows 2000
: P3 normal with 2 votes (vote)
Target Milestone: ---   Edit
Assignee: Platform-Ant-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-20 06:00 EDT by David Corley CLA
Modified: 2019-09-06 15:32 EDT (History)
4 users (show)

See Also:


Attachments
build file illustrating the problem (4.14 KB, text/xml)
2008-06-26 05:58 EDT, David Corley CLA
no flags Details
imported build file (2.00 KB, text/xml)
2008-06-26 05:59 EDT, David Corley CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Corley CLA 2007-07-20 06:00:14 EDT
Build ID: I20070621-1340

Steps To Reproduce:
1.Create ant build file.
2.Add comment to build file, and close the comment.
3.Even though the comment is closed, the following code, up until the end of the next comment (if one exists) in the buildfile is considered a comment in its entirety.
Simply put, the following is occuring:
<!--Comment 1-->
<task name="x"/>   //This is highlighted as a comment
<task name="y"/>   //This is too
<!--Comment 2-->
The editor works ok when restarted, or if you carry out some action like character deletion or spacing on one of the lines that should not be a comment. However, it's a bug that needs fixing. I'm running Eclipse on JDK 1.6.0_02

More information:
<?xml version="1.0"?>
<!-- =========================================================== -->
<!-- Build system solution for the CS R6 intended for use        -->
<!-- with the big brother build system suite.                    -->
<!-- @author : David Corley                                      -->
<!-- @version : 1.0                                                -->
<!-- =========================================================== -->

<!--
# Define the project name and the description. Note: if user decides to use
# the ant command on the command line without specifying a target the build
# will default to running all targets which could take long.
-->
<project name="cslib" default="dist">
	<import file="../common/build-common-os.xml"/>
		
    <!--
      # overwrite any properties by creating a file under
      # ${user.home}/<appname>_build.properties
    -->
    <!--<property name="user.properties.file"
              location="${user.home}/cslib_build.properties"/>-->
    <property file="${user.home}/cslib-build.properties"/>
	<property file="cslib-build.properties"/>
	<property file="${user.home}/common.properties"/>
	<property file="../common/common.properties"/>
	
    <!--<property file="build-2.properties"/>-->
    
    <import file="../common/build-common-macros.xml"/>

    <!--
    # Local property declarations. Define global path references to be used
    # throughout the build, some paths require more dependencies than others.
    # We also define global file patterns, these are used extensively throughout
    # the code with ants pattern matching capabilities
    -->
	<!--Import common classpaths-->
	<import file="../common/build-common-classpaths.xml"/>
    <path id="compile.classpath">
        <path refid="visibroker.classpath"/>
        <path refid="cif.dev.classpath"/>
    	<path refid="versant.classpath"/>
        <pathelement path="${custom.lib.dir}/cslib-custom-ant.jar"/>
    </path>
	
	<path id="internal.rmic.classpath">
		<path refid="internal.compile.classpath"/>
		<path refid="clover.classpath"/>
	</path>
	
	<path id="internal.rmic.integration.classpath">
		<pathelement path="${build.dist.internal.dir}/${jar.file.instrumented.name}"/>
		<path refid="clover.classpath"/>
	</path>
	
	<path id="rmic.classpath">
		<path refid="compile.classpath"/>
	</path>
	
	<path id="internal.compile.classpath">
		<path refid="compile.classpath"/>
	</path>

	<path id="enhance.classpath">
		<pathelement location="${build.classes.bare.dir}"/>
	</path>
	
	<path id="internal.enhance.classpath">
		<pathelement location="${build.classes.instrumented.bare.dir}"/>
	</path>
	
    <path id="run.classpath">
        <path refid="compile.classpath"/>
    	<pathelement location="${build.classes.enhanced.dir}"/>
        <pathelement location="${build.classes.bare.dir}"/>
    	<pathelement location="./MP_Generated/mims.jar"/>
    </path>

    <path id="unit.test.classpath">
        <fileset dir="${junit.lib.dir}" includes="**/*.jar"/>
        <path refid="compile.classpath"/>
        <pathelement location="${build.classes.tests.unit.dir}"/>
        <pathelement path="${clover.lib.dir}/clover.jar"/>
        <fileset dir="${easymock.lib.dir}" includes="**/*.jar"/>
    	<pathelement path="${build.dist.internal.dir}/${jar.file.instrumented.unit.name}"/>
    </path>

    <path id="integration.test.classpath">
    	<pathelement location="./MP_Generated/mims.jar"/>
    	<pathelement path="${custom.lib.dir}/cslib-custom-ant.jar"/>
    	<pathelement location="${build.classes.tests.integration.dir}"/>
    	<path refid="visibroker.classpath"/>
        <path refid="compile.classpath"/>
        <fileset dir="${common.tools.dir}/junitperf/lib" includes="**/*.jar" excludes="x*"/>
        <fileset dir="${easymock.lib.dir}" includes="**/*.jar"/>
        <fileset dir="${clover.lib.dir}" includes="**/*.jar"/>
    	<pathelement path="${build.dist.internal.dir}/${jar.file.instrumented.integration.name}"/>
    </path>
	
	<path id="integration.test.compile.classpath">
		<path refid="cif.dev.classpath"/>
		<path refid="versant.classpath"/>
		<path refid="visibroker.classpath"/>
		<pathelement path="${build.dist.internal.dir}/${jar.file.instrumented.integration.name}"/>
		<fileset dir="${junit.lib.dir}" includes="**/*.jar"/>
		<fileset dir="${easymock.lib.dir}" includes="**/*.jar"/>
		<fileset dir="${common.tools.dir}/junitperf/lib" includes="**/*.jar" excludes="x*"/>
		<pathelement location="./MP_Generated/mims.jar"/>
	</path>
	
	<path id="internal-enhance-unit.classpath">
		<pathelement location="${build.classes.instrumented.unit.bare.dir}"/>
	</path>
	<path id="internal-enhance-integration.classpath">
		<pathelement location="${build.classes.instrumented.integration.bare.dir}"/>
	</path>

    <!-- ========================================================== -->
    <!-- Task definitions                                           -->
    <!-- ========================================================== -->
	<taskdef resource="com/cenqua/ant/antlib.xml" classpath="${clover.etc.dir}/cenquatasks.jar"/>
	<!--<taskdef resource="cloverlib.xml" classpath="${clover.lib.dir}/clover.jar"/>-->
    <extendclasspath path="${clover.lib.dir}/clover.jar"/>
    <extendclasspath path="${junit.lib.dir}/junit.jar"/>
	<taskdef name="idl2java"
             classname="com.borland.ant.taskdefs.AntIdl2JavaTask"
             classpathref="visibroker.classpath"/>
    <taskdef name="java2iiop"
             classname="com.borland.ant.taskdefs.AntJava2IiopTask"
             classpathref="visibroker.classpath"/>
    <taskdef resource="versant.tasks" classpathref="versant.classpath"/>
    <taskdef name="iajc" 
    	     classname="org.aspectj.tools.ant.taskdefs.AjcTask"
             classpathref="weave.classpath"/>

    <taskdef resource="clovertasks" classpathref="clover.classpath"/>
    <taskdef resource="cslib-custom-ant.properties" classpathref="compile.classpath"/>
    <taskdef resource="net/sf/antcontrib/antlib.xml">
         <classpath>
            <pathelement location="${common.tools.dir}/ant-contrib/ant-contrib-1.0b3.jar"/>
         </classpath>
    </taskdef>
	<!-- ========================================================== -->
	<!-- Common targets                                             -->
	<!-- ========================================================== -->
	
	<target name="init">
		<ant antfile="${common.targets}" target="init" />
	</target>
	    
	<target name="clean">
		<ant antfile="${common.targets}" target="clean" />
	</target>
	
	<!--# Runs the common idl2java task-->
	<target name="idl2java" depends="init">
		<ant antfile="${common.targets}" target="idl2java" inheritrefs="true"/>
	</target>
	
	<!-- Run the common checkstyle task -->
	<target name="checkstyle" if="checkstyle.on">
		<ant antfile="${common.targets}" target="checkstyle" inheritall="true"/>
	</target>

	<!--Run the common PMD task-->
	<target name="pmd" description="runs pmd check on cslib" if="pmd.on">
		<ant antfile="${common.targets}" target="pmd" inheritall="true"/>
	</target>
	
	<!--Run the common findbugs task-->
	<target name="findbugs" if="findbugs.on" depends="dist">
		<ant antfile="${common.targets}" target="findbugs" inheritrefs="true"/>
	</target>
	
	<target name="complete-test" depends="checkstyle,pmd,findbugs,unit-test,integration-test">
		<ant antfile="${common.targets}" target="complete-test" inheritrefs="true"/>
	</target>
	
	<target name="ant-diagram">
		<ant antfile="${common.targets}" target="ant-diagram" inheritrefs="true"/>
	</target>
	
    <!-- ========================================================== -->
    <!-- Public targets                                             -->
    <!-- ========================================================== -->
	<property name="common.targets" value="../common/build-common-targets.xml"/>
    <target name="all" depends="clean, release"
            description="Build and test everything; create a distribution">
        <echo level="info"
              message="[all] attempting to build and test everything..."/>
    </target>

    <target name="release" depends="package"
            description="Generates all cslib documentation">
        <echo level="info"
              message="[release] attempting to generate release documentation..."/>
    </target>
    
    <target name="package" depends="quality"
            description="Generates a .pkg file for release">
        <echo level="info"
              message="[package] attempting to make a .pkg file..."/>
    </target>

    <target name="quality" depends="checkstyle,pmd,findbugs,complete-test"
            description="Ensures QRank standards and produces QRank reports">
        <echo level="info"
              message="[quality] attempting to ensure QRank..."/>
    </target>
	
	

    <!-- ##################################################################### -->

    <target name="integration-test" description="Integration tests the product"
            depends="internal-rmic-integration-classes,internal-dist-integration,schema-definition">

        <echo level="info"
              message="[integration-test] attempting to integration test the product..."/>

        <echo level="info"
              message="[integration-test] running all junit integration tests..."/>

        <junit printsummary="${test.integrationtest.printsummary}"
               errorProperty="integration.test.failed"
               failureProperty="integration.test.failed"
               fork="true" 
        	   maxmemory="${test.integrationtest.max.memory}"
        	   forkmode="perTest"
        	   showoutput="true">
    
        	<classpath refid="integration.test.classpath"/>
	       	<sysproperty key="cc_home" value="${cif2_cs.parent.dir}\cif2_cs\nms_cif_cs\cslib"/>
        	<sysproperty key="LdapHost" value="ldap://atrcus203.athtem.eei.xxx.se:389"/>
        	<sysproperty key="LdapOrg" value="o=lmera"/>
        	<sysproperty key="LDAP_ADMINNAME" value="cn=admin,o=lmera"/>
        	<sysproperty key="LDAP_DOMAINNAME" value="LDAPhost"/>
        	<sysproperty key="LDAP_PW" value="ldapadmin"/>
        	<sysproperty key="noti_host_name" value="atrcus203.athtem.eei.xxx.se"/>
        	<sysproperty key="org.omg.CORBA.ORBSingletonClass" value="com.inprise.vbroker.orb.ORBSingleton"/>
        	<sysproperty key="org.omg.CORBA.ORBClass" value="com.inprise.vbroker.orb.ORB"/>
        	<sysproperty key="ORBInitRef" value="NameService=iioploc://atrcus203.athtem:12468/NameService"/>
        	<sysproperty key="vbroker.agent.enableLocator" value="false"/> 
        	<sysproperty key="se.xxx.security.debug" value="true"/>
        	<sysproperty key="se.xxx.security.type" value="test"/>
        	<sysproperty key="cs_dbname" value="BITCS1"/>  
        	<jvmarg value="-Xms128m"/>   
        	<jvmarg value="-Xmx256m"/>
        	
        	
            <!--
            # Formatters for capture and display, we use two brief provides details of
            # test failures in text format for console output and xml because it
            # provides us with so much detail about every test case, this is used to
            # generate the detailed reports
            -->
            <formatter type="xml"/>
            <formatter type="brief" usefile="false"/>
            <!--
            # Test case isolation technique. Allow for a large number of tests to be
            # run at once but also allow for the fact that only one test case may be
            # required to be run
            -->
            <test name="${integration.testcase}"
                  todir="${build.docs.test.integration.dir}"
                  if="integration.testcase">
            </test>

            <batchtest todir="${build.docs.test.integration.dir}" unless="integration.testcase">
                <fileset dir="${build.classes.tests.integration.dir}">
                    <include name="**/*Test.class"/>
                    <exclude name="**/*$*.class"/>
                    <exclude name="**/Base*.class"/>
                </fileset>
            </batchtest>
        	
        	</junit>
        	
        	<!--# Generate test reports from the generated xml files-->
        	<junitreport-macro test.report.dir="${build.docs.test.integration.dir}"/>
        			
        	<clover-report-macro 	db.dir="${build.data.clover.db.integration.dir}"
        	                     	db.name="${clover.db.name.integration}"
        						 	module.name="${module.name}"
        	                     	xml.report.dir="${build.docs.coverage.clover.integration.xml.dir}"
        	                     	xml.report.name="${clover.xml.report.name.integration}"
        						 	html.report.dir="${build.docs.coverage.clover.integration.html.dir}"
        	                     	test.type="integration"/>
        

        <!--# Create temporary file indicating what tests failed-->
        <!--<echo message="last build failed tests"
              file="${test.integrationtest.last.failed.file}"/>-->
        <!--
        # Completely fail the build with an error message
        -->
        <!--fail if="integration.test.failed" message="${project.name} Build System : Unit tests compromised . Check log or reports for
        details"/-->

        <!--
        # If we get to here all unit testing has passed :). Remove test failed file,
        # as these tests succeeded
        -->
        <delete file="${test.integrationtest.last.failed.file}"/>

    </target>
    
	<!--Common schema-definition target for use by CS components-->
	<target name="schema-definition" description="common schema-def wrapper">
		<ant antfile="${common.targets}" target="schema-definition" inheritrefs="true"/>
	</target>


    <target name="unit-test" description="Unit tests the product"
            depends="unit-test-compile">

        <echo level="info"
              message="[unit-test] attempting to unit test the product..."/>
        
        

        <echo level="info"
              message="[unit-test] running all junit tests..."/>

        <delete dir="${build.docs.test.unit.dir}" failonerror="false"
                quiet="true" includeemptydirs="true"/>
        <mkdir dir="${build.docs.test.unit.dir}"/>

        <junit printsummary="${test.unittest.printsummary}"
               errorProperty="test.failed"
               failureProperty="test.failed"
               fork="true" 
        	   maxmemory="${test.unittest.max.memory}">

            <classpath refid="unit.test.classpath"/>
            <jvmarg value="${junit.jvm.arg1}"/>
            <sysproperty key="cs_screenlog" value="${log.logToScreen}"/>
            <sysproperty key="cs_loglevel" value="${log.logLevel}"/>
            <sysproperty key="cs_loggroup" value="${log.logGroup}"/>
            <sysproperty key="cc_home" value="${module.root.dir}"/>

            <!--
            # Formatters for capture and display, we use two brief provides details of
            # test failures in text format for console output and xml because it
            # provides us with so much detail about every test case, this is used to
            # generate the detailed reports
            -->
            <formatter type="xml"/>
            <formatter type="brief" usefile="false"/>
            <!--
            # Test case isolation technique. Allow for a large number of tests to be
            # run at once but also allow for the fact that only one test case may be
            # required to be run
            -->
            <test name="${unit.testcase}" todir="${build.docs.test.unit.dir}"
                  if="unit.testcase">
            </test>

            <batchtest todir="${build.docs.test.unit.dir}"
                       unless="unit.testcase">
                <fileset dir="${build.classes.tests.unit.dir}">
                    <include name="**/*Test.class"/>
                    <exclude name="**/genericmibadapter/**/*Test.class"/>
                    <exclude name="**/*$*.class"/>
                </fileset>
            </batchtest>

            <batchtest todir="${build.docs.test.unit.dir}"
                       unless="unit.testcase">
                <fileset dir="${build.classes.tests.unit.dir}"
                         includes="**/genericmibadapter/**/*Test.class"
                         excludes="**/*$*.class"/>
            </batchtest>
        </junit>
        	<!--# Generate test reports from the generated xml files-->
        	<junitreport-macro test.report.dir="${build.docs.test.unit.dir}"/>
        	        			
        	<clover-report-macro 	db.dir="${build.data.clover.db.unit.dir}"
        	                     	db.name="${clover.db.name.unit}"
        						 	module.name="${module.name}"
	       	                     	xml.report.dir="${build.docs.coverage.clover.unit.xml.dir}"
          	                     	xml.report.name="${clover.xml.report.name.unit}"
           						 	html.report.dir="${build.docs.coverage.clover.unit.html.dir}"
           	                     	test.type="unit"/>

        

        <!--# Create temporary file indicating what tests failed-->
        <!--<echo message="last build failed tests" file="${test.unittest.last.failed.file}"/>-->
        <!--
        # Completely fail the build with an error message
        -->
        <!--fail if="test.failed" message="${project.name} Build System : Unit tests compromised . Check log or reports for
        details"/-->

        <!--
        # If we get to here all unit testing has passed :). Remove test failed file,
        # as these tests succeeded
        -->
        <!--<delete file="${test.unittest.last.failed.file}"/>-->

    </target>
	
	<target name="javadoc" depends="init">
		<javadoc
		           destdir="${build.quality.doc.api.dir}"
		           author="true"
		           version="true"
		           use="true"
		           windowtitle="CSLib API"
					useexternalfile="true">

		    <fileset dir="${src.dir}" defaultexcludes="yes"/>
			<fileset dir="${build.source.generated.idl.dir}" defaultexcludes="yes"/>
			<classpath refid="compile.classpath"/>
		    <doctitle><![CDATA[<h1>CSLib API</h1>]]></doctitle>
		    <bottom><![CDATA[<i>Copyright &#169; 2007 xxx LMI. All Rights Reserved.</i>]]></bottom>
		    <link offline="true" href="http://java.sun.com/j2se/1.5.0/docs/api/" packagelistLoc="C:\tmp"/>
		    <link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/>
		  </javadoc>
	</target>


    <target name="dist" depends="jar-regeneration-required"
            unless="jars.uptodate"
            description="Produce the distributables">

        <echo level="info"
              message="[dist] attempting to produce distributables..."/>

        <mkdir dir="${build.dist.dir}"/>
        <mkdir dir="${build.dist.lib.dir}"/>
    	
		<!--Create unweaved jar-->
        <jar jarfile="${build.dist.lib.dir}/${jar.file.unweaved.name}">
            <fileset dir="${build.classes.bare.dir}">
                <include name="**/*.*"/>
            </fileset>
        </jar>

    	<!--Create distributable jar-->
        <jar jarfile="${build.dist.lib.dir}/${jar.file.name}" update="true">
            <fileset dir="${build.classes.weaved.dir}">
                <include name="**/*.*"/>
            </fileset>
        </jar>

    	<!---->
        <jar jarfile="${build.dist.lib.dir}/${jar.file.test.name}">
            <fileset dir="${build.classes.enhanced.dir}">
                <include name="**/*.*"/>
            </fileset>
        </jar>

    	<!--Create interface class jar-->
        <jar jarfile="${build.dist.lib.dir}/${jar.file.interface.name}">
            <fileset dir="${build.classes.bare.dir}">
                <include name="com/xxx/nms/cif/cslib/**/*.*"/>
            </fileset>
        </jar>

    </target>


    <target name="jar-regeneration-required" depends="enrich">

        <uptodate property="jars.uptodate"
                  targetfile="${build.dist.lib.dir}/${jar.file.name}">
            <srcfiles dir="${build.classes.weaved.dir}"
                      includes="**/*.*"/>
            <srcfiles dir="${build.classes.enhanced.dir}"
                      includes="**/*.*"/>
        </uptodate>

    </target>

    <target name="enrich" depends="weave"
            description="Generates the idls, compiles all source code,
            enhances and weaves the source code"/>


    <!--Runs an imported macro to see if the weaving tool is available-->
	<target name="weave-available" depends="weave-required">
		<weave-available-macro/>
	</target>
	
	<!--Runs a imported common macro to see if the weaved classes are up to date-->
    <target name="weave-required">
		<weave-required-macro/>
    </target>	
	<target name="weave" depends="enhance,weave-available" unless="weave.uptodate">

        <echo level="info" message="[weave] weaving classes..."/>
    	<weave-macro dest.dir="${build.classes.weaved.dir}" 
    		         inpath="${build.classes.bare.dir}"
    	             classpath="weave.classpath"/>

    </target>

    

    <target name="enhance" 
    		depends="enhancement-required"
            unless="enhancement.uptodate">
        <echo level="info"
              message="[jdo-enhance] enhancing classes..."/>
        <!--
        # Copy the files necessary for enhancement.
        -->
        <copy file="${util.db.dir}/${jdo.package.metadata.file}"
              todir="${build.classes.bare.dir}"/>

        <copy file="${util.db.dir}/${jdo.package.metadata.file}"
              todir="${build.classes.weaved.dir}"/>


        <jdo-enhance project="${jdo.project.file}"
                     outputdir="${build.classes.enhanced.dir}"
                     genhyper="false">
            <classpath>
                <pathelement path="${util.db.dir}"/>
                <path refid="enhance.classpath"/>
            </classpath>
        </jdo-enhance>
    	
    	<echo level="info" message="Overwriting old classes with enhanced versions..."/>
    	<copy todir="${build.classes.bare.dir}" overwrite="true">
    		<fileset dir="${build.classes.enhanced.dir}">
    			<include name="**/*.*"/>
    		</fileset>
    	</copy>

    </target>

    <target name="enhancement-required" depends="ensure-enhancer-exists">

        <condition property="enhancement.uptodate">
            <and>
                <available file="${build.classes.enhanced.dir}/com"/>
                <uptodate>
                    <srcfiles dir="${build.classes.enhanced.dir}"
                              includes="**/*.class"/>
                    <mapper type="glob" from="${src.dir}/*.java" to="*.class"/>
                </uptodate>
            </and>
        </condition>

    </target>

    <target name="ensure-enhancer-exists" depends="rmic">
        <echo level="info"
              message="[ensure-enhancer-exists] probing availability of versant enhancer..."/>

        <condition property="enhancer.available">
            <available file="${versant.lib.dir}/${versant.task.jar}"
                       classpathref="enhance.classpath"/>
        </condition>

        <fail message="Cannot continue building code as versant enhancer cannot be found"
              unless="enhancer.available"/>
    </target>

    <target name="rmic" depends="rmic-regeneration-required"
            unless="rmic.uptodate">
        <echo level="info"
              message="[rmic] attempting to generate jrmp and iiop stubs..."/>

        <!--
        # We need to generate both _Stub and _Tie objects to be able to use
        # both iiop and jrmp distribution techniques.
        -->
        <rmic base="${build.classes.bare.dir}"
              debug="${rmic.debug}"
              iiop="false"
              verify="${rmic.verify}"
              compiler="${rmic.compiler}"
              includes="${rmic.includes}"
              classpathref="rmic.classpath"
              sourcebase="${build.source.generated.rmic.dir}"/>

        <rmic base="${build.classes.bare.dir}"
              debug="${rmic.debug}"
              iiop="true"
              verify="${rmic.verify}"
              compiler="${rmic.compiler}"
              includes="${iiop.includes}"
              classpathref="rmic.classpath"
              sourcebase="${build.source.generated.rmic.dir}">
            <compilerarg line="-poa"/>
        </rmic>

        <!--<java2iiop root_dir="${build.source.generated.rmic.dir}" tie="true"-->
                          <!--list_files="true" idl_strict="true"-->
                          <!--gen_included_files="true" servant="true"-->
                          <!--strict="true"-->
                          <!--classpath="${build.classes.bare.dir};${visibroker.lib.dir}/vbdev.jar;${visibroker.lib.dir}/lm.jar;${visibroker.lib.dir}/sanct4.jar;${visibroker.lib.dir}/sanctuary.jar;${visibroker.lib.dir}/vbjdev.jar;${visibroker.lib.dir}/vbjorb.jar;${visibroker.lib.dir}/xmlrt.jar; ${tools.derived.dir}/anttasks.jar;${versant.lib.dir}/jdo.jar;${versant.lib.dir}/jvi7.0.1-jdk1.4.jar;${versant.lib.dir}/vodjdo.jar;${versant.lib.dir}/vodjdo-tools.jar;${lib.cif.cmn.dir}/nms_cif_portal.jar;${lib.cif.dsa.dir}/nms_cif_dsa.jar;${lib.cif.dsa.dir}/tss.jar;${lib.cif.na.dir}/nms_cif_na.jar;${lib.cif.nsa.dir}/nms_cif_nsa.jar;${lib.cif.sm.dir}/nms_cif_sm.jar;">-->
                   <!---->
                   <!--<fileset dir="${build.classes.bare.dir}" includes="${rmic.includes}"/>-->

                   <!--</java2iiop>-->



        <!--<exec executable="cmd" failonerror="true">-->
            <!--<arg line="/c ${java2iiop.exe} -VBJclasspath ${build.classes.bare.dir} -root_dir ${build.source.generated.rmic.dir} -tie -list_files -idl_strict -gen_included_files -servant -strict -warn_all com.xxx.nms.cif.cs.genericmibadapter.remote.MibAdapterCommunicationServer com.xxx.nms.cif.cslib.mibadapter.DeprecatedCsAccess com.xxx.nms.cif.cs.transaction.RemoteTxCoordinator"/>          -->
        <!--</exec>-->

        <!---->
        <javac destdir="${build.classes.bare.dir}"
        debug="${javac.debug}"
        debuglevel="${javac.debug.level}"
        optimize="${javac.optimize}"
        nowarn="${javac.show.warning}"
        deprecation="${javac.deprecation}"
        failonerror="true"
        source="${javac.source}">

        <classpath refid="compile.classpath"/>

        <src>
        <pathelement location="${src.dir}"/>
        <pathelement path="${build.source.generated.idl.dir}"/>
        <pathelement path="${build.source.generated.rmic.dir}"/>
        </src>

        <compilerarg value="${javac.compilerarg}"/>
        </javac>

        <jar jarfile="${build.source.generated.rmic.dir}/rmic.jar"
             basedir="${build.classes.bare.dir}">
            <include name="**/remote/MibAdapterCommunicationServer.class"/>
            <include name="**/genericmibadapter/DeprecatedCsAccessImpl.class"/>
            <include name="**/transaction/RemoteTxCoordinator.class"/>
            <include name="**/interfaces/MibCommunication.class"/>
        </jar>

    </target>

    <target name="rmic-regeneration-required" depends="compile">

        <condition property="rmic.uptodate">
            <and>
                <available file="${build.source.generated.rmic.dir}/com"/>
                <!-- has any rmic code changed? -->
                <uptodate
                        targetfile="${build.source.generated.rmic.dir}/rmic.jar">
                    <srcfiles dir="${build.classes.bare.dir}">
                        <include
                                name="**/remote/MibAdapterCommunicationServer.class"/>
                        <include
                                name="**/genericmibadapter/DeprecatedCsAccessImpl.class"/>
                        <include
                                name="**/transaction/RemoteTxCoordinator.class"/>
                        <include name="**/interfaces/MibCommunication.class"/>
                    </srcfiles>
                </uptodate>
            </and>
        </condition>

    </target>

    <target name="compile" depends="idl2java">

        <echo level="info"
              message="[compile] attempting to compile all source code..."/>
        <!--
        # Compile all cs .java files and store them in a bare directory.
        -->
        <javac destdir="${build.classes.bare.dir}"
               debug="${javac.debug}"
               debuglevel="${javac.debug.level}"
               optimize="${javac.optimize}"
               nowarn="${javac.show.warning}"
               deprecation="${javac.deprecation}"
               failonerror="true"
               source="${javac.source}">

            <classpath refid="compile.classpath"/>

            <src>
                <pathelement location="${src.dir}"/>
                <pathelement path="${build.source.generated.idl.dir}"/>
            </src>

            <compilerarg value="${javac.compilerarg}"/>
        </javac>
    </target>
	
	<target name="internal-compile-unit" depends="idl2java">
		
		<javac destdir="${build.classes.instrumented.unit.bare.dir}"
	           debug="${javac.debug}"
	           debuglevel="${javac.debug.level}"
	           optimize="${javac.optimize}"
	           nowarn="${javac.show.warning}"
	           deprecation="${javac.deprecation}"
	           failonerror="true"
	           source="${javac.source}">

	            <classpath refid="internal.compile.classpath"/>
	            <src>
	                <pathelement location="${src.dir}"/>
	                <pathelement path="${build.source.generated.idl.dir}"/>
	            </src>
	            <compilerarg value="${javac.compilerarg}"/>
	        </javac>
	</target>
	
	<target name="internal-enhance-unit" depends="internal-rmic-unit">
		<copy file="${util.db.dir}/${jdo.package.metadata.file}"
		      todir="${build.classes.instrumented.unit.bare.dir}"/>
		<jdo-enhance project="${jdo.project.file}"
		             outputdir="${build.classes.instrumented.unit.enhanced.dir}"
		             genhyper="false">
			<classpath>
				<pathelement path="${util.db.dir}"/>
				<path refid="internal-enhance-unit.classpath"/>
			</classpath>
		</jdo-enhance>
		<echo level="info" message="Replacing classes with enhanced versions"/>
		<copy todir="${build.classes.instrumented.unit.bare.dir}">
			<fileset dir="${build.classes.instrumented.unit.enhanced.dir}"/>
		</copy>
    </target>
	
	<target name="internal-rmic-unit" depends="internal-compile-unit">
		<!--Run RMIC compiler on main source-->
		<echo level="info" message="Running RMIC compiler on integration test classes"/>
		<rmic base="${build.classes.instrumented.unit.bare.dir}"
		      debug="${rmic.debug}"
		      iiop="false"
		      compiler="${rmic.compiler}"
		      verify="${rmic.verify}"
		      includes="${rmic.includes}"
		      classpathref="internal.rmic.classpath"
		      sourcebase="${build.classes.generated.rmic.dir}"/>

		<rmic base="${build.classes.instrumented.unit.bare.dir}"
		      debug="${rmic.debug}"
		      iiop="true"
		      compiler="${rmic.compiler}"
		      verify="${rmic.verify}"
		      includes="${iiop.includes}"
		      classpathref="internal.rmic.classpath"
		      sourcebase="${build.classes.generated.rmic.dir}">
			<compilerarg line="-poa"/>
		</rmic>
		
		
			
	</target>
	
	<target name="internal-dist-unit" depends="internal-enhance-unit">
		<echo level="info" message="Building Clover instrumented jar for unit testing"/>
		<jar jarfile="${build.dist.internal.dir}/${jar.file.instrumented.unit.name}">
			<fileset dir="${build.classes.instrumented.unit.bare.dir}"/>
		</jar>
	</target>
	
	<target name="internal-rmic-integration-classes" depends="integration-test-compile">
		<!--Run RMIC compiler on test classes-->
		<echo level="info" message="Running RMIC compiler on integration test classes"/>
		<rmic base="${build.classes.tests.integration.dir}"
		      debug="${rmic.debug}"
		      iiop="false"
		      compiler="${rmic.compiler}"
		      verify="${rmic.verify}"
		      includes="${rmic.integration.includes}"
		      classpathref="internal.rmic.integration.classpath"
		      sourcebase="${build.classes.generated.rmic.dir}"/>
		<rmic base="${build.classes.tests.integration.dir}"
		      debug="${rmic.debug}"
		      iiop="true"
			  compiler="${rmic.compiler}"
			  verify="${rmic.verify}"
			  includes="${iiop.integration.includes}"
			  classpathref="internal.rmic.integration.classpath"
			  sourcebase="${build.classes.generated.rmic.dir}">
			<compilerarg line="-poa"/>
		</rmic>
	</target>
	
	<target name="integration-test-compile" depends="instrumentation-integration-test,internal-dist-integration">
		<property name="integration.test.classpath.as.string" refid="integration.test.classpath"/>

		<!--<delete dir="${build.docs.test.integration.dir}" failonerror="false"
		            quiet="true" includeemptydirs="true"/>
		<mkdir dir="${build.docs.test.integration.dir}"/>-->
        <echo level="info"
              message="[integration-test] attempting to compile integration test code..."/>
    	<javac destdir="${build.classes.tests.integration.dir}"
    	       debug="${javac.debug}"
    	       debuglevel="${javac.debug.level}"
    	       optimize="${javac.optimize}"
    	       nowarn="${javac.show.warning}"
    	       deprecation="${javac.deprecation}"
    	       failonerror="true"
    	       fork="true"
    	       source="${javac.source}"
    	       memorymaximumsize="${javac.max.memory}">

	    	<classpath refid="integration.test.compile.classpath"/>
		    <src>
		    	<pathelement location="${test.integrationtest.src.dir}"/>
		    </src>
		    <include name="**/*.java"/>
		    <exclude name="**/PlannedConfigurationManagerIntegrationTest.java"/>
		    <compilerarg value="${javac.compilerarg}"/>
	   	</javac>

	</target>
	
	<target name="unit-test-compile" depends="instrumentation-unit-test,internal-dist-unit">
		<echo level="info"
              message="[unit-test] attempting to compile unit test code..."/>

        <javac destdir="${build.classes.tests.unit.dir}"
        		srcdir="${test.unittest.src.dir}"
               debug="${javac.debug}"	                       
        	   debuglevel="${javac.debug.level}"
               optimize="${javac.optimize}"
               nowarn="${javac.show.warning}"
               deprecation="${javac.deprecation}"
               failonerror="true"
               fork="true"
               source="${javac.source}"
               memorymaximumsize="${javac.max.memory}">

    	    <classpath refid="unit.test.classpath"/>
       		<exclude name="**/XmlExportBaseTst.java"/>
       		<exclude name="**/XmlConfigurationReaderTest.java"/>
       		<exclude name="**/GeneratedPlannedDecoratorAssociationsTest.java"/>
       		<exclude name="**/SimpleQueryImplTest.java"/>
    		<exclude name="**/ValidQueryImplTest.java"/>
		    <compilerarg value="${javac.compilerarg}"/>
        </javac>

	</target>
	
	<target name="instrumentation-integration-test"
			description="Prepares clover to report to integration database">
		<echo level="info"
		      message="[instrument] setting up clover for integration testing..."/>
		<clover-setup-macro clover.db.dir="${build.data.clover.db.integration.dir}"
	    	                clover.db.name="${clover.db.name.integration}"/>
	</target>
		
	<target name="instrumentation-unit-test"
			description="Prepares clover to report to unit database">
		<echo level="info"
			  message="[instrument] setting up clover for unit-testing..."/>
		<clover-setup-macro clover.db.dir="${build.data.clover.db.unit.dir}"
	    	                clover.db.name="${clover.db.name.unit}"/>
	</target>
	
	<target name="internal-compile-integration" depends="idl2java">
		<javac destdir="${build.classes.instrumented.integration.bare.dir}"
	           debug="${javac.debug}"
	           debuglevel="${javac.debug.level}"
	           optimize="${javac.optimize}"
	           nowarn="${javac.show.warning}"
	           deprecation="${javac.deprecation}"
	           failonerror="true"
	           source="${javac.source}">
			<classpath refid="internal.compile.classpath"/>
			<src>
			    <pathelement location="${src.dir}"/>
				<pathelement path="${build.source.generated.idl.dir}"/>
			</src>
			<compilerarg value="${javac.compilerarg}"/>
		</javac>
	</target>
	
	<target name="internal-dist-integration" depends="internal-enhance-integration">
		<echo level="info" message="Building Clover instrumented jar for integration testing"/>
		<jar jarfile="${build.dist.internal.dir}/${jar.file.instrumented.integration.name}">
			<fileset dir="${build.classes.instrumented.integration.bare.dir}"/>
		</jar>
	</target>
	
	<target name="internal-enhance-integration" depends="internal-rmic-integration">
		<copy file="${util.db.dir}/${jdo.package.metadata.file}"
		      todir="${build.classes.instrumented.integration.bare.dir}"/>
		<jdo-enhance project="${jdo.project.file}"
		             outputdir="${build.classes.instrumented.integration.enhanced.dir}"
		             genhyper="false">
			<classpath>
				<pathelement path="${util.db.dir}"/>
				<path refid="internal-enhance-integration.classpath"/>
			</classpath>
		</jdo-enhance>
		<echo level="info" message="Replacing classes with enhanced versions"/>
		<copy todir="${build.classes.instrumented.integration.bare.dir}">
			<fileset dir="${build.classes.instrumented.integration.enhanced.dir}"/>
		</copy>
	</target>
	
	<target name="internal-rmic-integration" depends="internal-compile-integration">
		<!--Run RMIC on main integration-instrumented main classes-->
		<echo level="info" message="Running RMIC compiler on instrumented main classes"/>
		<rmic base="${build.classes.instrumented.integration.bare.dir}"
		      debug="${rmic.debug}"
		      iiop="false"
		      verify="${rmic.verify}"
		      compiler="${rmic.compiler}"
		      includes="${rmic.includes}"
		      classpathref="internal.rmic.integration.classpath"
		      sourcebase="${build.source.generated.rmic.dir}"/>

		<rmic base="${build.classes.instrumented.integration.bare.dir}"
			  debug="${rmic.debug}"
			  iiop="true"
			  verify="${rmic.verify}"
			  compiler="${rmic.compiler}"
			  includes="${iiop.includes}"
			  classpathref="internal.rmic.integration.classpath"
			  sourcebase="${build.source.generated.rmic.dir}">
			<compilerarg line="-poa"/>
		</rmic>
		<!--Run RMIC compiler on test classes-->
		<echo level="info" message="Running RMIC compiler on integration test classes"/>
		<rmic base="${build.classes.tests.integration.dir}"
		      debug="${rmic.debug}"
		      iiop="false"
		      compiler="${rmic.compiler}"
		      verify="${rmic.verify}"
		      includes="${rmic.integration.includes}"
		      classpathref="internal.rmic.integration.classpath"
		      sourcebase="${build.classes.generated.rmic.dir}"/>
		<rmic base="${build.classes.tests.integration.dir}"
		      debug="${rmic.debug}"
		      iiop="true"
			  compiler="${rmic.compiler}"
			  verify="${rmic.verify}"
			  includes="${iiop.integration.includes}"
			  classpathref="internal.rmic.integration.classpath"
			  sourcebase="${build.classes.generated.rmic.dir}">
			<compilerarg line="-poa"/>
		</rmic>
	</target>
	
	
</project>
Comment 1 David Corley CLA 2008-06-26 05:54:57 EDT
This bug is still present in Eclipse 3.4 running on JDK 1.6.0_06 on Win XP SP3.
Any idea when/if it will ever be fixed?
Comment 2 David Corley CLA 2008-06-26 05:58:05 EDT
Created attachment 105869 [details]
build file illustrating the problem

The file above will demonstrate the problem if you add a comment around line 70.
I'm also going to include the imported build file in a separate attachment.
Comment 3 David Corley CLA 2008-06-26 05:59:09 EDT
Created attachment 105871 [details]
imported build file

this file is imported by attachment 105869 [details]. I thought the import may be causing the problem, so I've attached it here.
Comment 4 Darin Swanson CLA 2008-07-01 13:24:11 EDT
Thank you for reporting back David and providing the test files.
As you know no work has been done in this area. Will attempt to investigate in the 3.5 cycle. Contributor help greatly appreciated.
Comment 5 Michael Rennie CLA 2009-05-06 11:46:19 EDT
no time left for 3.5
Comment 6 Eclipse Webmaster CLA 2019-09-06 15:32:35 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.