Should the StreamingOutput\'s OutputStream be closed by the implementing class? 
The java-doc does not give any recommendation
Being unable to find a definitive answer I took a look at jersey's source being the reference implementation. In Jersey the StreamingOutput is processed by a MessageBodyWriter by simply calling streamingOutput.write(os) [1] where os is the OutputStream passed to the MessageBodyWriter. That's good because its javadoc is quite clear that this OutputStream must not be closed. 
To summarize: The OutputStream passed to the StreamingOutput must not be closed. 
[1] https://github.com/jersey/jersey/blob/master/core-common/src/main/java/org/glassfish/jersey/message/internal/StreamingOutputProvider.java