+1  A: 

BufferedReader and InputStreamReader both close the underlying stream when they are closed. You should be fine by closing stdError

Guillaume
+4  A: 

What happens when an exception is thrown while creating the BufferedReader object? The stream managed by the InputStreamReader object is not closed until some time in the future when the garbage collector decides to destroy the object.

You will likely have similar problems if an exception is thrown while creating the InputStreamReader object.

Matthew T. Staebler
You and findbugs are technically correct. However, the only way that that BufferedReader constructor can fail is with an `Error`; e.g. OOME or SOE. An application is unlikely to try recover from one of those, so the leak of the stream is unlikely to matter.
Stephen C