code: 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);
              }
          }
      }
docs: Keep track of the highest-valued local and remote stream IDs for this connection
  
  @param proposedHighestStreamId
  @throws ProtocolException if the proposed stream ID is lower than a previous streams'