You probably have a deadlock due to either the stdout or stderr buffers filling. When this happens the process is suspended until more buffer space is available but since you are not draining either of them the process cannot proceed. This is all explained in the 4 sections of http://www.javaworld.com/jw-12-2000/jw-1229-traps.html. You should ALL of read this and implement ALL the recommendations or you will suffer more grief.
Edit : I'm mystified as to why the OP has not already read the 'traps' article since I posted a reference to it in one of his other threads. I can only assume that he thinks he knows better and that he is immune to the traps. There is no point in me responding any further until I see evidence of the implementation of the 'traps' recommendations.