0 Replies Latest reply on Jul 3, 2006 8:03 PM by brado

    Bug in org.jbpm.db.JbpmSchema / jbpm-db build.xml which brea

    brado

      Sorry about the first post...forgot to dilineate the code:

      There is a bug in the functionality of the jbpm-db's build.xml in conjunction with its interaction with the org.jbpm.db.JbpmSchema class. In this class, the conditional test which determines whether scripts should be generated expects exactly 3 arguments:

      ...
       } else if ( (args!=null)
       && (args.length==3)
       && ("scripts".equalsIgnoreCase(args[0])) ) {
       new JbpmSchema(JbpmSessionFactory.createConfiguration()).saveSqlScripts(args[1], args[2]);
      ...
      


      However, in the build.xml, the call which invokes the class sends 5 arguments, and hence, the code will always fail, and scripts will not be generated:

      <target name="db.scripts" description="helper target to generate the database scripts" depends="prepare">
       <delete dir="build/${db}/scripts" />
       <mkdir dir="build/${db}/scripts" />
       <java classname="org.jbpm.db.JbpmSchema" fork="true">
       <classpath refid="classpath.${db}" />
       <arg value="scripts"/>
       <arg value="${basedir}/build/${db}/scripts"/>
       <arg value="${db}"/>
       <arg value="${jbpm.3.location}/src/config.files/hibernate.cfg.xml"/>
       <arg value="${basedir}/${db}/hibernate.properties"/>
       </java>
       </target>
      


      A workaround to make the script generation work is to comment out the last two parameters in the build.xml script, as below:

      <target name="db.scripts" description="helper target to generate the database scripts" depends="prepare">
       <delete dir="build/${db}/scripts" />
       <mkdir dir="build/${db}/scripts" />
       <java classname="org.jbpm.db.JbpmSchema" fork="true">
       <classpath refid="classpath.${db}" />
       <arg value="scripts"/>
       <arg value="${basedir}/build/${db}/scripts"/>
       <arg value="${db}"/>
       <!--
       <arg value="${jbpm.3.location}/src/config.files/hibernate.cfg.xml"/>
       <arg value="${basedir}/${db}/hibernate.properties"/>
       -->
       </java>
       </target>
      

      Cheers,

      Brad