final class io.undertow.util.SimpleObjectPool$SimplePooledObject<T> implements io.undertow.util.PooledObject<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.undertow.util.SimpleObjectPool$SimplePooledObject
super_class: java.lang.Object
{
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.util.SimpleObjectPool$SimplePooledObject> closedUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/util/SimpleObjectPool$SimplePooledObject;>;
private volatile int closed;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final T object;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: TT;
private final io.undertow.util.SimpleObjectPool<T> objectPool;
descriptor: Lio/undertow/util/SimpleObjectPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/util/SimpleObjectPool<TT;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lio/undertow/util/SimpleObjectPool$SimplePooledObject;
ldc "closed"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
1: putstatic io.undertow.util.SimpleObjectPool$SimplePooledObject.closedUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
2: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(T, io.undertow.util.SimpleObjectPool<T>);
descriptor: (Ljava/lang/Object;Lio/undertow/util/SimpleObjectPool;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.undertow.util.SimpleObjectPool$SimplePooledObject.object:Ljava/lang/Object;
2: aload 0
aload 2
putfield io.undertow.util.SimpleObjectPool$SimplePooledObject.objectPool:Lio/undertow/util/SimpleObjectPool;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/util/SimpleObjectPool$SimplePooledObject<TT;>;
0 4 1 object TT;
0 4 2 objectPool Lio/undertow/util/SimpleObjectPool<TT;>;
Signature: (TT;Lio/undertow/util/SimpleObjectPool<TT;>;)V
MethodParameters:
Name Flags
object
objectPool
public T getObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.undertow.util.SimpleObjectPool$SimplePooledObject.closedUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
ifeq 2
1: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.objectIsClosed:()Ljava/lang/IllegalStateException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.util.SimpleObjectPool$SimplePooledObject.object:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/util/SimpleObjectPool$SimplePooledObject<TT;>;
Signature: ()TT;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic io.undertow.util.SimpleObjectPool$SimplePooledObject.closedUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 4
1: aload 0
getfield io.undertow.util.SimpleObjectPool$SimplePooledObject.objectPool:Lio/undertow/util/SimpleObjectPool;
getfield io.undertow.util.SimpleObjectPool.recycler:Ljava/util/function/Consumer;
aload 0
getfield io.undertow.util.SimpleObjectPool$SimplePooledObject.object:Ljava/lang/Object;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
2: aload 0
getfield io.undertow.util.SimpleObjectPool$SimplePooledObject.objectPool:Lio/undertow/util/SimpleObjectPool;
getfield io.undertow.util.SimpleObjectPool.pool:Ljava/util/concurrent/LinkedBlockingDeque;
aload 0
getfield io.undertow.util.SimpleObjectPool$SimplePooledObject.object:Ljava/lang/Object;
invokevirtual java.util.concurrent.LinkedBlockingDeque.offer:(Ljava/lang/Object;)Z
ifne 4
3: aload 0
getfield io.undertow.util.SimpleObjectPool$SimplePooledObject.objectPool:Lio/undertow/util/SimpleObjectPool;
getfield io.undertow.util.SimpleObjectPool.consumer:Ljava/util/function/Consumer;
aload 0
getfield io.undertow.util.SimpleObjectPool$SimplePooledObject.object:Ljava/lang/Object;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/util/SimpleObjectPool$SimplePooledObject<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lio/undertow/util/PooledObject<TT;>;
SourceFile: "SimpleObjectPool.java"
NestHost: io.undertow.util.SimpleObjectPool
InnerClasses:
private final SimplePooledObject = io.undertow.util.SimpleObjectPool$SimplePooledObject of io.undertow.util.SimpleObjectPool