We have a project that spawns a process (via Runtime.exec) that is intended to live beyond the duration of the build. When Continuum builds this project, the status is always "in progress".
The problem seems to be that the stream pumper that redirects the output from maven hangs on in.readLine(), where in is a reader that wraps the maven process' input stream. Apparently, the process' input stream never closes (even though the jvm running maven exits after the build completes) and the input stream's read method is blocking. If I manually kill the process spawned by maven, then the input stream closes and the build completes. The interesting this is that if I write a simple java class to invoke maven via Runtime.exec (in the same manner that continuum does via plexus' Commandline class) and then call this from the command line, everything works fine. We were also doing this exact same thing in an ant build.xml via CruiseControl, and it worked fine. My hunch is that it has something to do with the wrapper program that is used to invoke continuum. Continuum's process chain looks like this: wrapper->continuum jvm->maven->longrunningprocess CruiseControl's process chain looks like this: cruise control jvm->build loop thread->ant->longrunningprocess Does anyone have any idea why this would be, and, more importantly, how I can work around it?
