protected void updateHighestStreamId ( int proposedHighestStreamId ) throws ProtocolException { if ( ( proposedHighestStreamId & 1 ) == 0 ) { // even number, server-initialized stream if ( proposedHighestStreamId > highestLocalStreamId ) { highestLocalStreamId = proposedHighestStreamId ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "highestLocalStreamId set to stream-id: " + proposedHighestStreamId ) ; } } else if ( proposedHighestStreamId < highestLocalStreamId ) { throw new ProtocolException ( "received a new stream with a lower ID than previous; " + "current stream-id: " + proposedHighestStreamId + " highest stream-id: " + highestLocalStreamId ) ; } } else { if ( proposedHighestStreamId > highestClientStreamId ) { highestClientStreamId = proposedHighestStreamId ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "highestClientStreamId set to stream-id: " + proposedHighestStreamId ) ; } } else if ( proposedHighestStreamId < highestClientStreamId ) { throw new ProtocolException ( "received a new stream with a lower ID than previous; " + "current stream-id: " + proposedHighestStreamId + " highest stream-id: " + highestClientStreamId ) ; } } }
Keep track of the highest - valued local and remote stream IDs for this connection