Skip to content

Commit 4f035db

Browse files
committed
add version matching
1 parent 784e6e1 commit 4f035db

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/main/java/de/thetaphi/forbiddenapis/Signatures.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.LinkedHashSet;
3737
import java.util.Locale;
3838
import java.util.Map;
39+
import java.util.NoSuchElementException;
3940
import java.util.Set;
4041
import java.util.SortedSet;
4142
import java.util.TreeSet;
@@ -306,6 +307,18 @@ private void addBundledSignatures(String name, String jdkTargetVersion, boolean
306307
name = name + "-" + jdkTargetVersion;
307308
name = fixTargetVersion(name);
308309
}
310+
// downgrade the version number to next lower signatures file:
311+
final Matcher matcher;
312+
if (!BUNDLED_SIGNATURES_NAMES.contains(name) && (matcher = ENDS_WITH_VERSION_PATTERN.matcher(name)).matches()) try {
313+
final String s = BUNDLED_SIGNATURES_NAMES.headSet(name).last();
314+
if (s.startsWith(matcher.group(1)) && ENDS_WITH_VERSION_PATTERN.matcher(s).matches()) {
315+
logger.warn("Bundled signatures '" + name + "' not found, choosing next lower version '" + s + "'.");
316+
name = s;
317+
}
318+
} catch (NoSuchElementException nse) {
319+
throw new FileNotFoundException("Bundled signatures resource not found: " + name);
320+
}
321+
// check name again:
309322
if (!BUNDLED_SIGNATURES_NAMES.contains(name)) {
310323
throw new FileNotFoundException("Bundled signatures resource not found: " + name);
311324
}

0 commit comments

Comments
 (0)