diff --git a/plume-web-jersey/src/main/java/com/coreoz/plume/jersey/security/size/ContentSizeLimitFeature.java b/plume-web-jersey/src/main/java/com/coreoz/plume/jersey/security/size/ContentSizeLimitFeature.java index 2d4c28e..8803620 100644 --- a/plume-web-jersey/src/main/java/com/coreoz/plume/jersey/security/size/ContentSizeLimitFeature.java +++ b/plume-web-jersey/src/main/java/com/coreoz/plume/jersey/security/size/ContentSizeLimitFeature.java @@ -78,7 +78,7 @@ public void filter(ContainerRequestContext context) { public static final class SizeLimitingInputStream extends InputStream { private long length = 0; - private int mark = 0; + private long mark = 0; private final int maxSize; @@ -129,14 +129,13 @@ public void close() throws IOException { @Override public synchronized void mark(final int readlimit) { - mark += readlimit; + mark = length; // Save the current position as the mark delegateInputStream.mark(readlimit); } @Override public synchronized void reset() throws IOException { - this.length = 0; - readAndCheck(mark); + this.length = mark; delegateInputStream.reset(); } diff --git a/plume-web-jersey/src/test/java/com/coreoz/plume/jersey/security/size/TestContentSizeResource.java b/plume-web-jersey/src/test/java/com/coreoz/plume/jersey/security/size/TestContentSizeResource.java index d11559b..44f9d40 100644 --- a/plume-web-jersey/src/test/java/com/coreoz/plume/jersey/security/size/TestContentSizeResource.java +++ b/plume-web-jersey/src/test/java/com/coreoz/plume/jersey/security/size/TestContentSizeResource.java @@ -18,7 +18,7 @@ public Response uploadDefaultLimit(byte[] data) { @GET @Path("/upload-default") - public Response getDefaultLimit(byte[] data) { + public Response getDefaultLimit() { return Response.ok("get successful").build(); } @@ -32,7 +32,7 @@ public Response uploadCustomLimit(byte[] data) { @GET @Path("/upload-custom") @ContentSizeLimit(CUSTOM_MAX_SIZE) - public Response getCustomLimit(byte[] data) { + public Response getCustomLimit() { return Response.ok("get successful").build(); }