Hi guys. I have the following problem.
I have this code inside my web-service's method. This method is not synchronized so it should run normally in parallel.
StringBuffer cmd = new StringBuffer();
cmd.append(muProps.m_qemuExec + " ");
cmd.append("-snapshot" + " ");
cmd.append("-vnc :0" + " ");
cmd.append(scenario.m_image + " ");
if(muProps.m_qemuBios != null) cmd.append("-bios " + muProps.m_qemuBios + " ");
cmd.append("-hdb " + muProps.m_hddDisk + " ");
Process qemu = Runtime.getRuntime().exec(cmd.toString());
qemu.waitFor();
When I invoke the service it works as it should but freezes any other calls until previous waitFor() returns. I don't get it. The waitFor() function is supposed to make the current thread wait for the process to finish. The same happens if I start a new thread inside start this process and join() to the newly created thread with a process inside. Why a new call to the service, which is run in a separate thread starts to wait? It can't be that all invocations of the service are handled by the same thread. O_o I'm using Jboss 4.2.3. (its old but I need to use it)