This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
The following commit(s) were added to refs/heads/master by this push:
new 5b6c319a [MRESOLVER-278] Session close and onClose hooks fix (#207)
5b6c319a is described below
commit 5b6c319ad5dc9d11cf3f0d062bb07dacd63f47d0
Author: Tamas Cservenak <[email protected]>
AuthorDate: Wed Oct 26 14:33:36 2022 +0200
[MRESOLVER-278] Session close and onClose hooks fix (#207)
There are valid cases in Maven when interaction with
resolver (that would "lazily" init SyncContext) happens
way late, when session is already done readOnly.
Fix: adding onCloseHandler should NOT be affected by
readOnly state of session, as it merely means it's members
like LRM, etc are "fixed", but session data etc are all
still mutable.
This change makes all Maven ITs pass with this resolver.
---
.../java/org/eclipse/aether/DefaultRepositorySystemSession.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git
a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
index 4450487f..7ed9313a 100644
---
a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
+++
b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
@@ -816,9 +816,9 @@ public final class DefaultRepositorySystemSession
{
throw new IllegalStateException( "repository system session is
read-only" );
}
- if ( isClosed() )
+ if ( closed.get() )
{
- throw new IllegalStateException( "repository system session is
closed" );
+ throw new IllegalStateException( "repository system session is
already closed" );
}
}
@@ -894,8 +894,11 @@ public final class DefaultRepositorySystemSession
@Override
public void addOnCloseHandler( Consumer<RepositorySystemSession> handler )
{
- verifyStateForMutation();
requireNonNull( handler, "handler cannot be null" );
+ if ( closed.get() )
+ {
+ throw new IllegalStateException( "repository system session is
already closed" );
+ }
onCloseHandlers.add( 0, handler );
}