Fix more review comments
This commit is contained in:
parent
53a8d71c64
commit
db7ac99699
@ -65,7 +65,7 @@ public interface MemoryManagers {
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a {@link MemoryManagers} implementation by its {@linkplain #implementationName() implementation name}.
|
||||
* Find a {@link MemoryManagers} implementation by its {@linkplain #getImplementationName() implementation name}.
|
||||
* <p>
|
||||
* Note: All available {@link MemoryManagers} instances are service loaded and instantiated every time this
|
||||
* method is called.
|
||||
@ -82,7 +82,7 @@ public interface MemoryManagers {
|
||||
return Stream.empty();
|
||||
}
|
||||
})
|
||||
.filter(impl -> implementationName.equals(impl.implementationName()))
|
||||
.filter(impl -> implementationName.equals(impl.getImplementationName()))
|
||||
.findFirst();
|
||||
}
|
||||
|
||||
@ -106,5 +106,5 @@ public interface MemoryManagers {
|
||||
*
|
||||
* @return The name of this memory managers implementation.
|
||||
*/
|
||||
String implementationName();
|
||||
String getImplementationName();
|
||||
}
|
||||
|
@ -1678,6 +1678,9 @@ public final class ByteBufAdaptor extends ByteBuf {
|
||||
|
||||
@Override
|
||||
public boolean release(int decrement) {
|
||||
if (!buffer.isAccessible() || decrement > 1 + Statics.countBorrows((ResourceSupport<?, ?>) buffer)) {
|
||||
throw new IllegalReferenceCountException();
|
||||
}
|
||||
for (int i = 0; i < decrement; i++) {
|
||||
try {
|
||||
buffer.close();
|
||||
|
@ -30,7 +30,7 @@ public class ByteBufferMemoryManagers implements MemoryManagers {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String implementationName() {
|
||||
public String getImplementationName() {
|
||||
return "ByteBuffer";
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@ import io.netty.buffer.api.WritableComponent;
|
||||
import io.netty.buffer.api.WritableComponentProcessor;
|
||||
import io.netty.buffer.api.internal.ArcDrop;
|
||||
import io.netty.buffer.api.internal.Statics;
|
||||
import io.netty.util.IllegalReferenceCountException;
|
||||
import io.netty.util.ReferenceCounted;
|
||||
import io.netty.util.internal.PlatformDependent;
|
||||
|
||||
@ -1245,6 +1246,9 @@ class NioBuffer extends ResourceSupport<Buffer, NioBuffer> implements Buffer, Re
|
||||
|
||||
@Override
|
||||
public boolean release(int decrement) {
|
||||
if (!isAccessible() || decrement > 1 + countBorrows()) {
|
||||
throw new IllegalReferenceCountException();
|
||||
}
|
||||
for (int i = 0; i < decrement; i++) {
|
||||
close();
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ import io.netty.buffer.api.WritableComponent;
|
||||
import io.netty.buffer.api.WritableComponentProcessor;
|
||||
import io.netty.buffer.api.internal.ArcDrop;
|
||||
import io.netty.buffer.api.internal.Statics;
|
||||
import io.netty.util.IllegalReferenceCountException;
|
||||
import io.netty.util.ReferenceCounted;
|
||||
import io.netty.util.internal.PlatformDependent;
|
||||
|
||||
@ -1660,6 +1661,9 @@ class UnsafeBuffer extends ResourceSupport<Buffer, UnsafeBuffer> implements Buff
|
||||
|
||||
@Override
|
||||
public boolean release(int decrement) {
|
||||
if (!isAccessible() || decrement > 1 + countBorrows()) {
|
||||
throw new IllegalReferenceCountException();
|
||||
}
|
||||
for (int i = 0; i < decrement; i++) {
|
||||
close();
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ public class UnsafeMemoryManagers implements MemoryManagers {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String implementationName() {
|
||||
public String getImplementationName() {
|
||||
return "Unsafe";
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@ import io.netty.buffer.api.WritableComponentProcessor;
|
||||
import io.netty.buffer.api.Drop;
|
||||
import io.netty.buffer.api.Owned;
|
||||
import io.netty.buffer.api.internal.ResourceSupport;
|
||||
import io.netty.util.IllegalReferenceCountException;
|
||||
import jdk.incubator.foreign.MemorySegment;
|
||||
import jdk.incubator.foreign.ResourceScope;
|
||||
|
||||
@ -1266,6 +1267,9 @@ class MemSegBuffer extends ResourceSupport<Buffer, MemSegBuffer> implements Buff
|
||||
|
||||
@Override
|
||||
public boolean release(int decrement) {
|
||||
if (!isAccessible() || decrement > 1 + countBorrows()) {
|
||||
throw new IllegalReferenceCountException();
|
||||
}
|
||||
for (int i = 0; i < decrement; i++) {
|
||||
close();
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ public class SegmentMemoryManagers implements MemoryManagers {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String implementationName() {
|
||||
public String getImplementationName() {
|
||||
return "MemorySegment";
|
||||
}
|
||||
|
||||
|
@ -61,6 +61,7 @@ import static io.netty.buffer.Unpooled.directBuffer;
|
||||
import static io.netty.buffer.Unpooled.unreleasableBuffer;
|
||||
import static io.netty.buffer.Unpooled.wrappedBuffer;
|
||||
import static io.netty.util.internal.EmptyArrays.EMPTY_BYTES;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
@ -3463,6 +3464,15 @@ public abstract class AbstractByteBufTest {
|
||||
assertThrows(IllegalReferenceCountException.class, () -> releasedBuffer().release());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void overReleasingMustNotCloseBuffer() {
|
||||
ByteBuf buf = newBuffer(1);
|
||||
assertThrows(IllegalReferenceCountException.class, () -> buf.release(10));
|
||||
assertThrows(IllegalReferenceCountException.class, () -> buf.release(2));
|
||||
assertThat(buf.refCnt()).isNotZero();
|
||||
assertTrue(buf.release());
|
||||
}
|
||||
|
||||
private static void assertDuplicateFailAfterRelease(ByteBuf... bufs) {
|
||||
for (ByteBuf buf : bufs) {
|
||||
if (buf.refCnt() > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user