LEAK: ByteBuf.release() was not called before it's garbage-collected

Here is my service code which is scala object.

object CouchbaseConnectionService extends Configuration with Logging {

val environment: CouchbaseEnvironment = DefaultCouchbaseEnvironment.builder().build()
val cluster = CouchbaseCluster.create(config.getConfig(“couchbase”).getStringList(“servers”))
val sessionBucket = cluster.openBucket(“Sessions”)
val tracksBucket = cluster.openBucket(“Tracks”)
val usersBucket = cluster.openBucket(“Users”)
val logsBucket = cluster.openBucket(“Logs”)
val empty = Some((JsonObject.empty(), 0))

def resolveBucket(name: String): Bucket = {
name match {
case “Sessions” => sessionBucket
case “Tracks” => tracksBucket
case “Users” => usersBucket
case “Logs” => logsBucket
case _ => sessionBucket
}
}

this is latest code of java client. Based on patch before returning it should we release input.

static class ByteBufToJsonObject implements Func1<ByteBuf, JsonObject> {

    @Override
    public JsonObject call(final ByteBuf input) {
        if (input == null || input.readableBytes() == 0) {
            return JsonObject.empty();
        }

        try {
            return TRANSCODER.byteBufToJsonObject(input);
        } catch (Exception e) {
            throw new TranscodingException("Could not decode View JSON: " + input.toString(CharsetUtil.UTF_8), e);
        } finally {
            if (input.refCnt() > 0) {
                input.release();
            }
        }
    }

}

thanks