class com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator<T> implements java.util.Iterator<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator
super_class: java.lang.Object
{
java.lang.Class<T> service;
descriptor: Ljava/lang/Class;
flags: (0x0000)
Signature: Ljava/lang/Class<TT;>;
java.lang.ClassLoader loader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0000)
RuntimeInvisibleAnnotations:
com.sun.istack.internal.Nullable()
com.sun.xml.internal.ws.util.ServiceFinder$ServiceName[] names;
descriptor: [Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
flags: (0x0000)
int index;
descriptor: I
flags: (0x0000)
private void <init>(java.lang.Class<T>, java.lang.ClassLoader);
descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
start local 1 // java.lang.Class service
start local 2 // java.lang.ClassLoader loader
0: .line 478
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 479
aload 0 /* this */
aload 1 /* service */
putfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.service:Ljava/lang/Class;
2: .line 480
aload 0 /* this */
aload 2 /* loader */
putfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.loader:Ljava/lang/ClassLoader;
3: .line 481
aload 0 /* this */
aconst_null
putfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
4: .line 482
aload 0 /* this */
iconst_0
putfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.index:I
5: .line 483
return
end local 2 // java.lang.ClassLoader loader
end local 1 // java.lang.Class service
end local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/xml/internal/ws/util/ServiceFinder$LazyIterator<TT;>;
0 6 1 service Ljava/lang/Class<TT;>;
0 6 2 loader Ljava/lang/ClassLoader;
Signature: (Ljava/lang/Class<TT;>;Ljava/lang/ClassLoader;)V
MethodParameters:
Name Flags
service
loader
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
0: .line 487
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
ifnonnull 19
1: .line 488
aconst_null
astore 1 /* nameMap */
start local 1 // java.util.concurrent.ConcurrentHashMap nameMap
2: .line 489
getstatic com.sun.xml.internal.ws.util.ServiceFinder.serviceNameCache:Ljava/util/WeakHashMap;
dup
astore 2
monitorenter
3: getstatic com.sun.xml.internal.ws.util.ServiceFinder.serviceNameCache:Ljava/util/WeakHashMap;
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.loader:Ljava/lang/ClassLoader;
invokevirtual java.util.WeakHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.concurrent.ConcurrentHashMap
astore 1 /* nameMap */
aload 2
monitorexit
4: goto 7
StackMap locals: com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator java.util.concurrent.ConcurrentHashMap java.util.WeakHashMap
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: .line 490
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* nameMap */
ifnull 8
aload 1 /* nameMap */
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.service:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.xml.internal.ws.util.ServiceFinder$ServiceName[]
goto 9
StackMap locals:
StackMap stack: com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator
8: aconst_null
StackMap locals: com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator java.util.concurrent.ConcurrentHashMap
StackMap stack: com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator com.sun.xml.internal.ws.util.ServiceFinder$ServiceName[]
9: putfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
10: .line 491
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
ifnonnull 19
11: .line 492
aload 0 /* this */
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.service:Ljava/lang/Class;
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.loader:Ljava/lang/ClassLoader;
invokestatic com.sun.xml.internal.ws.util.ServiceFinder.serviceClassNames:(Ljava/lang/Class;Ljava/lang/ClassLoader;)[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
putfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
12: .line 493
aload 1 /* nameMap */
ifnonnull 13
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
astore 1 /* nameMap */
13: .line 494
StackMap locals:
StackMap stack:
aload 1 /* nameMap */
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.service:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: .line 495
getstatic com.sun.xml.internal.ws.util.ServiceFinder.serviceNameCache:Ljava/util/WeakHashMap;
dup
astore 2
monitorenter
15: getstatic com.sun.xml.internal.ws.util.ServiceFinder.serviceNameCache:Ljava/util/WeakHashMap;
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.loader:Ljava/lang/ClassLoader;
aload 1 /* nameMap */
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
aload 2
monitorexit
16: goto 19
StackMap locals: com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator java.util.concurrent.ConcurrentHashMap java.util.WeakHashMap
StackMap stack: java.lang.Throwable
17: aload 2
monitorexit
18: athrow
end local 1 // java.util.concurrent.ConcurrentHashMap nameMap
19: .line 498
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.index:I
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
arraylength
if_icmpge 20
iconst_1
ireturn
StackMap locals:
StackMap stack:
20: iconst_0
ireturn
end local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/sun/xml/internal/ws/util/ServiceFinder$LazyIterator<TT;>;
2 19 1 nameMap Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;>;
Exception table:
from to target type
3 4 5 any
5 6 5 any
15 16 17 any
17 18 17 any
public T next();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
0: .line 503
aload 0 /* this */
invokevirtual com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.hasNext:()Z
ifne 1
new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
1: .line 504
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.names:[Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
aload 0 /* this */
dup
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.index:I
dup_x1
iconst_1
iadd
putfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.index:I
aaload
astore 1 /* sn */
start local 1 // com.sun.xml.internal.ws.util.ServiceFinder$ServiceName sn
2: .line 505
aload 1 /* sn */
getfield com.sun.xml.internal.ws.util.ServiceFinder$ServiceName.className:Ljava/lang/String;
astore 2 /* cn */
start local 2 // java.lang.String cn
3: .line 506
aload 1 /* sn */
getfield com.sun.xml.internal.ws.util.ServiceFinder$ServiceName.config:Ljava/net/URL;
astore 3 /* currentConfig */
start local 3 // java.net.URL currentConfig
4: .line 508
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.service:Ljava/lang/Class;
aload 2 /* cn */
iconst_1
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.loader:Ljava/lang/ClassLoader;
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
5: areturn
6: .line 509
StackMap locals: com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator com.sun.xml.internal.ws.util.ServiceFinder$ServiceName java.lang.String java.net.URL
StackMap stack: java.lang.ClassNotFoundException
pop
7: .line 510
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.service:Ljava/lang/Class;
new java.lang.StringBuilder
dup
ldc "Provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* cn */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is specified in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3 /* currentConfig */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " but not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.sun.xml.internal.ws.util.ServiceFinder.fail:(Ljava/lang/Class;Ljava/lang/String;)V
goto 10
8: .line 511
StackMap locals:
StackMap stack: java.lang.Exception
astore 4 /* x */
start local 4 // java.lang.Exception x
9: .line 512
aload 0 /* this */
getfield com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator.service:Ljava/lang/Class;
new java.lang.StringBuilder
dup
ldc "Provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* cn */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is specified in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3 /* currentConfig */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "but could not be instantiated: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4 /* x */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4 /* x */
invokestatic com.sun.xml.internal.ws.util.ServiceFinder.fail:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 // java.lang.Exception x
10: .line 514
StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 // java.net.URL currentConfig
end local 2 // java.lang.String cn
end local 1 // com.sun.xml.internal.ws.util.ServiceFinder$ServiceName sn
end local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/xml/internal/ws/util/ServiceFinder$LazyIterator<TT;>;
2 11 1 sn Lcom/sun/xml/internal/ws/util/ServiceFinder$ServiceName;
3 11 2 cn Ljava/lang/String;
4 11 3 currentConfig Ljava/net/URL;
9 10 4 x Ljava/lang/Exception;
Exception table:
from to target type
4 5 6 Class java.lang.ClassNotFoundException
4 5 8 Class java.lang.Exception
Signature: ()TT;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
0: .line 519
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 // com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/xml/internal/ws/util/ServiceFinder$LazyIterator<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Iterator<TT;>;
SourceFile: "ServiceFinder.java"
NestHost: com.sun.xml.internal.ws.util.ServiceFinder
InnerClasses:
private LazyIterator = com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator of com.sun.xml.internal.ws.util.ServiceFinder
private ServiceName = com.sun.xml.internal.ws.util.ServiceFinder$ServiceName of com.sun.xml.internal.ws.util.ServiceFinder