/**
  * Sets the central directory part of extra fields.
  *
  * @param b an array of bytes to be parsed into extra fields
  */
 public void setCentralDirectoryExtra(byte[] b) {
   try {
     ZipExtraField[] central =
         ExtraFieldUtils.parse(b, false, ExtraFieldUtils.UnparseableExtraField.READ);
     mergeExtraFields(central, false);
   } catch (ZipException e) {
     throw new RuntimeException(e.getMessage(), e);
   }
 }
 /**
  * Parses the given bytes as extra field data and consumes any unparseable data as an {@link
  * UnparseableExtraFieldData} instance.
  *
  * @param extra an array of bytes to be parsed into extra fields
  * @throws RuntimeException if the bytes cannot be parsed
  * @throws RuntimeException on error
  */
 @Override
 public void setExtra(byte[] extra) throws RuntimeException {
   try {
     ZipExtraField[] local =
         ExtraFieldUtils.parse(extra, true, ExtraFieldUtils.UnparseableExtraField.READ);
     mergeExtraFields(local, true);
   } catch (ZipException e) {
     // actually this is not possible as of Commons Compress 1.1
     throw new RuntimeException(
         "Error parsing extra fields for entry: " + getName() + " - " + e.getMessage(), e);
   }
 }