Section 3.7:
        ▪      onDataAvailable(). The onDataAvailable method is invoked 
on the ReadListener when data is available to read from the incoming 
request stream. The container will invoke the method the first time when 
data is available to read. The container will subsequently invoke the 
onDataAvailable method if and only if isReady method on ServletInputStream
, described below, returns true.
The last word in this has been changed from “false” to “true” which 
changes it from a container perspective to and app perspective.  This 
should be clarified. I suggest: 
The container will subsequently invoke the onDataAvaialble method if and 
only if isReady method on ServletOutputStream, described below, previously 
returned false but will now return true.
Section 3.8:
Unless explicitly excluded, containers must support server push as 
specified in HTTP/2 specification section “Server Push”. Containers must 
support server push if the client is capable of speaking HTTP/2, unless 
the client has explicitly disabled server push by sending a 
SETTINGS_ENABLE_PUSH setting value of 0 (zero).
First sentence appears to suggest that a container can not support HTTP/2 
and still be compliant with Servlet 4.0, but the second sentence implies 
the opposite. Need to clarify this.
Need to add information about
When push is called the container sends the request to the client and 
subsequently sends the content of the request, on a separate stream, if 
the client accepts.
If the push fails how should the failure reported?
Use of streams. Each accepted push is sent on a different stream and a 
different stream from the response for the inbound request. 
To support async servlets should we consider a mechanism for the 
dispatched thread to access an existing push builder. 
Section 5.3 - onWritePossible
void onWritePossible(). When a WriteListener is registered with the 
ServletOutputStream, this method will be invoked by the container the 
first time when it is possible to write data. The container will 
subsequently invoke the onWritePossible method if and only if isReady 
method on ServletOutputStream, described below, returns true.
The last word in this has been changed from “false” to “true” which 
changes it from a container perspective to and app perspective.  This 
should be clarified. I suggest: 
The container will subsequently invoke the onWritePossible method if and 
only if isReady method on ServletOutputStream, described below, previously 
returned false but will now return true.
Section 5.3 - setWriteListener()
“It is illegal to switch to the traditional blocking IO at that point.”
Add a clarification to say how such a illegal switch is reported. 
IOException from OutputStream write methods?
Thank you,
Martin Mulholland.
WebSphere Application Server Web Tier Architect 
email: mmulholl_at_us.ibm.com
IBM RTP, PO BOX 12195, 503/C227,
3039 Cornwallis Rd, RTP, NC 27709-2195
 t/l 444-4319, external (919)-254-4319