code: public static AbstractMessage makeInternalCopy( Message srcMessage ) throws JMSException
      {
          // Internal type copy
          if (srcMessage instanceof AbstractMessage)
          {
          	AbstractMessage msg = (AbstractMessage)srcMessage;
          	if (msg.isInternalCopy())
          		return msg;
          	
          	AbstractMessage dup = duplicate(srcMessage);
          	dup.setInternalCopy(true);
          	return dup;
          }
          
          AbstractMessage dup = duplicate(srcMessage);
          dup.setInternalCopy(true);
      	return dup;
      }
docs: Create an internal copy of the message if necessary