public void sendRequestToWc ( FramePPHeaders frame ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . entry ( tc , "H2StreamProcessor.sendRequestToWc()" ) ; } if ( null == frame ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "H2StreamProcessor.sendRequestToWc(): Frame is null" ) ; } } else { // Make the headers frame look like it just came in WsByteBuffer buf = frame . buildFrameForWrite ( ) ; TCPReadRequestContext readi = h2HttpInboundLinkWrap . getConnectionContext ( ) . getReadInterface ( ) ; readi . setBuffer ( buf ) ; // Call the synchronized method to handle the frame try { processNextFrame ( frame , Constants . Direction . READ_IN ) ; } catch ( Http2Exception he ) { // ProcessNextFrame() sends a reset/goaway if an error occurs, nothing left but to clean up if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "H2StreamProcessor.sendRequestToWc(): ProcessNextFrame() error, Exception: " + he ) ; } // Free the buffer buf . release ( ) ; } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . exit ( tc , "H2StreamProcessor.sendRequestToWc()" ) ; } }
Send an artificially created H2 request from a push_promise up to the WebContainer