RTC new changes could not be accepted/loaded to the sandbox when build with RTC integrated with Build Forge using JBE adapter
In a RTC-Build Forge (using JBE adapter)integrated environment, when a build request completed successfully, occasionally the build was against old codes, JBE does not accept/load the new changesets.
The build forge log will show:
EXEC A Java Runtime Environment (JRE) or Java Development Kit (JDK)
EXEC must be available in order to run Jbe. No Java virtual machine
EXEC was found after searching the following locations:
EXEC C:\IBM-Tools\jdk6-ibm\jre\bin
EXEC ENDBFBomPlaceholder47203300bomp2
RESULT 0
Because there is no JVM found, JBE will not accept/load any changesets into the sandbox. However, Build Forge JBE adaptor is configured only to run if a return code 0 is generated, with the result 0 code returned, the build request will be placed to BF queue and get executed. This will actually build the old codes again and the result is not what we expect. In this case, we hope to see non-zero return code so that BF will not execute the build, is there any way to achieve that?
One answer
There is a workaround to address this problem.
The JBEAdapter could be updated to capture the text response from the log to fail the step if needed.
ie:
<match pattern="No Java virtual machine">
<setenv name="Failure" value="TRUE" type="temp append\n" />
</match>
With above in the xml source for the Build Forge JBE adapter, it identifies the "No Java virtual machine" as error and stops the build which is what we want.