Add more external nullable annotations for libs
diff --git a/eea/java/net/URLDecoder.eea b/eea/java/net/URLDecoder.eea
new file mode 100644
index 0000000..3cec300
--- /dev/null
+++ b/eea/java/net/URLDecoder.eea
@@ -0,0 +1,4 @@
+class java/net/URLDecoder
+decode
+ (Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
+ (L1java/lang/String;L1java/nio/charset/Charset;)L1java/lang/String;
diff --git a/eea/java/time/Duration.eea b/eea/java/time/Duration.eea
new file mode 100644
index 0000000..864b924
--- /dev/null
+++ b/eea/java/time/Duration.eea
@@ -0,0 +1,130 @@
+class java/time/Duration
+ZERO
+ Ljava/time/Duration;
+ L1java/time/Duration;
+abs
+ ()Ljava/time/Duration;
+ ()L1java/time/Duration;
+addTo
+ (Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+ (L1java/time/temporal/Temporal;)L1java/time/temporal/Temporal;
+between
+ (Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)Ljava/time/Duration;
+ (L1java/time/temporal/Temporal;L1java/time/temporal/Temporal;)L1java/time/Duration;
+compareTo
+ (Ljava/time/Duration;)I
+ (L1java/time/Duration;)I
+dividedBy
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+dividedBy
+ (Ljava/time/Duration;)J
+ (L1java/time/Duration;)J
+equals
+ (Ljava/lang/Object;)Z
+ (L0java/lang/Object;)Z
+from
+ (Ljava/time/temporal/TemporalAmount;)Ljava/time/Duration;
+ (L1java/time/temporal/TemporalAmount;)L1java/time/Duration;
+get
+ (Ljava/time/temporal/TemporalUnit;)J
+ (L1java/time/temporal/TemporalUnit;)J
+getUnits
+ ()Ljava/util/List<Ljava/time/temporal/TemporalUnit;>;
+ ()L1java/util/List<L1java/time/temporal/TemporalUnit;>;
+minus
+ (JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
+ (JL1java/time/temporal/TemporalUnit;)L1java/time/Duration;
+minus
+ (Ljava/time/Duration;)Ljava/time/Duration;
+ (L1java/time/Duration;)L1java/time/Duration;
+minusDays
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+minusHours
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+minusMillis
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+minusMinutes
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+minusNanos
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+minusSeconds
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+multipliedBy
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+negated
+ ()Ljava/time/Duration;
+ ()L1java/time/Duration;
+of
+ (JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
+ (JL1java/time/temporal/TemporalUnit;)L1java/time/Duration;
+ofDays
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+ofHours
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+ofMillis
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+ofMinutes
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+ofNanos
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+ofSeconds
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+ofSeconds
+ (JJ)Ljava/time/Duration;
+ (JJ)L1java/time/Duration;
+parse
+ (Ljava/lang/CharSequence;)Ljava/time/Duration;
+ (L1java/lang/CharSequence;)L1java/time/Duration;
+plus
+ (JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
+ (JL1java/time/temporal/TemporalUnit;)L1java/time/Duration;
+plus
+ (Ljava/time/Duration;)Ljava/time/Duration;
+ (L1java/time/Duration;)L1java/time/Duration;
+plusDays
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+plusHours
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+plusMillis
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+plusMinutes
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+plusNanos
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+plusSeconds
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
+subtractFrom
+ (Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+ (L1java/time/temporal/Temporal;)L1java/time/temporal/Temporal;
+toString
+ ()Ljava/lang/String;
+ ()L1java/lang/String;
+truncatedTo
+ (Ljava/time/temporal/TemporalUnit;)Ljava/time/Duration;
+ (L1java/time/temporal/TemporalUnit;)L1java/time/Duration;
+withNanos
+ (I)Ljava/time/Duration;
+ (I)L1java/time/Duration;
+withSeconds
+ (J)Ljava/time/Duration;
+ (J)L1java/time/Duration;
diff --git a/eea/java/time/Instant.eea b/eea/java/time/Instant.eea
new file mode 100644
index 0000000..cc235fb
--- /dev/null
+++ b/eea/java/time/Instant.eea
@@ -0,0 +1,118 @@
+class java/time/Instant
+EPOCH
+ Ljava/time/Instant;
+ L1java/time/Instant;
+MAX
+ Ljava/time/Instant;
+ L1java/time/Instant;
+MIN
+ Ljava/time/Instant;
+ L1java/time/Instant;
+adjustInto
+ (Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+ (L1java/time/temporal/Temporal;)L1java/time/temporal/Temporal;
+atOffset
+ (Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;
+ (L1java/time/ZoneOffset;)L1java/time/OffsetDateTime;
+atZone
+ (Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+ (L1java/time/ZoneId;)L1java/time/ZonedDateTime;
+compareTo
+ (Ljava/time/Instant;)I
+ (L1java/time/Instant;)I
+equals
+ (Ljava/lang/Object;)Z
+ (L0java/lang/Object;)Z
+from
+ (Ljava/time/temporal/TemporalAccessor;)Ljava/time/Instant;
+ (L1java/time/temporal/TemporalAccessor;)L1java/time/Instant;
+get
+ (Ljava/time/temporal/TemporalField;)I
+ (L1java/time/temporal/TemporalField;)I
+getLong
+ (Ljava/time/temporal/TemporalField;)J
+ (L1java/time/temporal/TemporalField;)J
+isAfter
+ (Ljava/time/Instant;)Z
+ (L1java/time/Instant;)Z
+isBefore
+ (Ljava/time/Instant;)Z
+ (L1java/time/Instant;)Z
+isSupported
+ (Ljava/time/temporal/TemporalField;)Z
+ (L0java/time/temporal/TemporalField;)Z
+isSupported
+ (Ljava/time/temporal/TemporalUnit;)Z
+ (L0java/time/temporal/TemporalUnit;)Z
+minus
+ (JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
+ (JL1java/time/temporal/TemporalUnit;)L1java/time/Instant;
+minus
+ (Ljava/time/temporal/TemporalAmount;)Ljava/time/Instant;
+ (L1java/time/temporal/TemporalAmount;)L1java/time/Instant;
+minusMillis
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+minusNanos
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+minusSeconds
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+now
+ ()Ljava/time/Instant;
+ ()L1java/time/Instant;
+now
+ (Ljava/time/Clock;)Ljava/time/Instant;
+ (L1java/time/Clock;)L1java/time/Instant;
+ofEpochMilli
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+ofEpochSecond
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+ofEpochSecond
+ (JJ)Ljava/time/Instant;
+ (JJ)L1java/time/Instant;
+parse
+ (Ljava/lang/CharSequence;)Ljava/time/Instant;
+ (L1java/lang/CharSequence;)L1java/time/Instant;
+plus
+ (JJ)Ljava/time/Instant;
+ (JJ)L1java/time/Instant;
+plus
+ (JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
+ (JL1java/time/temporal/TemporalUnit;)L1java/time/Instant;
+plus
+ (Ljava/time/temporal/TemporalAmount;)Ljava/time/Instant;
+ (L1java/time/temporal/TemporalAmount;)L1java/time/Instant;
+plusMillis
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+plusNanos
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+plusSeconds
+ (J)Ljava/time/Instant;
+ (J)L1java/time/Instant;
+query
+ <R:Ljava/lang/Object;>(Ljava/time/temporal/TemporalQuery<TR;>;)TR;
+ <R:Ljava/lang/Object;>(L1java/time/temporal/TemporalQuery<TR;>;)TR;
+range
+ (Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
+ (L1java/time/temporal/TemporalField;)L1java/time/temporal/ValueRange;
+toString
+ ()Ljava/lang/String;
+ ()L1java/lang/String;
+truncatedTo
+ (Ljava/time/temporal/TemporalUnit;)Ljava/time/Instant;
+ (L1java/time/temporal/TemporalUnit;)L1java/time/Instant;
+until
+ (Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
+ (L1java/time/temporal/Temporal;L1java/time/temporal/TemporalUnit;)J
+with
+ (Ljava/time/temporal/TemporalAdjuster;)Ljava/time/Instant;
+ (L1java/time/temporal/TemporalAdjuster;)L1java/time/Instant;
+with
+ (Ljava/time/temporal/TemporalField;J)Ljava/time/Instant;
+ (L1java/time/temporal/TemporalField;J)L1java/time/Instant;
diff --git a/eea/java/util/Date.eea b/eea/java/util/Date.eea
index e913be7..6f6c577 100644
--- a/eea/java/util/Date.eea
+++ b/eea/java/util/Date.eea
@@ -1,4 +1,7 @@
 class java/util/Date
+from
+ (Ljava/time/Instant;)Ljava/util/Date;
+ (L1java/time/Instant;)L1java/util/Date;
 toInstant
  ()Ljava/time/Instant;
  ()L1java/time/Instant;
diff --git a/eea/org/apache/commons/pool2/impl/BaseObjectPoolConfig.eea b/eea/org/apache/commons/pool2/impl/BaseObjectPoolConfig.eea
new file mode 100644
index 0000000..770f1a4
--- /dev/null
+++ b/eea/org/apache/commons/pool2/impl/BaseObjectPoolConfig.eea
@@ -0,0 +1,13 @@
+class org/apache/commons/pool2/impl/BaseObjectPoolConfig
+setEvictorShutdownTimeout
+ (Ljava/time/Duration;)V
+ (L1java/time/Duration;)V
+setMaxWait
+ (Ljava/time/Duration;)V
+ (L1java/time/Duration;)V
+setSoftMinEvictableIdleTime
+ (Ljava/time/Duration;)V
+ (L1java/time/Duration;)V
+setTimeBetweenEvictionRuns
+ (Ljava/time/Duration;)V
+ (L1java/time/Duration;)V
diff --git a/eea/org/apache/commons/pool2/impl/DefaultPooledObject.eea b/eea/org/apache/commons/pool2/impl/DefaultPooledObject.eea
index 1e6189b..48835cc 100644
--- a/eea/org/apache/commons/pool2/impl/DefaultPooledObject.eea
+++ b/eea/org/apache/commons/pool2/impl/DefaultPooledObject.eea
@@ -5,6 +5,12 @@
 endEvictionTest
  (Ljava/util/Deque<Lorg/apache/commons/pool2/PooledObject<TT;>;>;)Z
  (L1java/util/Deque<L1org/apache/commons/pool2/PooledObject<TT;>;>;)Z
+getCreateInstant
+ ()Ljava/time/Instant;
+ ()L1java/time/Instant;
+getIdleDuration
+ ()Ljava/time/Duration;
+ ()L1java/time/Duration;
 getObject
  ()TT;
  ()T1T;