docs: public final ControlMessage createInboundControlMessage(byte rawMessage[], int offset, int length)
                                                    throws MessageDecodeFailedException {
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())SibTr.entry(tc, "createInboundControlMessage", new Object[]{ rawMessage, Integer.valueOf(offset), Integer.valueOf(length)});
  
      JsMsgObject jmo = new JsMsgObject(ControlAccess.schema, rawMessage, offset, length);
  
      /* We need to return an instance of the appropriate specialisation.       */
      ControlMessage message = makeInboundControlMessage(jmo, ((Byte)jmo.getField(ControlAccess.SUBTYPE)).intValue());
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "createInboundControlMessage", message);
      return message;
  
    }