Skip to content

Commit c3920de

Browse files
committed
Netty ByteBufProxy should be accessed via a static final field (#152)
1 parent b60e7d0 commit c3920de

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

src/main/java/org/lmdbjava/ByteBufProxy.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@
3838
*/
3939
public final class ByteBufProxy extends BufferProxy<ByteBuf> {
4040

41+
/**
42+
* A proxy for using Netty {@link ByteBuf}. Guaranteed to never be null,
43+
* although a class initialization exception will occur if an attempt is made
44+
* to access this field when Netty is unavailable.
45+
*/
46+
public static final BufferProxy<ByteBuf> PROXY_NETTY = new ByteBufProxy();
47+
4148
private static final long ADDRESS_OFFSET;
4249

4350
/**
@@ -66,6 +73,9 @@ public final class ByteBufProxy extends BufferProxy<ByteBuf> {
6673
}
6774
}
6875

76+
private ByteBufProxy() {
77+
}
78+
6979
static Field findField(final String c, final String name) {
7080
Class<?> clazz;
7181
try {

src/test/java/org/lmdbjava/ComparatorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ public int compare(final byte[] o1, final byte[] o2) {
208208
final ByteBuf o2b = DEFAULT.directBuffer(o2.length);
209209
o1b.writeBytes(o1);
210210
o2b.writeBytes(o2);
211-
return new ByteBufProxy().compare(o1b, o2b);
211+
return ByteBufProxy.PROXY_NETTY.compare(o1b, o2b);
212212
}
213213
}
214214

src/test/java/org/lmdbjava/CursorParamTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.junit.runners.Parameterized.Parameter;
4141
import org.junit.runners.Parameterized.Parameters;
4242
import static org.lmdbjava.ByteArrayProxy.PROXY_BA;
43+
import static org.lmdbjava.ByteBufProxy.PROXY_NETTY;
4344
import static org.lmdbjava.ByteBufferProxy.PROXY_OPTIMAL;
4445
import static org.lmdbjava.ByteBufferProxy.PROXY_SAFE;
4546
import static org.lmdbjava.DbiFlags.MDB_CREATE;
@@ -287,7 +288,7 @@ public void set(final DirectBuffer buff, final int val) {
287288
private static class NettyBufferRunner extends AbstractBufferRunner<ByteBuf> {
288289

289290
NettyBufferRunner() {
290-
super(new ByteBufProxy());
291+
super(PROXY_NETTY);
291292
}
292293

293294
@Override

0 commit comments

Comments
 (0)