code: public RandomAccessData getData() throws IOException {
          if (this.data == null) {
              // aspectjrt-1.7.4.jar has a different ext bytes length in the
              // local directory to the central directory. We need to re-read
              // here to skip them
              byte[] localHeader = Bytes.get(this.source.getData()
                      .getSubsection(this.localHeaderOffset, LOCAL_FILE_HEADER_SIZE));
              long nameLength = Bytes.littleEndianValue(localHeader, 26, 2);
              long extraLength = Bytes.littleEndianValue(localHeader, 28, 2);
              this.data = this.source.getData().getSubsection(this.localHeaderOffset
                              + LOCAL_FILE_HEADER_SIZE + nameLength + extraLength,
                      getCompressedSize());
          }
          return this.data;
      }
docs: Return the underlying {@link RandomAccessData} for this entry. Generally this
  method should not be called directly and instead data should be accessed via
  {@link JarFile#getInputStream(ZipEntry)}.
  
  @return the data
  @throws IOException if the data cannot be read