code: public final JmsDestination getDestinationFromMsgRepresentation(byte[] msgForm) throws JMSException {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "getDestinationFromMsgRepresentation");
      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "msgForm: " + SibTr.formatBytes(msgForm));
  
      JmsDestination newDest = null;
  
      if (msgForm == null) {
        // Error case.
        throw (JMSException)JmsErrorUtils.newThrowable(JMSException.class,
              "INTERNAL_INVALID_VALUE_CWSIA0361",
              new Object[] {"null", "getDestinationFromMsgRepresentation(byte[])"}, tc);
      }
  
      // The first half-byte in the message form indicates the Destination type
      if ((msgForm[0] & TOPIC_TYPE) == TOPIC_TYPE) {
        newDest = new JmsTopicImpl();
      }
      else {
        newDest = new JmsQueueImpl();
      }
  
      // Decode the basic stuff (i.e. DeliveryMode, Priority & TTL) onto the new Destination
      int offset = decodeBasicProperties(newDest, msgForm);
  
      // Now decode the rest of the byte[] onto this new Destination
      decodeOtherProperties(newDest, msgForm, offset);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "getDestinationFromMsgRepresentation", newDest);
      return newDest;
    }
docs: /*
  @see com.ibm.ws.sib.api.jms.MessageDestEncodingUtils#getDestinationFromMsgRepresentation(byte[])
  
  Inflates the efficient byte[] representation from the message into a
  JmsDestination object.
  
  Throws a JMSException if there are problems during the deserialization process, for
  example if the parameter is null.