diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java index 8fc308715..169562b7b 100644 --- a/core/java/src/net/i2p/client/I2PSessionImpl.java +++ b/core/java/src/net/i2p/client/I2PSessionImpl.java @@ -283,7 +283,10 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "Before getDate"); sendMessage(new GetDateMessage()); if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After getDate / begin waiting for a response"); + int waitcount = 0; while (!_dateReceived) { + if (waitcount++ > 30) + throw new IOException("no date handshake"); try { synchronized (_dateReceivedLock) { _dateReceivedLock.wait(1000); @@ -298,7 +301,10 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After producer.connect()"); // wait until we have created a lease set + waitcount = 0; while (_leaseSet == null) { + if (waitcount++ > 5*60) + throw new IOException("no leaseset"); synchronized (_leaseSetWait) { try { _leaseSetWait.wait(1000);