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.










