-
Bug
-
Resolution: Done
-
Major
-
EAP_EWP 5.3.0.ER3
-
None
-
NEW
org.jboss.test.scripts.test.RunTestCase#testJBossInBackgroundPlusPidFile() is failing on RHEL4. Server fails to start during the test:
created pidFile: /tmp/jbosspidfile692194462636245213.tmp ShellScriptExecutor: executing shell command -> bash -c ./run.sh -c production -b localhost Process terminated with exit code 0 Exception: message = Server failed to start: couldn't connect to Tomcat. See logs. ============================== system.out ============================== ========================================================================= JBoss Bootstrap Environment JBOSS_HOME: /qa/services/hudson/users-tmp/pkremens/eap/jboss-eap-5.3/jboss-as JAVA: java JAVA_OPTS: -Dprogram.name=run.sh -Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.C lassLoader.allowArraySyntax=true -Djava.net.preferIPv4Stack=true CLASSPATH: /qa/services/hudson/users-tmp/pkremens/eap/jboss-eap-5.3/jboss-as/bin/run.jar ========================================================================= 7568 ============================== system.err ============================== ./run.sh: line 377: java: command not found ======================================================================== waitForServerStop: waiting 40 seconds
Correct fix is to update existing environment properties with LAUNCH_JBOSS_IN_BACKGROUND and JBOSS_PIDFILE, and pass them to server start command.
30,31c30,31
<
<
---
> import java.util.Map;
> import java.util.Arrays;
231c231
< String[] envp = new String[] { "LAUNCH_JBOSS_IN_BACKGROUND=true", "JBOSS_PIDFILE=" + pidFile.getAbsolutePath() };
---
> String[] envp = updateEnvs("LAUNCH_JBOSS_IN_BACKGROUND=true", "JBOSS_PIDFILE=" + pidFile.getAbsolutePath());
286a287,303
>
> /**
> * Update existing environment properties.
> *
> * @param extraEnv Extra environment properties.
> * @return String array of updated environment properties.
> */
> private String[] updateEnvs(String... extraEnv) {
> Map<String, String> envMap = System.getenv();
> int index = extraEnv.length;
> String[] envs = Arrays.copyOf(extraEnv, index + envMap.size());
> for (Map.Entry<String, String> entry : envMap.entrySet()) {
> envs[index++] = entry.getKey() + "=" + entry.getValue();
> }
> return envs;
> }
>