mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noël Rouvignac
29.03.2015 7a0b4fed1cfa0934091355444cc4bc2fb48997ac
opendj-server-legacy/src/main/java/org/opends/server/api/CompressedSchema.java
@@ -89,9 +89,9 @@
      throws DirectoryException
  {
    // First decode the encoded attribute description id.
    final int length = reader.getBERLength();
    final int length = reader.readBERLength();
    final byte[] idBytes = new byte[length];
    reader.get(idBytes);
    reader.readBytes(idBytes);
    final int id = decodeId(idBytes);
    // Look up the attribute description.
@@ -114,14 +114,14 @@
    }
    // Determine the number of values for the attribute.
    final int numValues = reader.getBERLength();
    final int numValues = reader.readBERLength();
    // For the common case of a single value with no options, generate
    // less garbage.
    if (numValues == 1 && options.isEmpty())
    {
      final int valueLength = reader.getBERLength();
      final ByteSequence valueBytes = reader.getByteSequence(valueLength);
      final int valueLength = reader.readBERLength();
      final ByteSequence valueBytes = reader.readByteSequence(valueLength);
      return Attributes.create(attrType, valueBytes.toByteString());
    }
    else
@@ -131,8 +131,8 @@
      builder.setOptions(options);
      for (int i = 0; i < numValues; i++)
      {
        final int valueLength = reader.getBERLength();
        final ByteSequence valueBytes = reader.getByteSequence(valueLength);
        final int valueLength = reader.readBERLength();
        final ByteSequence valueBytes = reader.readByteSequence(valueLength);
        builder.add(valueBytes.toByteString());
      }
      return builder.toAttribute();
@@ -155,9 +155,9 @@
      final ByteSequenceReader reader) throws DirectoryException
  {
    // First decode the encoded object class id.
    final int length = reader.getBERLength();
    final int length = reader.readBERLength();
    final byte[] idBytes = new byte[length];
    reader.get(idBytes);
    reader.readBytes(idBytes);
    final int id = decodeId(idBytes);
    // Look up the object classes.
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/DN2URI.java
@@ -154,10 +154,10 @@
  private Pair<String, DN> decodeURIAndDN(byte[] data) throws DirectoryException {
    try {
      final ByteSequenceReader reader = ByteString.valueOf(data).asReader();
      final String labeledURI = reader.getString(getNextStringLength(reader));
      final String labeledURI = reader.readStringUtf8(getNextStringLength(reader));
      // skip the string separator
      reader.skip(1);
      final DN dn = DN.valueOf(reader.getString(reader.remaining()));
      final DN dn = DN.valueOf(reader.readStringUtf8(reader.remaining()));
      return Pair.of(labeledURI, dn);
    }
    catch (Exception e) {
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
@@ -159,12 +159,12 @@
  private DN decodeDN(ByteSequenceReader r, boolean decodeDN)
  {
    final int dnLength = r.getInt();
    final int dnLength = r.readInt();
    if (decodeDN)
    {
      try
      {
        return DN.valueOf(r.getString(dnLength));
        return DN.valueOf(r.readStringUtf8(dnLength));
      }
      catch (DirectoryException e)
      {
@@ -178,12 +178,12 @@
  private List<String> decodeUris(ByteSequenceReader r)
  {
    final int nbElems = r.getInt();
    final int nbElems = r.readInt();
    List<String> results = new ArrayList<>(nbElems);
    for (int i = 0; i < nbElems; i++)
    {
      final int stringLength = r.getInt();
      results.add(r.getString(stringLength));
      final int stringLength = r.readInt();
      results.add(r.readStringUtf8(stringLength));
    }
    return results;
  }
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryIDSet.java
@@ -466,7 +466,7 @@
      final long ids[] = new long[nbEntriesToDecode];
      for(int i = 0 ; i < nbEntriesToDecode ; i++) {
        ids[i] = reader.getLong();
        ids[i] = reader.readLong();
      }
      return ids;
    }
@@ -517,7 +517,7 @@
        return newUndefinedSetWithKey(key);
      }
      final ByteSequenceReader reader = value.asReader();
      return newDefinedSet(decodeRaw(reader, (int) reader.getCompactUnsigned()));
      return newDefinedSet(decodeRaw(reader, (int) reader.readCompactUnsigned()));
    }
    private static ByteStringBuilder append(ByteStringBuilder builder, EntryIDSet idSet)
@@ -557,9 +557,9 @@
        return EMPTY_LONG_ARRAY;
      }
      final long ids[] = new long[nbEntriesToDecode];
      ids[0] = reader.getCompactUnsigned();
      ids[0] = reader.readCompactUnsigned();
      for(int i = 1 ; i < nbEntriesToDecode ; i++) {
        ids[i] = ids[i-1] + reader.getCompactUnsigned();
        ids[i] = ids[i-1] + reader.readCompactUnsigned();
      }
      return ids;
    }
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Count.java
@@ -66,7 +66,7 @@
          @Override
          public EntryID apply(ByteString value) throws Exception
          {
            return new EntryID(value.asReader().getCompactUnsigned());
            return new EntryID(value.asReader().readCompactUnsigned());
          }
        }, new CursorTransformer.ValueTransformer<ByteString, ByteString, Long, NeverThrowsException>()
        {
@@ -114,7 +114,7 @@
      @Override
      public ByteSequence computeNewValue(ByteSequence oldValue)
      {
        final long currentValue = oldValue == null ? 0 : oldValue.asReader().getLong();
        final long currentValue = oldValue == null ? 0 : oldValue.asReader().readLong();
        final long newValue = currentValue + delta;
        return newValue == 0 ? null : toValue(newValue);
      }
@@ -164,8 +164,8 @@
  public String keyToString(ByteString key)
  {
    ByteSequenceReader keyReader = key.asReader();
    long keyID = keyReader.getCompactUnsigned();
    long shardBucket = keyReader.getCompactUnsigned();
    long keyID = keyReader.readCompactUnsigned();
    long shardBucket = keyReader.readCompactUnsigned();
    return (keyID == TOTAL_COUNT_ENTRY_ID.longValue() ? "Total Children Count" : keyID) + "#" + shardBucket;
  }
@@ -235,7 +235,7 @@
      if (cursor.positionToKeyOrNext(encodedEntryID)) {
        // Iterate over and remove all the thread local shards
        while (cursor.isDefined() && cursor.getKey().startsWith(encodedEntryID)) {
          counterValue += cursor.getValue().asReader().getLong();
          counterValue += cursor.getValue().asReader().readLong();
          cursor.delete();
          cursor.next();
        }
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
@@ -714,7 +714,7 @@
  static long decodeEntryIDFromVLVKey(final ByteString key)
  {
    final int sizeOfEncodedEntryID = 8;
    return key.subSequence(key.length() - sizeOfEncodedEntryID, key.length()).asReader().getLong();
    return key.subSequence(key.length() - sizeOfEncodedEntryID, key.length()).asReader().readLong();
  }
  private void logSearchKeyResult(final ByteString key)
opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalLDAPInputStream.java
@@ -299,7 +299,7 @@
      }
    }
    return 0xFF & messageReader.get();
    return 0xFF & messageReader.readByte();
  }
@@ -382,7 +382,7 @@
    }
    int actualLen = Math.min(len, messageReader.remaining());
    messageReader.get(b, off, actualLen);
    messageReader.readBytes(b, off, actualLen);
    return actualLen;
  }
opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalLDAPOutputStream.java
@@ -115,12 +115,12 @@
      if(saveBufferReader.remaining() > 0)
      {
        // Try saved buffer first
        return 0xFF & saveBufferReader.get();
        return 0xFF & saveBufferReader.readByte();
      }
      if(byteBuffer.remaining() > 0)
      {
        // Must still be on the channel buffer
        return 0xFF & byteBuffer.get();
        return 0xFF & byteBuffer.readByte();
      }
      return -1;
@@ -143,7 +143,7 @@
      {
        // Copy out of the last saved buffer first
        len = Math.min(saveBufferReader.remaining(), length);
        saveBufferReader.get(value, off, len);
        saveBufferReader.readBytes(value, off, len);
        bytesCopied += len;
      }
      if(bytesCopied < length && byteBuffer.remaining() > 0)
@@ -151,7 +151,7 @@
        // Copy out of the channel buffer if we haven't got
        // everything we needed.
        len = Math.min(byteBuffer.remaining(), length - bytesCopied);
        byteBuffer.get(value, off + bytesCopied, len);
        byteBuffer.readBytes(value, off + bytesCopied, len);
        bytesCopied += len;
      }
      return bytesCopied;
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/ASN1ByteChannelReader.java
@@ -138,7 +138,7 @@
      if(saveBufferReader.remaining() > 0)
      {
        // Try saved buffer first
        return 0xFF & saveBufferReader.get();
        return 0xFF & saveBufferReader.readByte();
      }
      if(byteBuffer.remaining() > 0)
      {
@@ -225,7 +225,7 @@
      {
        // Copy out of the last saved buffer first
        getLen = Math.min(saveBufferReader.remaining(), len);
        saveBufferReader.get(b, off, getLen);
        saveBufferReader.readBytes(b, off, getLen);
        bytesCopied += getLen;
      }
      if(bytesCopied < len && byteBuffer.remaining() > 0)
opendj-server-legacy/src/main/java/org/opends/server/replication/common/CSN.java
@@ -100,9 +100,9 @@
  public static CSN valueOf(ByteSequence bs)
  {
    ByteSequenceReader reader = bs.asReader();
    long timeStamp = reader.getLong();
    int serverId = reader.getShort() & 0xffff;
    int seqnum = reader.getInt();
    long timeStamp = reader.readLong();
    int serverId = reader.readShort() & 0xffff;
    int seqnum = reader.readInt();
    return new CSN(timeStamp, seqnum, serverId);
  }
opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ByteArrayScanner.java
@@ -20,7 +20,7 @@
 *
 * CDDL HEADER END
 *
 *      Copyright 2014 ForgeRock AS
 *      Copyright 2014-2015 ForgeRock AS
 */
package org.opends.server.replication.protocol;
@@ -87,7 +87,7 @@
  {
    try
    {
      return bytes.get();
      return bytes.readByte();
    }
    catch (IndexOutOfBoundsException e)
    {
@@ -106,7 +106,7 @@
  {
    try
    {
      return bytes.getShort();
      return bytes.readShort();
    }
    catch (IndexOutOfBoundsException e)
    {
@@ -125,7 +125,7 @@
  {
    try
    {
      return bytes.getInt();
      return bytes.readInt();
    }
    catch (IndexOutOfBoundsException e)
    {
@@ -144,7 +144,7 @@
  {
    try
    {
      return bytes.getLong();
      return bytes.readLong();
    }
    catch (IndexOutOfBoundsException e)
    {
@@ -190,7 +190,7 @@
      final int offset = findZeroSeparator();
      if (offset > 0)
      {
        final String s = bytes.getString(offset);
        final String s = bytes.readStringUtf8(offset);
        skipZeroSeparator();
        return s;
      }
@@ -254,7 +254,7 @@
  {
    try
    {
      return CSN.valueOf(bytes.getByteSequence(CSN.BYTE_ENCODING_LENGTH));
      return CSN.valueOf(bytes.readByteSequence(CSN.BYTE_ENCODING_LENGTH));
    }
    catch (IndexOutOfBoundsException e)
    {
opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/StartSessionMsg.java
@@ -204,7 +204,7 @@
    ByteSequenceReader reader = ByteString.wrap(in).asReader();
    try
    {
      if (reader.get() != MSG_TYPE_START_SESSION)
      if (reader.readByte() != MSG_TYPE_START_SESSION)
      {
        throw new DataFormatException("input is not a valid "
            + getClass().getCanonicalName());
@@ -216,10 +216,10 @@
      assuredMode=AssuredMode.valueOf((asn1Reader.readOctetString().byteAt(0)));
      safeDataLevel = asn1Reader.readOctetString().byteAt(0);
      */
      status = ServerStatus.valueOf(reader.get());
      assuredFlag = reader.get() == 1;
      assuredMode = AssuredMode.valueOf(reader.get());
      safeDataLevel = reader.get();
      status = ServerStatus.valueOf(reader.readByte());
      assuredFlag = reader.readByte() == 1;
      assuredMode = AssuredMode.valueOf(reader.readByte());
      safeDataLevel = reader.readByte();
      ASN1Reader asn1Reader = ASN1.getReader(reader);
opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/FileChangeNumberIndexDB.java
@@ -423,10 +423,10 @@
      try
      {
        ByteSequenceReader reader = data.asReader();
        final long changeNumber = reader.getLong();
        final DN baseDN = DN.valueOf(reader.getString(getNextStringLength(reader)));
        final long changeNumber = reader.readLong();
        final DN baseDN = DN.valueOf(reader.readStringUtf8(getNextStringLength(reader)));
        reader.skip(1);
        final CSN csn = CSN.valueOf(reader.getByteString(reader.remaining()));
        final CSN csn = CSN.valueOf(reader.readByteString(reader.remaining()));
        return Record.from(changeNumber, new ChangeNumberIndexRecord(changeNumber, baseDN, csn));
      }
opendj-server-legacy/src/main/java/org/opends/server/types/DN.java
@@ -576,7 +576,7 @@
    // rid of any leading spaces.
    ByteSequenceReader dnReader = dnString.asReader();
    b = ' ';
    while (dnReader.remaining() > 0 && (b = dnReader.get()) == ' ')
    while (dnReader.remaining() > 0 && (b = dnReader.readByte()) == ' ')
    {}
    if(b == ' ')
@@ -611,7 +611,7 @@
      // Skip over any spaces between the attribute name and its value.
      b = ' ';
      while (dnReader.remaining() > 0 && (b = dnReader.get()) == ' ')
      while (dnReader.remaining() > 0 && (b = dnReader.readByte()) == ' ')
      {}
@@ -635,7 +635,7 @@
      // Skip over any spaces after the equal sign.
      b = ' ';
      while (dnReader.remaining() > 0 && (b = dnReader.get()) == ' ')
      while (dnReader.remaining() > 0 && (b = dnReader.readByte()) == ' ')
      {}
@@ -662,7 +662,7 @@
      // Skip over any spaces that might be after the attribute value.
      b = ' ';
      while (dnReader.remaining() > 0 && (b = dnReader.get()) == ' ')
      while (dnReader.remaining() > 0 && (b = dnReader.readByte()) == ' ')
      {}
@@ -703,7 +703,7 @@
        // before the next attribute name.
        b = ' ';
        while (dnReader.remaining() > 0 &&
            (b = dnReader.get()) == ' ')
            (b = dnReader.readByte()) == ' ')
        {}
        dnReader.skip(-1);
@@ -723,7 +723,7 @@
        // Skip over any spaces between the attribute name and its value.
        b = ' ';
        while (dnReader.remaining() > 0 &&
            (b = dnReader.get()) == ' ')
            (b = dnReader.readByte()) == ' ')
        {}
        if(b == ' ')
@@ -748,7 +748,7 @@
        // Skip over any spaces after the equal sign.
        b = ' ';
        while (dnReader.remaining() > 0 &&
            (b = dnReader.get()) == ' ')
            (b = dnReader.readByte()) == ' ')
        {}
@@ -777,7 +777,7 @@
        // Skip over any spaces that might be after the attribute value.
        b = ' ';
        while (dnReader.remaining() > 0 &&
            (b = dnReader.get()) == ' ')
            (b = dnReader.readByte()) == ' ')
        {}
@@ -1166,7 +1166,7 @@
          throws DirectoryException
  {
    // Skip over any leading spaces.
    while(dnBytes.remaining() > 0 && dnBytes.get() == ' ')
    while(dnBytes.remaining() > 0 && dnBytes.readByte() == ' ')
    {}
    if(dnBytes.remaining() <= 0)
@@ -1198,7 +1198,7 @@
      // To make the switch more efficient, we'll include all ASCII
      // characters in the range of allowed values and then reject the
      // ones that aren't allowed.
      byte b = dnBytes.get();
      byte b = dnBytes.readByte();
      switch (b)
      {
        case ' ':
@@ -1394,8 +1394,7 @@
      {
        int nameEndPos = dnBytes.position() - 1;
        dnBytes.position(nameStartPos);
        nameBytes =
            dnBytes.getByteString(nameEndPos - nameStartPos);
        nameBytes = dnBytes.readByteString(nameEndPos - nameStartPos);
        break;
      }
    }
@@ -1925,7 +1924,7 @@
    // Look at the first character.  If it is an octothorpe (#), then
    // that means that the value should be a hex string.
    byte b = dnBytes.get();
    byte b = dnBytes.readByte();
    if (b == '#')
    {
      // The first two characters must be hex characters.
@@ -1938,7 +1937,7 @@
      for (int i=0; i < 2; i++)
      {
        b = dnBytes.get();
        b = dnBytes.readByte();
        if (isHexDigit(b))
        {
          hexString.append((char) b);
@@ -1956,14 +1955,14 @@
      // end of the DN, a comma or semicolon, a plus sign, or a space.
      while (dnBytes.remaining() > 0)
      {
        b = dnBytes.get();
        b = dnBytes.readByte();
        if (isHexDigit(b))
        {
          hexString.append((char) b);
          if (dnBytes.remaining() > 0)
          {
            b = dnBytes.get();
            b = dnBytes.readByte();
            if (isHexDigit(b))
            {
              hexString.append((char) b);
@@ -2028,7 +2027,7 @@
              ERR_ATTR_SYNTAX_DN_UNMATCHED_QUOTE.get(dnBytes));
        }
        if (dnBytes.get() == '"')
        if (dnBytes.readByte() == '"')
        {
          // This is the end of the value.
          break;
@@ -2037,7 +2036,7 @@
      int valueEndPos = dnBytes.position();
      dnBytes.position(valueStartPos);
      ByteString bs = dnBytes.getByteString(valueEndPos - valueStartPos - 1);
      ByteString bs = dnBytes.readByteString(valueEndPos - valueStartPos - 1);
      dnBytes.skip(1);
      return bs;
    }
@@ -2066,7 +2065,7 @@
          break;
        }
        b = dnBytes.get();
        b = dnBytes.readByte();
        if (b == ',' || b == ';' || b == '+')
        {
          dnBytes.skip(-1);
@@ -2082,7 +2081,7 @@
      // Convert the byte buffer to an array.
      dnBytes.position(valueStartPos);
      return dnBytes.getByteString(valueEndPos - valueStartPos);
      return dnBytes.readByteString(valueEndPos - valueStartPos);
    }
  }
opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
@@ -3478,7 +3478,7 @@
    {
      // The first byte must be the entry version.  If it's not one
      // we recognize, then that's an error.
      Byte version = entryBuffer.get();
      Byte version = entryBuffer.readByte();
      if (version != 0x03 && version != 0x02 && version != 0x01)
      {
        LocalizableMessage message = ERR_ENTRY_DECODE_UNRECOGNIZED_VERSION.get(
@@ -3492,7 +3492,7 @@
      if(version != 0x01)
      {
        // Next is the length of the encoded configuration.
        int configLength = entryBuffer.getBERLength();
        int configLength = entryBuffer.readBERLength();
        // Next is the encoded configuration itself.
        config =
@@ -3515,11 +3515,11 @@
      {
        // Next is the length of the DN.  It may be a single byte or
        // multiple bytes.
        int dnLength = entryBuffer.getBERLength();
        int dnLength = entryBuffer.readBERLength();
        // Next is the DN itself.
        ByteSequence dnBytes = entryBuffer.getByteSequence(dnLength);
        ByteSequence dnBytes = entryBuffer.readByteSequence(dnLength);
        dn = DN.decode(dnBytes.toByteString());
      }
@@ -3589,7 +3589,7 @@
      {
        // Next is the length of the object classes. It may be a
        // single byte or multiple bytes.
        int ocLength = entryBuffer.getBERLength();
        int ocLength = entryBuffer.readBERLength();
        // The set of object classes will be encoded as a single
        // string with the object class names separated by zeros.
@@ -3597,7 +3597,7 @@
        int startPos = entryBuffer.position();
        for (int i=0; i < ocLength; i++)
        {
          if (entryBuffer.get() == 0x00)
          if (entryBuffer.readByte() == 0x00)
          {
            int endPos = entryBuffer.position() - 1;
            addObjectClass(objectClasses, entryBuffer, startPos, endPos);
@@ -3612,12 +3612,12 @@
      else
      {
        // Next is the number of zero terminated object classes.
        int numOC = entryBuffer.getBERLength();
        int numOC = entryBuffer.readBERLength();
        objectClasses = new LinkedHashMap<>(numOC);
        for(int i = 0; i < numOC; i++)
        {
          int startPos = entryBuffer.position();
          while(entryBuffer.get() != 0x00)
          while(entryBuffer.readByte() != 0x00)
          {}
          int endPos = entryBuffer.position() - 1;
          addObjectClass(objectClasses, entryBuffer, startPos, endPos);
@@ -3645,7 +3645,7 @@
      ByteSequenceReader entryBuffer, int startPos, int endPos)
  {
    entryBuffer.position(startPos);
    final String ocName = entryBuffer.getString(endPos - startPos);
    final String ocName = entryBuffer.readStringUtf8(endPos - startPos);
    final String lowerName = toLowerCase(ocName);
    final ObjectClass oc = DirectoryServer.getObjectClass(lowerName, true);
    objectClasses.put(oc, ocName);
@@ -3670,7 +3670,7 @@
  {
    // Next is the total number of attributes.  It may be a
    // single byte or multiple bytes.
    int attrs = entryBuffer.getBERLength();
    int attrs = entryBuffer.readBERLength();
    // Now, we should iterate through the attributes and decode each one.
@@ -3682,7 +3682,7 @@
        if(ver < 0x03)
        {
          // Version 2 includes a total attribute length
          entryBuffer.getBERLength();
          entryBuffer.readBERLength();
        }
        // Decode the attribute.
        Attribute a = config.getCompressedSchema().decodeAttribute(entryBuffer);
@@ -3705,11 +3705,11 @@
        // First, we have the zero-terminated attribute name.
        startPos = entryBuffer.position();
        while (entryBuffer.get() != 0x00)
        while (entryBuffer.readByte() != 0x00)
        {}
        endPos = entryBuffer.position()-1;
        entryBuffer.position(startPos);
        String name = entryBuffer.getString(endPos - startPos);
        String name = entryBuffer.readStringUtf8(endPos - startPos);
        entryBuffer.skip(1);
        AttributeType attributeType;
@@ -3746,15 +3746,15 @@
        // Next, we have the number of values.
        int numValues = entryBuffer.getBERLength();
        int numValues = entryBuffer.readBERLength();
        // Next, we have the sequence of length-value pairs.
        for (int j=0; j < numValues; j++)
        {
          int valueLength = entryBuffer.getBERLength();
          int valueLength = entryBuffer.readBERLength();
          ByteString valueBytes =
              entryBuffer.getByteSequence(valueLength).toByteString();
              entryBuffer.readByteSequence(valueLength).toByteString();
          builder.add(valueBytes);
        }
opendj-server-legacy/src/main/java/org/opends/server/types/EntryEncodeConfig.java
@@ -299,7 +299,7 @@
                     message);
    }
    byte b = buffer.get();
    byte b = buffer.readByte();
    boolean excludeDN = is(b, ENCODE_FLAG_EXCLUDE_DN);
    boolean compressAttrDescriptions = is(b, ENCODE_FLAG_COMPRESS_ADS);
    boolean compressObjectClassSets = is(b, ENCODE_FLAG_COMPRESS_OCS);
opendj-server-legacy/src/test/java/org/opends/server/replication/server/changelog/file/BlockLogReaderWriterTest.java
@@ -498,8 +498,8 @@
    public Record<Integer, Integer> decodeRecord(final ByteString data) throws DecodingException
    {
      ByteSequenceReader reader = data.asReader();
      int key = reader.getInt();
      int value = reader.getInt();
      int key = reader.readInt();
      int value = reader.readInt();
      return Record.from(key, value);
    }
opendj-server-legacy/src/test/java/org/opends/server/replication/server/changelog/file/LogFileTest.java
@@ -319,9 +319,9 @@
    public Record<String, String> decodeRecord(final ByteString data) throws DecodingException
    {
      ByteSequenceReader reader = data.asReader();
      String key = reader.getString(getNextStringLength(reader));
      String key = reader.readStringUtf8(getNextStringLength(reader));
      reader.skip(1);
      String value = reader.getString(getNextStringLength(reader));
      String value = reader.readStringUtf8(getNextStringLength(reader));
      return key.isEmpty() || value.isEmpty() ? null : Record.from(key, value);
    }