use EntityInputStream to check if stream is empty

Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
diff --git a/media/json-binding/src/main/java/org/glassfish/jersey/jsonb/internal/JsonBindingProvider.java b/media/json-binding/src/main/java/org/glassfish/jersey/jsonb/internal/JsonBindingProvider.java
index c8a1c7e..3ac8031 100644
--- a/media/json-binding/src/main/java/org/glassfish/jersey/jsonb/internal/JsonBindingProvider.java
+++ b/media/json-binding/src/main/java/org/glassfish/jersey/jsonb/internal/JsonBindingProvider.java
@@ -19,7 +19,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.PushbackInputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 
@@ -41,6 +40,7 @@
 
 import org.glassfish.jersey.jsonb.LocalizationMessages;
 import org.glassfish.jersey.message.internal.AbstractMessageReaderWriterProvider;
+import org.glassfish.jersey.message.internal.EntityInputStream;
 
 /**
  * Entity provider (reader and writer) for JSONB.
@@ -72,20 +72,10 @@
                            MediaType mediaType,
                            MultivaluedMap<String, String> httpHeaders,
                            InputStream entityStream) throws IOException, WebApplicationException {
-        if (entityStream.markSupported()) {
-            entityStream.mark(1);
-            if (entityStream.read() == -1) {
-                throw new NoContentException(LocalizationMessages.ERROR_JSONB_EMPTYSTREAM());
-            }
-            entityStream.reset();
-        } else {
-            final PushbackInputStream buffer = new PushbackInputStream(entityStream);
-            final int firstByte = buffer.read();
-            if (firstByte == -1) {
-                throw new NoContentException(LocalizationMessages.ERROR_JSONB_EMPTYSTREAM());
-            }
-            buffer.unread(firstByte);
-            entityStream = buffer;
+        final EntityInputStream entityInputStream =  new EntityInputStream(entityStream);
+        entityStream = entityInputStream;
+        if (entityInputStream.isEmpty()) {
+            throw new NoContentException(LocalizationMessages.ERROR_JSONB_EMPTYSTREAM());
         }
 
         Jsonb jsonb = getJsonb(type);