@Test public void shouldFailWhenPacketLengthTooLarge() throws Exception { dataout.writeInt(Integer.MAX_VALUE); dataout.flush(); try { reader.readPacket(); fail("Should have failed to read packet of size " + Integer.MAX_VALUE); } catch (SSHException e) { e.printStackTrace(); // success; indicated packet size was too large } }
public void die(Exception ex) { close.lock(); try { if (!close.isSet()) { log.error("Dying because - {}", ex); final SSHException causeOfDeath = SSHException.chainer.chain(ex); disconnectListener.notifyDisconnect( causeOfDeath.getDisconnectReason(), causeOfDeath.getMessage()); ErrorDeliveryUtil.alertEvents(causeOfDeath, close, serviceAccept); kexer.notifyError(causeOfDeath); getService().notifyError(causeOfDeath); setService(nullService); { // Perhaps can send disconnect packet to server final boolean didNotReceiveDisconnect = msg != Message.DISCONNECT; final boolean gotRequiredInfo = causeOfDeath.getDisconnectReason() != DisconnectReason.UNKNOWN; if (didNotReceiveDisconnect && gotRequiredInfo) sendDisconnect(causeOfDeath.getDisconnectReason(), causeOfDeath.getMessage()); } finishOff(); close.set(); } } finally { close.unlock(); } }
@Override public void notifyError(SSHException error) { log.debug("Notified of {}", error.toString()); }