public void setCRCData(byte[] CRCData) throws IllegalStateException
   {
      if (!extendedHeaderPresent)
         throw new IllegalStateException("CRC Data may not be set in the ID3v2.3 extended tag header when the extendedHeaderPresent flag is false.");

      if (CRCData == null || CRCData.length == 0)
      {
         this.CRCData   = new byte[0];
         CRCDataPresent = false;
      }
      else if (CRCData.length == ID3v2_3_TAG_HEADER_EXTENDED_HEADER_CRC_DATA_SIZE)
      {
         this.CRCData   = CRCData;
         CRCDataPresent = true;
      }
      else
      {
         throw new IllegalArgumentException("Invalid CRC data, " + CRCData.length + ".  It must be 4 bytes long.");
      }
      dirty = true;
   }