This patch remedies two problems in j2ssh 0.2.9 discovered when attempting to use OpenSSH "scp" to transfer relatively large (compared to packet or window sizes) files via a local port forwarded by j2ssh.
1) Hang in ConnectionProtocol.sendChannelData. When remote window space is exhausted, sendChannelData waits for "getRemotePacketSize()" window bytes. Unfortunately, the next window adjustment might offer less than that, leaving both parties waiting for the other to do something. The fix is for sendChannelData to accept whatever space is offered. Same fix for sendChannelExtData.
2) Deadlock when sendChannelData waits for window space while another thread is blocked from telling it that space has been made available. Trial and error suggest that avoiding holding monitors while blocking or calling lists of "listeners" treats the symptom.
The patch can be applied by: cd src ; patch -p0 < PATCH
PATCH