[
https://issues.apache.org/jira/browse/MRESOLVER-349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17708800#comment-17708800
]
ASF GitHub Bot commented on MRESOLVER-349:
------------------------------------------
michael-o commented on code in PR #276:
URL: https://github.com/apache/maven-resolver/pull/276#discussion_r1158323839
##########
maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/synccontext/named/NamedLockFactoryAdapter.java:
##########
@@ -130,47 +151,78 @@ private TimeUnit getTimeUnit(final
RepositorySystemSession session) {
return TimeUnit.valueOf(ConfigUtils.getString(session,
DEFAULT_TIME_UNIT.name(), TIME_UNIT_KEY));
}
+ private int getRetry(final RepositorySystemSession session) {
+ return ConfigUtils.getInteger(session, DEFAULT_RETRY, RETRY_KEY);
+ }
+
+ private long getRetryWait(final RepositorySystemSession session) {
+ return ConfigUtils.getLong(session, DEFAULT_RETRY_WAIT,
RETRY_WAIT_KEY);
+ }
+
@Override
public void acquire(Collection<? extends Artifact> artifacts,
Collection<? extends Metadata> metadatas) {
Collection<String> keys = lockNaming.nameLocks(session, artifacts,
metadatas);
if (keys.isEmpty()) {
return;
}
- LOGGER.trace("Need {} {} lock(s) for {}", keys.size(), shared ?
"read" : "write", keys);
- int acquiredLockCount = 0;
- for (String key : keys) {
- NamedLock namedLock = namedLockFactory.getLock(key);
+ final int attempts = retry + 1;
+ final ArrayList<IllegalStateException> illegalStateExceptions =
new ArrayList<>();
+ for (int attempt = 1; attempt <= attempts; attempt++) {
Review Comment:
This looks much better now!
> Adapter when locking should "give up and retry"
> -----------------------------------------------
>
> Key: MRESOLVER-349
> URL: https://issues.apache.org/jira/browse/MRESOLVER-349
> Project: Maven Resolver
> Issue Type: Task
> Components: Resolver
> Affects Versions: 1.9.7
> Reporter: Tamas Cservenak
> Assignee: Tamas Cservenak
> Priority: Major
> Fix For: 1.9.8
>
>
> Somewhat in relation to MRESOLVER-346, but sync context (the named lock
> adapter to be more specific) instead of holding as many it could locked so
> far (and cause lock timeouts), should simply give up all and retry.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)