WebSocketUtil.base64(..) leaks resources
org.vertx.java.tests.core.http.GroovyHttpTest > testPUTChunked STANDARD_OUT
    17:43:22.682 WARN  [vert.x-eventloop-thread-1][io.netty.util.ResourceLeakDetector] LEAK: ByteBuf was GC'd before being released correctly.
    io.netty.util.ResourceLeakException: io.netty.buffer.UnpooledUnsafeDirectByteBuf@46f8fbdb
        at io.netty.util.ResourceLeakDetector$DefaultResourceLeak.<init>(ResourceLeakDetector.java:158)
        at io.netty.util.ResourceLeakDetector.open(ResourceLeakDetector.java:103)
        at io.netty.buffer.UnpooledUnsafeDirectByteBuf.<init>(UnpooledUnsafeDirectByteBuf.java:72)
        at io.netty.buffer.UnpooledByteBufAllocator.newDirectBuffer(UnpooledByteBufAllocator.java:49)
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:130)
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:121)
        at io.netty.buffer.AbstractByteBufAllocator.buffer(AbstractByteBufAllocator.java:58)
        at io.netty.handler.codec.base64.Base64.encode(Base64.java:115)
        at io.netty.handler.codec.base64.Base64.encode(Base64.java:86)
        at io.netty.handler.codec.base64.Base64.encode(Base64.java:73)
        at io.netty.handler.codec.base64.Base64.encode(Base64.java:69)
        at io.netty.handler.codec.http.websocketx.WebSocketUtil.base64(WebSocketUtil.java:74)
        at io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker13.newHandshakeRequest(WebSocketClientHandshaker13.java:106)
        at io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker.handshake(WebSocketClientHandshaker.java:149)
        at io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker.handshake(WebSocketClientHandshaker.java:137)
        at org.vertx.java.core.http.impl.ClientConnection.toWebSocket(ClientConnection.java:115)
        at org.vertx.java.core.http.impl.DefaultHttpClient$3.handle(DefaultHttpClient.java:153)
        at org.vertx.java.core.http.impl.DefaultHttpClient$3.handle(DefaultHttpClient.java:150)
        at org.vertx.java.core.http.impl.DefaultHttpClient.createConn(DefaultHttpClient.java:540)
        at org.vertx.java.core.http.impl.DefaultHttpClient.access$600(DefaultHttpClient.java:47)
        at org.vertx.java.core.http.impl.DefaultHttpClient$6.run(DefaultHttpClient.java:526)
        at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:171)
        at org.vertx.java.core.impl.DefaultContext.execute(DefaultContext.java:129)
        at org.vertx.java.core.http.impl.DefaultHttpClient.connected(DefaultHttpClient.java:524)
        at org.vertx.java.core.http.impl.DefaultHttpClient.access$400(DefaultHttpClient.java:47)
        at org.vertx.java.core.http.impl.DefaultHttpClient$5.operationComplete(DefaultHttpClient.java:508)
        at org.vertx.java.core.http.impl.DefaultHttpClient$5.operationComplete(DefaultHttpClient.java:487)
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:612)
        at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:577)
        at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:539)
        at io.netty.util.concurrent.DefaultPromise.setSuccess(DefaultPromise.java:380)
        at io.netty.channel.DefaultChannelPromise.setSuccess(DefaultChannelPromise.java:76)
        at io.netty.channel.DefaultChannelPromise.setSuccess(DefaultChannelPromise.java:71)
        at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:232)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:513)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:465)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:359)
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
        at java.lang.Thread.run(Thread.java:722)
