Thanks for the info Bob. I would say that Axis should NOT need to protect itself against core Java APIs from failing in this manner. Putting this kind of call in a timed thread seems like way too much overkill to me.
It is great that you posted this, as anyone searching the archives can find the info now. -- Tom Jordahl > -----Original Message----- > From: Bob Arthur [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 13, 2005 2:27 PM > To: axis-dev@ws.apache.org > Subject: Axis hanging when entropy expires > > Hi, > > A colleague was recently trying to set up Axis 1.2 RC2 on his > development machine. He got as far as seeing the root page, and having > HappyAxis display OK. Also, he was able to view the list of services, > and download the wsdl from them > > Unfortunately, attempting to call any end-point either from the browser > or from a precompiled stub would simply hang for > 1 minute. > > After much trawling through the source, making use of debug logging, we > tracked the problem down to the SOAPPart constructor, where it called > SessionUtils.generateSessionId(). > > It turns out that for some reason, his debian (woody) linux (2.4.23) > machine was not refreshing its entropy, and had run out. This caused > SecureRandom.nextBytes to hang indefinitely while it tried to seed > itself. Rebooting the machine solved his problem. > > I'm not convinced that this should be raised as a bug in Axis, as it was > clearly caused by the OS. However, I thought I'd let you know, partly > so it's on record for others who may have the same problem, but also in > case anyone thinks there's a case for somehow making the SecureRandom > stuff more defensive. > > For example, in SessionUtils.getRandom, when instantiating the > SecureRandom object, we could immediately call nextBytes in a timed > thread. This would force the object to seed itself or throw an > exception if it times out. > > Many thanks, > > Bob.