diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/DefaultRemoteRepositoryFilterManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/DefaultRemoteRepositoryFilterManager.java index f6070e91b..919d57146 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/DefaultRemoteRepositoryFilterManager.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/DefaultRemoteRepositoryFilterManager.java @@ -69,7 +69,9 @@ public DefaultRemoteRepositoryFilterManager(Map { + // use session specific key to distinguish between "derived" sessions + String instanceSpecificKey = INSTANCE_KEY + "." + session.hashCode(); + return (RemoteRepositoryFilter) session.getData().computeIfAbsent(instanceSpecificKey, () -> { HashMap filters = new HashMap<>(); for (Map.Entry entry : sources.entrySet()) { RemoteRepositoryFilter filter = entry.getValue().getRemoteRepositoryFilter(session); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/RemoteRepositoryFilterSourceSupport.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/RemoteRepositoryFilterSourceSupport.java index 42003ddf8..04c54bed0 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/RemoteRepositoryFilterSourceSupport.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/filter/RemoteRepositoryFilterSourceSupport.java @@ -73,7 +73,8 @@ protected String configPropKey(String name) { * Default is {@code false}. */ protected boolean isEnabled(RepositorySystemSession session) { - return ConfigUtils.getBoolean(session, false, CONFIG_PROP_PREFIX + this.name); + return ConfigUtils.getBoolean(session, false, CONFIG_PROP_PREFIX + this.name) + && !ConfigUtils.getBoolean(session, false, CONFIG_PROP_PREFIX + this.name + ".skipped"); } /**