diff --git a/pom.xml b/pom.xml index a705553..97ff6fb 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 io.sinistral proteus-core - 0.1.6-SNAPSHOT + 0.1.7-SNAPSHOT proteus core Proteus is an extremely light, fast, and flexible Java REST API framework built atop Undertow. http://github.com/noboomu/proteus diff --git a/src/main/java/io/sinistral/proteus/server/ServerRequest.java b/src/main/java/io/sinistral/proteus/server/ServerRequest.java index 4bedd3f..6d888cb 100644 --- a/src/main/java/io/sinistral/proteus/server/ServerRequest.java +++ b/src/main/java/io/sinistral/proteus/server/ServerRequest.java @@ -11,6 +11,7 @@ import java.util.Map; import java.util.concurrent.Executor; +import org.xnio.Pool; import org.xnio.Pooled; import org.xnio.channels.StreamSourceChannel; @@ -142,7 +143,8 @@ private void extractBytes() throws IOException { this.exchange.startBlocking(); - + + try (Pooled pooled = exchange.getConnection().getBufferPool().allocate()){ ByteBuffer buf = pooled.getResource(); @@ -159,8 +161,13 @@ private void extractBytes() throws IOException int pos = buf.limit(); ByteBuffer buffer = ByteBuffer.allocate(pos); + + ByteBuffer src = buf.duplicate(); + src.position(0); + src.limit(0 + pos); + buffer.put(src); - System.arraycopy(buf.array(), 0, buffer.array(), 0, pos); + //System.arraycopy(buf.array(), 0, buffer.array(), 0, pos); exchange.putAttachment(BYTE_BUFFER_KEY, buffer); diff --git a/src/main/java/io/sinistral/proteus/services/AssetsService.java b/src/main/java/io/sinistral/proteus/services/AssetsService.java index 3ff21ef..f41861b 100644 --- a/src/main/java/io/sinistral/proteus/services/AssetsService.java +++ b/src/main/java/io/sinistral/proteus/services/AssetsService.java @@ -68,7 +68,7 @@ public RoutingHandler get() final FileResourceManager fileResourceManager = new FileResourceManager(Paths.get(assetsDirectoryName).toFile(),1024l); - router.add(Methods.GET, assetsPath + "/*", io.undertow.Handlers.rewrite("regex('" + assetsPath + "/(.*)')", "/$1", getClass().getClassLoader(), new ResourceHandler(fileResourceManager) + router.add(Methods.GET, assetsPath + "/*", io.undertow.Handlers.rewrite("regex['" + assetsPath + "/(.*)']", "/$1", getClass().getClassLoader(), new ResourceHandler(fileResourceManager) .setCachable(TruePredicate.instance()) .setCacheTime(assetsCacheTime) ));