Add more external nullable annotations for libs
diff --git a/eea/java/lang/Class.eea b/eea/java/lang/Class.eea
index ce7515f..0cbc532 100644
--- a/eea/java/lang/Class.eea
+++ b/eea/java/lang/Class.eea
@@ -1,7 +1,55 @@
 class java/lang/Class
 forName
  (Ljava/lang/String;)Ljava/lang/Class<*>;
- (Ljava/lang/String;)L1java/lang/Class<*>;
+ (L1java/lang/String;)L1java/lang/Class<*>;
+forName
+ (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class<*>;
+ (L1java/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class<*>;
+getAnnotatedInterfaces
+ ()[Ljava/lang/reflect/AnnotatedType;
+ ()[1L1java/lang/reflect/AnnotatedType;
+getAnnotatedSuperclass
+ ()Ljava/lang/reflect/AnnotatedType;
+ ()L0java/lang/reflect/AnnotatedType;
+getCanonicalName
+ ()Ljava/lang/String;
+ ()L0java/lang/String;
+getClassLoader
+ ()Ljava/lang/ClassLoader;
+ ()L0java/lang/ClassLoader;
+getClasses
+ ()[Ljava/lang/Class<*>;
+ ()[Ljava/lang/Class<*>;
+getGenericSuperclass
+ ()Ljava/lang/reflect/Type;
+ ()L0java/lang/reflect/Type;
+getName
+ ()Ljava/lang/String;
+ ()L1java/lang/String;
+getPackage
+ ()Ljava/lang/Package;
+ ()L0java/lang/Package;
+getSimpleBinaryName
+ ()Ljava/lang/String;
+ ()Ljava/lang/String;
 getSimpleName
  ()Ljava/lang/String;
  ()L1java/lang/String;
+getTypeName
+ ()Ljava/lang/String;
+ ()L1java/lang/String;
+isAssignableFrom
+ (Ljava/lang/Class<*>;)Z
+ (L1java/lang/Class<*>;)Z
+isInstance
+ (Ljava/lang/Object;)Z
+ (L0java/lang/Object;)Z
+newInstance
+ ()TT;
+ ()T1T;
+toGenericString
+ ()Ljava/lang/String;
+ ()L1java/lang/String;
+toString
+ ()Ljava/lang/String;
+ ()L1java/lang/String;
diff --git a/eea/java/lang/Comparable.eea b/eea/java/lang/Comparable.eea
new file mode 100644
index 0000000..01b1c2f
--- /dev/null
+++ b/eea/java/lang/Comparable.eea
@@ -0,0 +1,4 @@
+class java/lang/Comparable
+compareTo
+ (TT;)I
+ (T1T;)I
diff --git a/eea/java/lang/ProcessBuilder.eea b/eea/java/lang/ProcessBuilder.eea
index c579cd3..3ab648d 100644
--- a/eea/java/lang/ProcessBuilder.eea
+++ b/eea/java/lang/ProcessBuilder.eea
@@ -1,4 +1,61 @@
 class java/lang/ProcessBuilder
+<init>
+ (Ljava/util/List<Ljava/lang/String;>;)V
+ (L1java/util/List<L1java/lang/String;>;)V
+<init>
+ ([Ljava/lang/String;)V
+ ([L1java/lang/String;)V
+command
+ ()Ljava/util/List<Ljava/lang/String;>;
+ ()L1java/util/List<L1java/lang/String;>;
+command
+ (Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/ProcessBuilder;
+ (L1java/util/List<L1java/lang/String;>;)L1java/lang/ProcessBuilder;
+command
+ ([Ljava/lang/String;)Ljava/lang/ProcessBuilder;
+ ([L1java/lang/String;)L1java/lang/ProcessBuilder;
+directory
+ ()Ljava/io/File;
+ ()L0java/io/File;
+directory
+ (Ljava/io/File;)Ljava/lang/ProcessBuilder;
+ (L0java/io/File;)L1java/lang/ProcessBuilder;
 environment
  ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
  ()L1java/util/Map<L1java/lang/String;Ljava/lang/String;>;
+inheritIO
+ ()Ljava/lang/ProcessBuilder;
+ ()L1java/lang/ProcessBuilder;
+redirectError
+ ()Ljava/lang/ProcessBuilder$Redirect;
+ ()L1java/lang/ProcessBuilder$Redirect;
+redirectError
+ (Ljava/io/File;)Ljava/lang/ProcessBuilder;
+ (L1java/io/File;)L1java/lang/ProcessBuilder;
+redirectError
+ (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
+ (L1java/lang/ProcessBuilder$Redirect;)L1java/lang/ProcessBuilder;
+redirectErrorStream
+ (Z)Ljava/lang/ProcessBuilder;
+ (Z)L1java/lang/ProcessBuilder;
+redirectInput
+ ()Ljava/lang/ProcessBuilder$Redirect;
+ ()L1java/lang/ProcessBuilder$Redirect;
+redirectInput
+ (Ljava/io/File;)Ljava/lang/ProcessBuilder;
+ (L1java/io/File;)L1java/lang/ProcessBuilder;
+redirectInput
+ (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
+ (L1java/lang/ProcessBuilder$Redirect;)L1java/lang/ProcessBuilder;
+redirectOutput
+ ()Ljava/lang/ProcessBuilder$Redirect;
+ ()L1java/lang/ProcessBuilder$Redirect;
+redirectOutput
+ (Ljava/io/File;)Ljava/lang/ProcessBuilder;
+ (L1java/io/File;)L1java/lang/ProcessBuilder;
+redirectOutput
+ (Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
+ (L1java/lang/ProcessBuilder$Redirect;)L1java/lang/ProcessBuilder;
+start
+ ()Ljava/lang/Process;
+ ()L1java/lang/Process;
diff --git a/eea/java/rmi/server/UnicastRemoteObject.eea b/eea/java/rmi/server/UnicastRemoteObject.eea
new file mode 100644
index 0000000..dd33af8
--- /dev/null
+++ b/eea/java/rmi/server/UnicastRemoteObject.eea
@@ -0,0 +1,10 @@
+class java/rmi/server/UnicastRemoteObject
+exportObject
+ (Ljava/rmi/Remote;I)Ljava/rmi/Remote;
+ (L1java/rmi/Remote;I)L1java/rmi/Remote;
+exportObject
+ (Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/Remote;
+ (L1java/rmi/Remote;IL0java/rmi/server/RMIClientSocketFactory;L0java/rmi/server/RMIServerSocketFactory;)L1java/rmi/Remote;
+unexportObject
+ (Ljava/rmi/Remote;Z)Z
+ (L1java/rmi/Remote;Z)Z
diff --git a/eea/java/util/Hashtable.eea b/eea/java/util/Hashtable.eea
new file mode 100644
index 0000000..6387788
--- /dev/null
+++ b/eea/java/util/Hashtable.eea
@@ -0,0 +1,4 @@
+class java/util/Hashtable
+entrySet
+ ()Ljava/util/Set<Ljava/util/Map$Entry<TK;TV;>;>;
+ ()L1java/util/Set<L1java/util/Map$Entry<TK;TV;>;>;
diff --git a/eea/java/util/concurrent/Executors.eea b/eea/java/util/concurrent/Executors.eea
index c2e2854..07707ce 100644
--- a/eea/java/util/concurrent/Executors.eea
+++ b/eea/java/util/concurrent/Executors.eea
@@ -5,18 +5,30 @@
 newCachedThreadPool
  (Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
  (L1java/util/concurrent/ThreadFactory;)L1java/util/concurrent/ExecutorService;
+newFixedThreadPool
+ (I)Ljava/util/concurrent/ExecutorService;
+ (I)L1java/util/concurrent/ExecutorService;
 newScheduledThreadPool
  (I)Ljava/util/concurrent/ScheduledExecutorService;
  (I)L1java/util/concurrent/ScheduledExecutorService;
 newScheduledThreadPool
  (ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
  (IL1java/util/concurrent/ThreadFactory;)L1java/util/concurrent/ScheduledExecutorService;
+newSingleThreadExecutor
+ ()Ljava/util/concurrent/ExecutorService;
+ ()L1java/util/concurrent/ExecutorService;
 newSingleThreadScheduledExecutor
  ()Ljava/util/concurrent/ScheduledExecutorService;
  ()L1java/util/concurrent/ScheduledExecutorService;
 newSingleThreadScheduledExecutor
  (Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
  (L1java/util/concurrent/ThreadFactory;)L1java/util/concurrent/ScheduledExecutorService;
+newWorkStealingPool
+ ()Ljava/util/concurrent/ExecutorService;
+ ()L1java/util/concurrent/ExecutorService;
+newWorkStealingPool
+ (I)Ljava/util/concurrent/ExecutorService;
+ (I)L1java/util/concurrent/ExecutorService;
 privilegedThreadFactory
  ()Ljava/util/concurrent/ThreadFactory;
  ()L1java/util/concurrent/ThreadFactory;
diff --git a/eea/org/apache/commons/pool2/PooledObject.eea b/eea/org/apache/commons/pool2/PooledObject.eea
new file mode 100644
index 0000000..1942fc0
--- /dev/null
+++ b/eea/org/apache/commons/pool2/PooledObject.eea
@@ -0,0 +1,22 @@
+class org/apache/commons/pool2/PooledObject
+compareTo
+ (Lorg/apache/commons/pool2/PooledObject<TT;>;)I
+ (L1org/apache/commons/pool2/PooledObject<TT;>;)I
+endEvictionTest
+ (Ljava/util/Deque<Lorg/apache/commons/pool2/PooledObject<TT;>;>;)Z
+ (L1java/util/Deque<L1org/apache/commons/pool2/PooledObject<TT;>;>;)Z
+equals
+ (Ljava/lang/Object;)Z
+ (L0java/lang/Object;)Z
+getObject
+ ()TT;
+ ()T1T;
+getState
+ ()Lorg/apache/commons/pool2/PooledObjectState;
+ ()L1org/apache/commons/pool2/PooledObjectState;
+printStackTrace
+ (Ljava/io/PrintWriter;)V
+ (L1java/io/PrintWriter;)V
+toString
+ ()Ljava/lang/String;
+ ()L1java/lang/String;
diff --git a/eea/org/apache/commons/pool2/PooledObjectFactory.eea b/eea/org/apache/commons/pool2/PooledObjectFactory.eea
new file mode 100644
index 0000000..61df85b
--- /dev/null
+++ b/eea/org/apache/commons/pool2/PooledObjectFactory.eea
@@ -0,0 +1,16 @@
+class org/apache/commons/pool2/PooledObjectFactory
+activateObject
+ (Lorg/apache/commons/pool2/PooledObject<TT;>;)V
+ (L1org/apache/commons/pool2/PooledObject<TT;>;)V
+destroyObject
+ (Lorg/apache/commons/pool2/PooledObject<TT;>;)V
+ (L1org/apache/commons/pool2/PooledObject<TT;>;)V
+makeObject
+ ()Lorg/apache/commons/pool2/PooledObject<TT;>;
+ ()L1org/apache/commons/pool2/PooledObject<TT;>;
+passivateObject
+ (Lorg/apache/commons/pool2/PooledObject<TT;>;)V
+ (L1org/apache/commons/pool2/PooledObject<TT;>;)V
+validateObject
+ (Lorg/apache/commons/pool2/PooledObject<TT;>;)Z
+ (L1org/apache/commons/pool2/PooledObject<TT;>;)Z
diff --git a/eea/org/apache/commons/pool2/impl/DefaultEvictionPolicy.eea b/eea/org/apache/commons/pool2/impl/DefaultEvictionPolicy.eea
new file mode 100644
index 0000000..9cd32f3
--- /dev/null
+++ b/eea/org/apache/commons/pool2/impl/DefaultEvictionPolicy.eea
@@ -0,0 +1,4 @@
+class org/apache/commons/pool2/impl/DefaultEvictionPolicy
+evict
+ (Lorg/apache/commons/pool2/impl/EvictionConfig;Lorg/apache/commons/pool2/PooledObject<TT;>;I)Z
+ (L1org/apache/commons/pool2/impl/EvictionConfig;L1org/apache/commons/pool2/PooledObject<TT;>;I)Z
diff --git a/eea/org/apache/commons/pool2/impl/EvictionPolicy.eea b/eea/org/apache/commons/pool2/impl/EvictionPolicy.eea
new file mode 100644
index 0000000..3c91f64
--- /dev/null
+++ b/eea/org/apache/commons/pool2/impl/EvictionPolicy.eea
@@ -0,0 +1,4 @@
+class org/apache/commons/pool2/impl/EvictionPolicy
+evict
+ (Lorg/apache/commons/pool2/impl/EvictionConfig;Lorg/apache/commons/pool2/PooledObject<TT;>;I)Z
+ (L1org/apache/commons/pool2/impl/EvictionConfig;L1org/apache/commons/pool2/PooledObject<TT;>;I)Z
diff --git a/eea/org/apache/commons/pool2/impl/GenericObjectPool.eea b/eea/org/apache/commons/pool2/impl/GenericObjectPool.eea
new file mode 100644
index 0000000..7d902d6
--- /dev/null
+++ b/eea/org/apache/commons/pool2/impl/GenericObjectPool.eea
@@ -0,0 +1,4 @@
+class org/apache/commons/pool2/impl/GenericObjectPool
+borrowObject
+ ()TT;
+ ()T1T;