prefer to use standard netty bytebuf.toString since now it use cache under the hood
[idea/community.git] / platform / platform-impl / src / org / jetbrains / io / MessageDecoder.java
index e4a5fb987cb15eeaa77824ffdb20ed3d81e963f6..dca61410e12ec36de67772ef394cb1edc432577b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2015 JetBrains s.r.o.
+ * Copyright 2000-2016 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.Nullable;
 
 import java.io.IOException;
 import java.nio.CharBuffer;
+import java.nio.charset.StandardCharsets;
 
 public abstract class MessageDecoder extends Decoder {
   protected int contentLength;
@@ -48,18 +49,21 @@ public abstract class MessageDecoder extends Decoder {
         chunkedContent = CharBuffer.allocate(contentLength);
       }
 
-      ChannelBufferToString.readIntoCharBuffer(input, readableBytes, chunkedContent);
+      ChannelBufferToStringKt.readIntoCharBuffer(input, readableBytes, chunkedContent);
       consumedContentByteCount += readableBytes;
       input.release();
       return null;
     }
     else {
       CharBuffer charBuffer = chunkedContent;
-      if (charBuffer != null) {
-        chunkedContent = null;
-        consumedContentByteCount = 0;
+      if (charBuffer == null) {
+        return input.toString(input.readerIndex(), required, StandardCharsets.UTF_8);
       }
-      return new CharSequenceBackedByChars(ChannelBufferToString.readIntoCharBuffer(input, required, charBuffer));
+
+      chunkedContent = null;
+      consumedContentByteCount = 0;
+      ChannelBufferToStringKt.readIntoCharBuffer(input, required, charBuffer);
+      return new CharSequenceBackedByChars(charBuffer);
     }
   }