[JENKINS-23248]

ChunkcedInputStream.close() wasn't closing the underlying stream
[JENKINS-23248] Making the close method more robust

Unlike the usual close() method, shutdownInput/Output throws an exception for the 2nd invocation.
It's better to silently do nothing instead of dying with IOException.
[FIXED JENKINS-23248] Seeing strange "Transport endpoint is not connected" exception

s.shutdownInput() fails with the following exception, even though s.isInputShutdown() is reporting false:

java.net.SocketException: Transport endpoint is not connected
	at sun.nio.ch.SocketChannelImpl.shutdown(Native Method)
	at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:667)
	at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:378)
	at hudson.remoting.SocketChannelStream$1.close(SocketChannelStream.java:39)
	at sun.nio.ch.ChannelInputStream.close(ChannelInputStream.java:113)
	at javax.crypto.CipherInputStream.close(CipherInputStream.java:296)
	at java.io.BufferedInputStream.close(BufferedInputStream.java:468)
	at hudson.remoting.FlightRecorderInputStream.close(FlightRecorderInputStream.java:112)
	at hudson.remoting.ChunkedInputStream.close(ChunkedInputStream.java:102)
	at hudson.remoting.ChunkedCommandTransport.closeRead(ChunkedCommandTransport.java:50)
	at hudson.remoting.Channel.terminate(Channel.java:795)
	at hudson.remoting.Channel$CloseCommand.execute(Channel.java:951)
	at hudson.remoting.Channel$2.handle(Channel.java:475)
	at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:60)

This bug report may be related: http://bugs.java.com/view_bug.do?bug_id=4516760
If we fail to call s.close(), a socket will leak, so swallowing this exception and have the code execute "s.close()"