public class edu.umd.cs.findbugs.DetectorFactoryCollection implements edu.umd.cs.findbugs.updates.UpdateCheckCallback
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: edu.umd.cs.findbugs.DetectorFactoryCollection
super_class: java.lang.Object
{
private static final java.util.logging.Logger LOGGER;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean DEBUG_JAWS;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static edu.umd.cs.findbugs.DetectorFactoryCollection theInstance;
descriptor: Ledu/umd/cs/findbugs/DetectorFactoryCollection;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Map<java.lang.String, edu.umd.cs.findbugs.Plugin> pluginByIdMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/Plugin;>;
private edu.umd.cs.findbugs.Plugin corePlugin;
descriptor: Ledu/umd/cs/findbugs/Plugin;
flags: (0x0002) ACC_PRIVATE
private final java.util.List<edu.umd.cs.findbugs.DetectorFactory> factoryList;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ledu/umd/cs/findbugs/DetectorFactory;>;
private final java.util.Map<java.lang.String, edu.umd.cs.findbugs.DetectorFactory> factoriesByName;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/DetectorFactory;>;
private final java.util.Map<java.lang.String, edu.umd.cs.findbugs.DetectorFactory> factoriesByDetectorClassName;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/DetectorFactory;>;
private final java.util.Map<java.lang.String, edu.umd.cs.findbugs.cloud.CloudPlugin> registeredClouds;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/cloud/CloudPlugin;>;
protected final java.util.Map<java.lang.String, edu.umd.cs.findbugs.BugCategory> categoryDescriptionMap;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/BugCategory;>;
protected final java.util.Map<java.lang.String, edu.umd.cs.findbugs.BugPattern> bugPatternMap;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/BugPattern;>;
protected final java.util.Map<java.lang.String, edu.umd.cs.findbugs.BugCode> bugCodeMap;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/BugCode;>;
private final edu.umd.cs.findbugs.updates.UpdateChecker updateChecker;
descriptor: Ledu/umd/cs/findbugs/updates/UpdateChecker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.CopyOnWriteArrayList<edu.umd.cs.findbugs.updates.PluginUpdateListener> pluginUpdateListeners;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Ledu/umd/cs/findbugs/updates/PluginUpdateListener;>;
private volatile java.util.List<edu.umd.cs.findbugs.updates.UpdateChecker$PluginUpdate> updates;
descriptor: Ljava/util/List;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/List<Ledu/umd/cs/findbugs/updates/UpdateChecker$PluginUpdate;>;
private boolean updatesForced;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.Collection<edu.umd.cs.findbugs.Plugin> pluginsToUpdate;
descriptor: Ljava/util/Collection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;
final java.util.Map<java.lang.String, java.lang.String> globalOptions;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
final java.util.Map<java.lang.String, edu.umd.cs.findbugs.Plugin> globalOptionsSetter;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/Plugin;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ledu/umd/cs/findbugs/DetectorFactoryCollection;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic edu.umd.cs.findbugs.DetectorFactoryCollection.LOGGER:Ljava/util/logging/Logger;
1: ldc "findbugs.jaws.debug"
invokestatic edu.umd.cs.findbugs.SystemProperties.getBoolean:(Ljava/lang/String;)Z
putstatic edu.umd.cs.findbugs.DetectorFactoryCollection.DEBUG_JAWS:Z
2: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic edu.umd.cs.findbugs.DetectorFactoryCollection.lock:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
iconst_0
invokestatic edu.umd.cs.findbugs.Plugin.getAllPlugins:()Ljava/util/Collection;
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokespecial edu.umd.cs.findbugs.DetectorFactoryCollection.<init>:(ZZLjava/util/Collection;Ljava/util/Collection;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
protected void <init>(edu.umd.cs.findbugs.Plugin);
descriptor: (Ledu/umd/cs/findbugs/Plugin;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
iconst_1
aload 1
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokespecial edu.umd.cs.findbugs.DetectorFactoryCollection.<init>:(ZZLjava/util/Collection;Ljava/util/Collection;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 2 1 onlyPlugin Ledu/umd/cs/findbugs/Plugin;
MethodParameters:
Name Flags
onlyPlugin
protected void <init>(java.util.Collection<edu.umd.cs.findbugs.Plugin>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
iconst_1
aload 1
aload 1
invokespecial edu.umd.cs.findbugs.DetectorFactoryCollection.<init>:(ZZLjava/util/Collection;Ljava/util/Collection;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 2 1 enabled Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;
Signature: (Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;)V
MethodParameters:
Name Flags
enabled
private void <init>(boolean, boolean, java.util.Collection<edu.umd.cs.findbugs.Plugin>, java.util.Collection<edu.umd.cs.findbugs.Plugin>);
descriptor: (ZZLjava/util/Collection;Ljava/util/Collection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginByIdMap:Ljava/util/Map;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByName:Ljava/util/Map;
4: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByDetectorClassName:Ljava/util/Map;
5: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.registeredClouds:Ljava/util/Map;
6: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
7: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugPatternMap:Ljava/util/Map;
8: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugCodeMap:Ljava/util/Map;
9: aload 0
10: new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginUpdateListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
11: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptions:Ljava/util/Map;
12: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptionsSetter:Ljava/util/Map;
13: iload 1
ifeq 15
14: aload 0
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.loadCorePlugin:()V
15: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection int int java.util.Collection java.util.Collection
StackMap stack:
aload 3
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 21
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection int int java.util.Collection java.util.Collection top java.util.Iterator
StackMap stack:
16: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.Plugin
astore 5
start local 5 17: iload 2
ifne 18
aload 5
invokevirtual edu.umd.cs.findbugs.Plugin.isGloballyEnabled:()Z
ifeq 21
aload 5
invokevirtual edu.umd.cs.findbugs.Plugin.isCorePlugin:()Z
ifne 21
18: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection int int java.util.Collection java.util.Collection edu.umd.cs.findbugs.Plugin java.util.Iterator
StackMap stack:
aload 0
aload 5
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.loadPlugin:(Ledu/umd/cs/findbugs/Plugin;)V
19: aload 4
aload 5
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifne 21
20: aload 4
aload 5
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 5 21: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection int int java.util.Collection java.util.Collection top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
22: aload 0
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.setGlobalOptions:()V
23: aload 0
new edu.umd.cs.findbugs.updates.UpdateChecker
dup
aload 0
invokespecial edu.umd.cs.findbugs.updates.UpdateChecker.<init>:(Ledu/umd/cs/findbugs/updates/UpdateCheckCallback;)V
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.updateChecker:Ledu/umd/cs/findbugs/updates/UpdateChecker;
24: aload 0
aload 0
aload 4
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.combine:(Ljava/util/Collection;)Ljava/util/Collection;
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginsToUpdate:Ljava/util/Collection;
25: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 26 1 loadCore Z
0 26 2 forceLoad Z
0 26 3 pluginsToLoad Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;
0 26 4 enabledPlugins Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;
17 21 5 plugin Ledu/umd/cs/findbugs/Plugin;
Signature: (ZZLjava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;)V
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
javax.annotation.Nonnull()
METHOD_FORMAL_PARAMETER
javax.annotation.Nonnull()
RuntimeVisibleParameterAnnotations:
0:
1:
2:
javax.annotation.Nonnull()
3:
javax.annotation.Nonnull()
MethodParameters:
Name Flags
loadCore
forceLoad
pluginsToLoad
enabledPlugins
public void checkForUpdates(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.updateChecker:Ledu/umd/cs/findbugs/updates/UpdateChecker;
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginsToUpdate:Ljava/util/Collection;
iload 1
invokevirtual edu.umd.cs.findbugs.updates.UpdateChecker.checkForUpdates:(Ljava/util/Collection;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 2 1 force Z
MethodParameters:
Name Flags
force
private java.util.Collection<edu.umd.cs.findbugs.Plugin> combine(java.util.Collection<edu.umd.cs.findbugs.Plugin>);
descriptor: (Ljava/util/Collection;)Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.corePlugin:Ledu/umd/cs/findbugs/Plugin;
ifnull 3
aload 2
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.corePlugin:Ledu/umd/cs/findbugs/Plugin;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 3
2: aload 2
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.corePlugin:Ledu/umd/cs/findbugs/Plugin;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals: java.util.List
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 4 1 enabled Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;
1 4 2 result Ljava/util/List<Ledu/umd/cs/findbugs/Plugin;>;
Signature: (Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;)Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;
MethodParameters:
Name Flags
enabled
public static void resetInstance(edu.umd.cs.findbugs.DetectorFactoryCollection);
descriptor: (Ledu/umd/cs/findbugs/DetectorFactoryCollection;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
putstatic edu.umd.cs.findbugs.DetectorFactoryCollection.theInstance:Ledu/umd/cs/findbugs/DetectorFactoryCollection;
2: aload 1
monitorexit
3: goto 6
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 instance Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Exception table:
from to target type
1 3 4 any
4 5 4 any
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
javax.annotation.CheckForNull()
RuntimeVisibleParameterAnnotations:
0:
javax.annotation.CheckForNull()
MethodParameters:
Name Flags
instance
public static edu.umd.cs.findbugs.DetectorFactoryCollection instance();
descriptor: ()Ledu/umd/cs/findbugs/DetectorFactoryCollection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.lock:Ljava/lang/Object;
dup
astore 0
monitorenter
1: getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.theInstance:Ledu/umd/cs/findbugs/DetectorFactoryCollection;
ifnonnull 3
2: new edu.umd.cs.findbugs.DetectorFactoryCollection
dup
invokespecial edu.umd.cs.findbugs.DetectorFactoryCollection.<init>:()V
putstatic edu.umd.cs.findbugs.DetectorFactoryCollection.theInstance:Ledu/umd/cs/findbugs/DetectorFactoryCollection;
3: StackMap locals: java.lang.Object
StackMap stack:
getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.theInstance:Ledu/umd/cs/findbugs/DetectorFactoryCollection;
aload 0
monitorexit
4: areturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 0
monitorexit
6: athrow
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
1 4 5 any
5 6 5 any
private void setGlobalOptions();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptions:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptionsSetter:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: aload 0
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.plugins:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 20
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.Plugin
astore 1
start local 1 4: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.isGloballyEnabled:()Z
ifeq 20
5: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getMyGlobalOptions:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 19
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection edu.umd.cs.findbugs.Plugin java.util.Iterator top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 7: aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 8: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 9: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptions:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 10: aload 7
ifnull 17
11: aload 7
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: goto 19
13: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection edu.umd.cs.findbugs.Plugin java.util.Iterator java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptionsSetter:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.Plugin
astore 8
start local 8 14: new java.lang.RuntimeException
dup
15: new java.lang.StringBuilder
dup
ldc "Incompatible global options for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "; conflict between "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual edu.umd.cs.findbugs.Plugin.getPluginId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getPluginId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 8 17: StackMap locals:
StackMap stack:
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptions:Ljava/util/Map;
aload 5
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptionsSetter:Ljava/util/Map;
aload 5
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 end local 5 end local 3 19: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection edu.umd.cs.findbugs.Plugin java.util.Iterator top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 1 20: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
21: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
4 20 1 p Ledu/umd/cs/findbugs/Plugin;
7 19 3 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
8 19 5 key Ljava/lang/String;
9 19 6 value Ljava/lang/String;
10 19 7 oldValue Ljava/lang/String;
14 17 8 oldP Ledu/umd/cs/findbugs/Plugin;
public java.lang.String getGlobalOption(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 1 1 key Ljava/lang/String;
RuntimeVisibleAnnotations:
javax.annotation.CheckForNull()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.CheckForNull()
MethodParameters:
Name Flags
key
public edu.umd.cs.findbugs.Plugin getGlobalOptionSetter(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/Plugin;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.globalOptionsSetter:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.Plugin
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 1 1 key Ljava/lang/String;
RuntimeVisibleAnnotations:
javax.annotation.CheckForNull()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.CheckForNull()
MethodParameters:
Name Flags
key
public java.util.Iterator<edu.umd.cs.findbugs.Plugin> pluginIterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginByIdMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Iterator<Ledu/umd/cs/findbugs/Plugin;>;
public java.util.Collection<edu.umd.cs.findbugs.Plugin> plugins();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginByIdMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Collection<Ledu/umd/cs/findbugs/Plugin;>;
public edu.umd.cs.findbugs.Plugin getCorePlugin();
descriptor: ()Ledu/umd/cs/findbugs/Plugin;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.corePlugin:Ledu/umd/cs/findbugs/Plugin;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "No core plugin"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.corePlugin:Ledu/umd/cs/findbugs/Plugin;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
RuntimeVisibleAnnotations:
javax.annotation.Nonnull()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.Nonnull()
public edu.umd.cs.findbugs.Plugin getPluginById(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/Plugin;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginByIdMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.Plugin
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 1 1 pluginId Ljava/lang/String;
MethodParameters:
Name Flags
pluginId
public java.util.Iterator<edu.umd.cs.findbugs.DetectorFactory> factoryIterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Iterator<Ledu/umd/cs/findbugs/DetectorFactory;>;
public java.lang.Iterable<edu.umd.cs.findbugs.DetectorFactory> getFactories();
descriptor: ()Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/lang/Iterable<Ledu/umd/cs/findbugs/DetectorFactory;>;
public boolean isDisabledByDefault(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=8, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.lookupBugPattern:(Ljava/lang/String;)Ledu/umd/cs/findbugs/BugPattern;
astore 2
start local 2 1: aload 2
ifnull 8
2: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.lang.String edu.umd.cs.findbugs.BugPattern top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.DetectorFactory
astore 3
start local 3 4: aload 3
invokevirtual edu.umd.cs.findbugs.DetectorFactory.isDefaultEnabled:()Z
ifeq 6
aload 3
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getReportedBugPatterns:()Ljava/util/Set;
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_0
ireturn
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: iconst_1
ireturn
8: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.lang.String edu.umd.cs.findbugs.BugPattern
StackMap stack:
aload 0
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.lookupBugCode:(Ljava/lang/String;)Ledu/umd/cs/findbugs/BugCode;
astore 3
start local 3 9: aload 3
ifnull 20
10: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 18
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.lang.String edu.umd.cs.findbugs.BugPattern edu.umd.cs.findbugs.BugCode top java.util.Iterator
StackMap stack:
11: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.DetectorFactory
astore 4
start local 4 12: aload 4
invokevirtual edu.umd.cs.findbugs.DetectorFactory.isDefaultEnabled:()Z
ifeq 18
13: aload 4
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getReportedBugPatterns:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 17
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.lang.String edu.umd.cs.findbugs.BugPattern edu.umd.cs.findbugs.BugCode edu.umd.cs.findbugs.DetectorFactory java.util.Iterator top java.util.Iterator
StackMap stack:
14: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugPattern
astore 6
start local 6 15: aload 6
invokevirtual edu.umd.cs.findbugs.BugPattern.getBugCode:()Ledu/umd/cs/findbugs/BugCode;
aload 3
invokevirtual edu.umd.cs.findbugs.BugCode.equals:(Ljava/lang/Object;)Z
ifeq 17
16: iconst_0
ireturn
end local 6 17: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 4 18: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.lang.String edu.umd.cs.findbugs.BugPattern edu.umd.cs.findbugs.BugCode top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
19: iconst_1
ireturn
20: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.lang.String edu.umd.cs.findbugs.BugPattern edu.umd.cs.findbugs.BugCode
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 21 1 bugPatternOrCode Ljava/lang/String;
1 21 2 pattern Ledu/umd/cs/findbugs/BugPattern;
4 6 3 fac Ledu/umd/cs/findbugs/DetectorFactory;
9 21 3 code Ledu/umd/cs/findbugs/BugCode;
12 18 4 fac Ledu/umd/cs/findbugs/DetectorFactory;
15 17 6 p Ledu/umd/cs/findbugs/BugPattern;
MethodParameters:
Name Flags
bugPatternOrCode
public edu.umd.cs.findbugs.DetectorFactory getFactory(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/DetectorFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByName:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.DetectorFactory
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public edu.umd.cs.findbugs.DetectorFactory getFactoryByClassName(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/DetectorFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByDetectorClassName:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.DetectorFactory
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 1 1 className Ljava/lang/String;
MethodParameters:
Name Flags
className
void registerDetector(edu.umd.cs.findbugs.DetectorFactory);
descriptor: (Ledu/umd/cs/findbugs/DetectorFactory;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic edu.umd.cs.findbugs.FindBugs.DEBUG:Z
ifeq 2
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Registering detector: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getFullName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getShortName:()Ljava/lang/String;
astore 2
start local 2 3: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 6
4: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: goto 9
6: StackMap locals: java.lang.String
StackMap stack:
getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "Trying to add already registered factory: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
7: ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getPlugin:()Ledu/umd/cs/findbugs/Plugin;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByName:Ljava/util/Map;
aload 2
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByDetectorClassName:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getFullName:()Ljava/lang/String;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 12 1 factory Ledu/umd/cs/findbugs/DetectorFactory;
3 12 2 detectorName Ljava/lang/String;
MethodParameters:
Name Flags
factory
void unRegisterDetector(edu.umd.cs.findbugs.DetectorFactory);
descriptor: (Ledu/umd/cs/findbugs/DetectorFactory;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic edu.umd.cs.findbugs.FindBugs.DEBUG:Z
ifeq 2
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Unregistering detector: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getFullName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getShortName:()Ljava/lang/String;
astore 2
start local 2 3: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoryList:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByName:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.factoriesByDetectorClassName:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactory.getFullName:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 7 1 factory Ledu/umd/cs/findbugs/DetectorFactory;
3 7 2 detectorName Ljava/lang/String;
MethodParameters:
Name Flags
factory
private static java.lang.String inferFindBugsHome();
descriptor: ()Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=0
0: iconst_1
anewarray java.util.regex.Pattern
dup
iconst_0
ldc "findbugs\\.jar$"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
aastore
astore 0
start local 0 1: aload 0
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 14
StackMap locals: java.util.regex.Pattern[] top int int java.util.regex.Pattern[]
StackMap stack:
2: aload 4
iload 2
aaload
astore 1
start local 1 3: aload 1
4: ldc "java.class.path"
invokestatic edu.umd.cs.findbugs.SystemProperties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
5: invokestatic edu.umd.cs.findbugs.util.ClassPathUtil.findCodeBaseInClassPath:(Ljava/util/regex/Pattern;Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 6: aload 5
ifnull 13
7: new java.io.File
dup
aload 5
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 8: aload 6
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 7
start local 7 9: ldc "lib"
aload 7
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
10: aload 7
invokevirtual java.io.File.getParent:()Ljava/lang/String;
astore 8
start local 8 11: aload 8
invokestatic edu.umd.cs.findbugs.FindBugs.setHome:(Ljava/lang/String;)V
12: aload 8
areturn
end local 8 end local 7 end local 6 end local 5 end local 1 13: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
14: iload 2
iload 3
if_icmplt 2
15: new java.lang.StringBuilder
dup
ldc Ledu/umd/cs/findbugs/FindBugs;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
ldc "\\."
ldc "/"
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
start local 1 16: ldc Ledu/umd/cs/findbugs/FindBugs;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 17: aload 2
ifnull 27
ldc "file"
aload 2
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
18: aload 2
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 19: ldc "(.*)/.*?/edu/umd.*"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
aload 3
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 4
start local 4 20: aload 4
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 27
21: aload 4
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 5
start local 5 22: new java.io.File
dup
new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/etc/findbugs.xml"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.exists:()Z
ifeq 27
23: aload 5
invokestatic edu.umd.cs.findbugs.FindBugs.setHome:(Ljava/lang/String;)V
24: aload 5
25: areturn
end local 5 end local 4 end local 3 26: StackMap locals: java.util.regex.Pattern[] java.lang.String java.net.URL
StackMap stack: java.io.UnsupportedEncodingException
pop
27: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 28 0 findbugsJarNames [Ljava/util/regex/Pattern;
3 13 1 jarNamePattern Ljava/util/regex/Pattern;
6 13 5 findbugsJarCodeBase Ljava/lang/String;
8 13 6 findbugsJar Ljava/io/File;
9 13 7 libDir Ljava/io/File;
11 13 8 fbHome Ljava/lang/String;
16 28 1 classFilePath Ljava/lang/String;
17 28 2 resource Ljava/net/URL;
19 26 3 classfile Ljava/lang/String;
20 26 4 m Ljava/util/regex/Matcher;
22 26 5 home Ljava/lang/String;
Exception table:
from to target type
18 25 26 Class java.io.UnsupportedEncodingException
public static java.lang.String getFindBugsHome();
descriptor: ()Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic edu.umd.cs.findbugs.FindBugs.getHome:()Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnonnull 3
2: invokestatic edu.umd.cs.findbugs.DetectorFactoryCollection.inferFindBugsHome:()Ljava/lang/String;
astore 0
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 homeDir Ljava/lang/String;
public static java.net.URL getCoreResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic edu.umd.cs.findbugs.PluginLoader.getCoreResource:(Ljava/lang/String;)Ljava/net/URL;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
RuntimeVisibleAnnotations:
javax.annotation.CheckForNull()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.CheckForNull()
MethodParameters:
Name Flags
name
private void loadCorePlugin();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic edu.umd.cs.findbugs.PluginLoader.getCorePluginLoader:()Ledu/umd/cs/findbugs/PluginLoader;
invokevirtual edu.umd.cs.findbugs.PluginLoader.getPlugin:()Ledu/umd/cs/findbugs/Plugin;
astore 1
start local 1 1: aload 0
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.loadPlugin:(Ledu/umd/cs/findbugs/Plugin;)V
2: aload 0
aload 1
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.corePlugin:Ledu/umd/cs/findbugs/Plugin;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
1 4 1 plugin Ledu/umd/cs/findbugs/Plugin;
public static void jawsDebugMessage(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.DEBUG_JAWS:Z
ifeq 3
1: aconst_null
aload 0
invokestatic javax.swing.JOptionPane.showMessageDialog:(Ljava/awt/Component;Ljava/lang/Object;)V
2: goto 5
StackMap locals:
StackMap stack:
3: getstatic edu.umd.cs.findbugs.FindBugs.DEBUG:Z
ifeq 5
4: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 0
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 message Ljava/lang/String;
MethodParameters:
Name Flags
message
void loadPlugin(edu.umd.cs.findbugs.Plugin);
descriptor: (Ledu/umd/cs/findbugs/Plugin;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic edu.umd.cs.findbugs.FindBugs.DEBUG:Z
ifeq 2
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Loading "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getPluginId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginByIdMap:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getPluginId:()Ljava/lang/String;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.setGlobalOptions:()V
4: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getDetectorFactories:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection edu.umd.cs.findbugs.Plugin top java.util.Iterator
StackMap stack:
5: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.DetectorFactory
astore 2
start local 2 6: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.registerDetector:(Ledu/umd/cs/findbugs/DetectorFactory;)V
end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getBugCategories:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 11
StackMap locals:
StackMap stack:
9: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugCategory
astore 2
start local 2 10: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.registerBugCategory:(Ledu/umd/cs/findbugs/BugCategory;)Z
pop
end local 2 11: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
12: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getBugPatterns:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 15
StackMap locals:
StackMap stack:
13: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugPattern
astore 2
start local 2 14: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.registerBugPattern:(Ledu/umd/cs/findbugs/BugPattern;)V
end local 2 15: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getBugCodes:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 19
StackMap locals:
StackMap stack:
17: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugCode
astore 2
start local 2 18: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.registerBugCode:(Ledu/umd/cs/findbugs/BugCode;)V
end local 2 19: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
20: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getCloudPlugins:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 23
StackMap locals:
StackMap stack:
21: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.cloud.CloudPlugin
astore 2
start local 2 22: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.registerCloud:(Ledu/umd/cs/findbugs/cloud/CloudPlugin;)V
end local 2 23: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 25 1 plugin Ledu/umd/cs/findbugs/Plugin;
6 7 2 factory Ledu/umd/cs/findbugs/DetectorFactory;
10 11 2 bugCategory Ledu/umd/cs/findbugs/BugCategory;
14 15 2 bugPattern Ledu/umd/cs/findbugs/BugPattern;
18 19 2 bugCode Ledu/umd/cs/findbugs/BugCode;
22 23 2 cloud Ledu/umd/cs/findbugs/cloud/CloudPlugin;
MethodParameters:
Name Flags
plugin
void unLoadPlugin(edu.umd.cs.findbugs.Plugin);
descriptor: (Ledu/umd/cs/findbugs/Plugin;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginByIdMap:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getPluginId:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.setGlobalOptions:()V
2: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getDetectorFactories:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection edu.umd.cs.findbugs.Plugin top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.DetectorFactory
astore 2
start local 2 4: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.unRegisterDetector:(Ledu/umd/cs/findbugs/DetectorFactory;)V
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getBugCategories:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals:
StackMap stack:
7: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugCategory
astore 2
start local 2 8: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.unRegisterBugCategory:(Ledu/umd/cs/findbugs/BugCategory;)Z
pop
end local 2 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getBugPatterns:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 13
StackMap locals:
StackMap stack:
11: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugPattern
astore 2
start local 2 12: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.unRegisterBugPattern:(Ledu/umd/cs/findbugs/BugPattern;)V
end local 2 13: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getBugCodes:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 17
StackMap locals:
StackMap stack:
15: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugCode
astore 2
start local 2 16: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.unRegisterBugCode:(Ledu/umd/cs/findbugs/BugCode;)V
end local 2 17: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
18: aload 1
invokevirtual edu.umd.cs.findbugs.Plugin.getCloudPlugins:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 21
StackMap locals:
StackMap stack:
19: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.cloud.CloudPlugin
astore 2
start local 2 20: aload 0
aload 2
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.unRegisterCloud:(Ledu/umd/cs/findbugs/cloud/CloudPlugin;)V
end local 2 21: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
22: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 23 1 plugin Ledu/umd/cs/findbugs/Plugin;
4 5 2 factory Ledu/umd/cs/findbugs/DetectorFactory;
8 9 2 bugCategory Ledu/umd/cs/findbugs/BugCategory;
12 13 2 bugPattern Ledu/umd/cs/findbugs/BugPattern;
16 17 2 bugCode Ledu/umd/cs/findbugs/BugCode;
20 21 2 cloud Ledu/umd/cs/findbugs/cloud/CloudPlugin;
MethodParameters:
Name Flags
plugin
public void pluginUpdateCheckComplete(java.util.List<edu.umd.cs.findbugs.updates.UpdateChecker$PluginUpdate>, );
descriptor: (Ljava/util/List;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.updates:Ljava/util/List;
1: aload 0
iload 2
putfield edu.umd.cs.findbugs.DetectorFactoryCollection.updatesForced:Z
2: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginUpdateListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.util.List int top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.updates.PluginUpdateListener
astore 3
start local 3 4: aload 3
aload 1
iload 2
invokeinterface edu.umd.cs.findbugs.updates.PluginUpdateListener.pluginUpdateCheckComplete:(Ljava/util/Collection;Z)V
5: goto 8
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.util.List int edu.umd.cs.findbugs.updates.PluginUpdateListener java.util.Iterator
StackMap stack: java.lang.Throwable
6: astore 5
start local 5 7: getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
ldc "Error during update check callback"
aload 5
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 5 end local 3 8: StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.util.List int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 10 1 newUpdates Ljava/util/List<Ledu/umd/cs/findbugs/updates/UpdateChecker$PluginUpdate;>;
0 10 2 force Z
4 8 3 listener Ledu/umd/cs/findbugs/updates/PluginUpdateListener;
7 8 5 e Ljava/lang/Throwable;
Exception table:
from to target type
4 5 6 Class java.lang.Throwable
Signature: (Ljava/util/List<Ledu/umd/cs/findbugs/updates/UpdateChecker$PluginUpdate;>;Z)V
MethodParameters:
Name Flags
newUpdates
force
public void addPluginUpdateListener(edu.umd.cs.findbugs.updates.PluginUpdateListener);
descriptor: (Ledu/umd/cs/findbugs/updates/PluginUpdateListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.pluginUpdateListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
pop
1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.updates:Ljava/util/List;
ifnull 4
2: aload 1
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.updates:Ljava/util/List;
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.updatesForced:Z
invokeinterface edu.umd.cs.findbugs.updates.PluginUpdateListener.pluginUpdateCheckComplete:(Ljava/util/Collection;Z)V
3: goto 6
StackMap locals:
StackMap stack:
4: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.updateChecker:Ledu/umd/cs/findbugs/updates/UpdateChecker;
invokevirtual edu.umd.cs.findbugs.updates.UpdateChecker.updateChecksGloballyDisabled:()Z
ifne 6
5: aload 0
iconst_0
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.checkForUpdates:(Z)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 7 1 listener Ledu/umd/cs/findbugs/updates/PluginUpdateListener;
MethodParameters:
Name Flags
listener
public edu.umd.cs.findbugs.util.FutureValue<java.util.Collection<edu.umd.cs.findbugs.updates.UpdateChecker$PluginUpdate>> getUpdates();
descriptor: ()Ledu/umd/cs/findbugs/util/FutureValue;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new edu.umd.cs.findbugs.util.FutureValue
dup
invokespecial edu.umd.cs.findbugs.util.FutureValue.<init>:()V
astore 1
start local 1 1: aload 0
new edu.umd.cs.findbugs.DetectorFactoryCollection$1
dup
aload 0
aload 1
invokespecial edu.umd.cs.findbugs.DetectorFactoryCollection$1.<init>:(Ledu/umd/cs/findbugs/DetectorFactoryCollection;Ledu/umd/cs/findbugs/util/FutureValue;)V
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.addPluginUpdateListener:(Ledu/umd/cs/findbugs/updates/PluginUpdateListener;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
1 3 1 results Ledu/umd/cs/findbugs/util/FutureValue<Ljava/util/Collection<Ledu/umd/cs/findbugs/updates/UpdateChecker$PluginUpdate;>;>;
Signature: ()Ledu/umd/cs/findbugs/util/FutureValue<Ljava/util/Collection<Ledu/umd/cs/findbugs/updates/UpdateChecker$PluginUpdate;>;>;
public java.util.Map<java.lang.String, edu.umd.cs.findbugs.cloud.CloudPlugin> getRegisteredClouds();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.registeredClouds:Ljava/util/Map;
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Map<Ljava/lang/String;Ledu/umd/cs/findbugs/cloud/CloudPlugin;>;
void registerCloud(edu.umd.cs.findbugs.cloud.CloudPlugin);
descriptor: (Ledu/umd/cs/findbugs/cloud/CloudPlugin;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "Registering "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual edu.umd.cs.findbugs.cloud.CloudPlugin.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.registeredClouds:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.cloud.CloudPlugin.getId:()Ljava/lang/String;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 3 1 cloudPlugin Ledu/umd/cs/findbugs/cloud/CloudPlugin;
MethodParameters:
Name Flags
cloudPlugin
void unRegisterCloud(edu.umd.cs.findbugs.cloud.CloudPlugin);
descriptor: (Ledu/umd/cs/findbugs/cloud/CloudPlugin;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic edu.umd.cs.findbugs.DetectorFactoryCollection.LOGGER:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "Unregistering "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual edu.umd.cs.findbugs.cloud.CloudPlugin.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.registeredClouds:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.cloud.CloudPlugin.getId:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 3 1 cloudPlugin Ledu/umd/cs/findbugs/cloud/CloudPlugin;
MethodParameters:
Name Flags
cloudPlugin
public boolean registerBugCategory(edu.umd.cs.findbugs.BugCategory);
descriptor: (Ledu/umd/cs/findbugs/BugCategory;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual edu.umd.cs.findbugs.BugCategory.getCategory:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
aload 2
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 5 1 bc Ledu/umd/cs/findbugs/BugCategory;
1 5 2 category Ljava/lang/String;
MethodParameters:
Name Flags
bc
protected boolean unRegisterBugCategory(edu.umd.cs.findbugs.BugCategory);
descriptor: (Ledu/umd/cs/findbugs/BugCategory;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual edu.umd.cs.findbugs.BugCategory.getCategory:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 3 1 bc Ledu/umd/cs/findbugs/BugCategory;
1 3 2 category Ljava/lang/String;
MethodParameters:
Name Flags
bc
public void registerBugPattern(edu.umd.cs.findbugs.BugPattern);
descriptor: (Ledu/umd/cs/findbugs/BugPattern;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugPatternMap:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.BugPattern.getType:()Ljava/lang/String;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 2 1 bugPattern Ledu/umd/cs/findbugs/BugPattern;
MethodParameters:
Name Flags
bugPattern
protected void unRegisterBugPattern(edu.umd.cs.findbugs.BugPattern);
descriptor: (Ledu/umd/cs/findbugs/BugPattern;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugPatternMap:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.BugPattern.getType:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 2 1 bugPattern Ledu/umd/cs/findbugs/BugPattern;
MethodParameters:
Name Flags
bugPattern
public java.util.Iterator<edu.umd.cs.findbugs.BugPattern> bugPatternIterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugPatternMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Iterator<Ledu/umd/cs/findbugs/BugPattern;>;
public java.util.Collection<edu.umd.cs.findbugs.BugPattern> getBugPatterns();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugPatternMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Collection<Ledu/umd/cs/findbugs/BugPattern;>;
public edu.umd.cs.findbugs.BugPattern lookupBugPattern(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/BugPattern;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugPatternMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugPattern
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 3 1 bugType Ljava/lang/String;
RuntimeVisibleAnnotations:
javax.annotation.CheckForNull()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.CheckForNull()
MethodParameters:
Name Flags
bugType
public void registerBugCode(edu.umd.cs.findbugs.BugCode);
descriptor: (Ledu/umd/cs/findbugs/BugCode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugCodeMap:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.BugCode.getAbbrev:()Ljava/lang/String;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 2 1 bugCode Ledu/umd/cs/findbugs/BugCode;
MethodParameters:
Name Flags
bugCode
protected void unRegisterBugCode(edu.umd.cs.findbugs.BugCode);
descriptor: (Ledu/umd/cs/findbugs/BugCode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugCodeMap:Ljava/util/Map;
aload 1
invokevirtual edu.umd.cs.findbugs.BugCode.getAbbrev:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 2 1 bugCode Ledu/umd/cs/findbugs/BugCode;
MethodParameters:
Name Flags
bugCode
public java.util.Collection<edu.umd.cs.findbugs.BugCode> getBugCodes();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugCodeMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Collection<Ledu/umd/cs/findbugs/BugCode;>;
public edu.umd.cs.findbugs.BugCode getBugCode(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/BugCode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual edu.umd.cs.findbugs.DetectorFactoryCollection.lookupBugCode:(Ljava/lang/String;)Ledu/umd/cs/findbugs/BugCode;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Error: missing bug code for key"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: edu.umd.cs.findbugs.BugCode
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 4 1 shortBugType Ljava/lang/String;
1 4 2 bugCode Ledu/umd/cs/findbugs/BugCode;
RuntimeVisibleAnnotations:
javax.annotation.Nonnull()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.Nonnull()
MethodParameters:
Name Flags
shortBugType
public edu.umd.cs.findbugs.BugCode lookupBugCode(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/BugCode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.bugCodeMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugCode
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 1 1 shortBugType Ljava/lang/String;
RuntimeVisibleAnnotations:
javax.annotation.CheckForNull()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.CheckForNull()
MethodParameters:
Name Flags
shortBugType
public edu.umd.cs.findbugs.BugCategory getBugCategory(java.lang.String);
descriptor: (Ljava/lang/String;)Ledu/umd/cs/findbugs/BugCategory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugCategory
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
0 1 1 category Ljava/lang/String;
MethodParameters:
Name Flags
category
public java.util.Collection<java.lang.String> getBugCategories();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 1: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: edu.umd.cs.findbugs.DetectorFactoryCollection java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast edu.umd.cs.findbugs.BugCategory
astore 2
start local 2 3: aload 2
invokevirtual edu.umd.cs.findbugs.BugCategory.isHidden:()Z
ifne 5
4: aload 1
aload 2
invokevirtual edu.umd.cs.findbugs.BugCategory.getCategory:()Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
1 7 1 result Ljava/util/ArrayList<Ljava/lang/String;>;
3 5 2 c Ledu/umd/cs/findbugs/BugCategory;
Signature: ()Ljava/util/Collection<Ljava/lang/String;>;
public java.util.Collection<edu.umd.cs.findbugs.BugCategory> getBugCategoryObjects();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.categoryDescriptionMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
Signature: ()Ljava/util/Collection<Ledu/umd/cs/findbugs/BugCategory;>;
public edu.umd.cs.findbugs.updates.UpdateChecker getUpdateChecker();
descriptor: ()Ledu/umd/cs/findbugs/updates/UpdateChecker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield edu.umd.cs.findbugs.DetectorFactoryCollection.updateChecker:Ledu/umd/cs/findbugs/updates/UpdateChecker;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ledu/umd/cs/findbugs/DetectorFactoryCollection;
}
SourceFile: "DetectorFactoryCollection.java"
NestMembers:
edu.umd.cs.findbugs.DetectorFactoryCollection$1
InnerClasses:
edu.umd.cs.findbugs.DetectorFactoryCollection$1
public PluginUpdate = edu.umd.cs.findbugs.updates.UpdateChecker$PluginUpdate of edu.umd.cs.findbugs.updates.UpdateChecker
public abstract Entry = java.util.Map$Entry of java.util.Map