code: public final ControlMessage createInboundControlMessage(List<DataSlice> slices)
                                                    throws MessageDecodeFailedException {
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())SibTr.entry(tc, "createInboundControlMessage", slices);
  
      ControlMessage message = null;
  
      // Control Messages are small & always arrive in a single slice
      if (slices.size() == 1) {
        message = createInboundControlMessage(slices.get(0).getBytes(), slices.get(0).getOffset(), slices.get(0).getLength());
      }
      // ... so if length is anything other than 1, something has gone disastrously wrong!
      else {
        MessageDecodeFailedException mdfe = new MessageDecodeFailedException("Incorrect number of data slices: " + slices.size());
        FFDCFilter.processException(mdfe, "com.ibm.ws.sib.mfp.impl.ControlMessageFactory.createInboundControlMessage", "793");
        throw mdfe;
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "createInboundControlMessage", message);
      return message;
  
    }
docs: Create a ControlMessage to represent an inbound message.
  (To be called by the Communications component.)
  
  @param slices      The List of DataSlice(s) representing the inbound message
  
  @return The new ControlMessage
  
  @exception MessageDecodeFailedException Thrown if the inbound message could not be decoded