Здравствуйте, f95.2, Вы писали:
f> В один прекрасный момент из главного потока (так проще, про вызов из обработчика я еще подумаю) вызывается Proxy.stop(),
f> который ждет, пока Proxy остановит все свои потоки и освободит все занятые ресурсы.
Вот это непонятно. Очевидно, так нельзя делать. В реальной ситуации у тебя закроется источник, т.е. сам сокет, и это прервёт read в InputStream. Значит и в тесте надо закрывать источник, т.е. этот твой pipedHelper. Закрывать сам стрим из другого потока как-то странно, имхо, он вовсе не обязан быть interruptible, т.е. read может сидеть в глубинах сискола и треды, тем более на уровне языка, тут ничего сделать не могут.
https://stackoverflow.com/questions/3843363/thread-interrupt-not-ending-blocking-call-on-input-stream-read