Archive for January 11, 2007

Luntbuild Build Release Version Number Issue

We have a continuous integration environment setup for our projects. The build and deployment is automated and the quick integration when a new code is checked in helps us do our system integration testing in the development environment then and there, so that we are not surprised when we further move to QA, Staging and Production environments. We use Luntbuild tool with Maven2 (for J2EE applications) and Rake (for Rails projects). Luntbuild is deployed on a Tomcat 5 server and uses MySQL 5.0 for the database. One of the features of Luntbuild is to handle the release version of the builds automatically. We configure certain variables through Luntbuild that hold the initial release number and use an expression that prefixes the project name followed by the next version number. Luntbuild uses Velocity and OGNL to evaluate expressions at runtime based on configuration and derive at a release name that can include the project name, the next release number, date etc. We had a big struggle getting this setup as Luntbuild would not recognize the expression that we set up. Once we provide an expression and save the configuration the variables field and the version number field displayed junk characters like “[B@37569c”. And the build failed with the following exception.

com.luntsys.luntbuild.utility.ValidationException: Error parsing version string: [B@37569c,
reason: com.luntsys.luntbuild.utility.ValidationException(version string should not contain characters: /\:*?”<>|$,;@)
at com.luntsys.luntbuild.db.Schedule.validateBuildVersion(Schedule.java:1093)

No luck searching the net, there were few who were facing the same problem and posted it on the Luntbuild forums but no one had replied. And not knowing what is causing the problem we had to go with a fixed version number 1 (even major.minor release numbers like 1.0 did not work) so that this problem does not stop us from continuous integration. As we started to dig deeper into Luntbuild simultaneously we caught hold of the root problem. The problem seems to be the way the expression is stored in the database. The field that holds the expression was declared to be a BLOB (binary large object) and when Luntbuild is retrieving it back it is more a garbage the actual expression. So we just made a quick fix by altering the following in the Luntbuild database.

  • Table lb_project - Column Variables - change from blob to VarChar(4098)
  • Table lb_schedule - Column Next_Version - change from blob to VarChar (4098)

After the above alterations Luntbuild worked like magic. I hope someone facing the same issue and stuck can use this solution and get going with the build automation.

Note - If you are new to build automation you can look at my series of posts on Build Automation.

Blink this Luntbuild Build Release Version Number Issue at blinklist.com    Bookmark Luntbuild Build Release Version Number Issue at blogmarks    Bookmark Luntbuild Build Release Version Number Issue at del.icio.us    Digg Luntbuild Build Release Version Number Issue at Digg.com    Fark Luntbuild Build Release Version Number Issue at Fark.com    Bookmark Luntbuild Build Release Version Number Issue at Furl.net    Bookmark Luntbuild Build Release Version Number Issue at NewsVine    Bookmark Luntbuild Build Release Version Number Issue at reddit.com    Bookmark Luntbuild Build Release Version Number Issue at Simpy.com    Bookmark Luntbuild Build Release Version Number Issue at Spurl.net    Bookmark Luntbuild Build Release Version Number Issue with wists    Bookmark Luntbuild Build Release Version Number Issue at YahooMyWeb

Comments      Cosmos


Creative Commons License  This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.