Quarkus startup hangs after upgrade to version 2.11.x.Final
### Describe the bug

After upgrading our services one of the service isn't starting up anymore, at first even the build hangs. The other services are working correctly, but this one repository ([CoMPAS SCL Validator](https://github.com/com-pas/compas-scl-validator)) doesn't work anymore.

This repository is using a Library (RiseClipse) that's based on the Eclipse Framework and Eclipse OCL. To make it compile and run we are using the plugin 'tycho-eclipserun-plugin' to create a local maven mirror from a Eclipse P2 Site. Maybe this is causing the problem in the new version or the way the Eclipse Framework is working.

First the build stopped at the goal 'generate-code-tests' from the Quarkus plugin. after adding some configuration (skipSourceGeneration) to the plugin

```
<plugin>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-maven-plugin</artifactId>
  <version>${quarkus.platform.version}</version>
  <extensions>true</extensions>
  <executions>
    <execution>
      <goals>
        <goal>build</goal>
        <goal>generate-code</goal>
        <goal>generate-code-tests</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <skipSourceGeneration>true</skipSourceGeneration>
  </configuration>
</plugin>
```

The build continued but next hangs when trying to execute the HealthCheckTest where Quarkus is started and we first check if the server starts. In all situation the CPU is running at 100%, so something is happening.

### Expected behavior

Build runs correctly and application starts.

### Actual behavior

It look when the application tries to startup it comes in a loop, because the CPU stays at 100%.

### How to Reproduce?

The problem is that it only occurs in this specific repository ([CoMPAS SCL Validator](https://github.com/com-pas/compas-scl-validator)) after upgrading from the latest 2.10.x.Final to all version of 2.1.x.Final. 

And see the Additional information, there isn't much info to go for.

### Output of `uname -a` or `ver`

Linux ubuntu 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

### Output of `java -version`

OpenJDK 64-Bit Server VM (build 17.0.4+8-Ubuntu-122.04, mixed mode, sharing)

### GraalVM version (if different from Java)

-

### Quarkus version or git rev

2.11.3.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)

### Additional information

In this PR [#98](https://github.com/com-pas/compas-scl-validator/pull/98) of the project I tried some different changes to make it work and investigate if I could figure out what is going wrong.

When starting the application without executing the tests in development mode it stays running at 100% without any output.
```
[INFO] 
[INFO] --- quarkus-maven-plugin:2.11.3.Final:dev (default-cli) @ app ---
^C%                                                                                                                                                                                                                                     
```
I needed to cancel the command to stop it.

When setting the log level for test on debug this is the last logging that is shown
```
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "GET /com-pas/*/org/eclipse/jdt/org.eclipse.jdt.annotation/maven-metadata.xml HTTP/1.1[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "Cache-control: no-cache[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "Pragma: no-cache[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "User-Agent: Apache-Maven/3.8.6 (Java 17.0.4; Linux 5.15.0-46-generic)[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "Host: maven.pkg.github.com[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "Connection: Keep-Alive[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "Accept-Encoding: gzip,deflate[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "Authorization: Basic ZGxhYm9yZHVzOmdocF94SmFwcHZ3aDRYanc1RURwdDE0TUpBZjhkV0cyUHEzejBjTTA=[\\r][\\n]"
2022-08-30 11:06:21,224 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 >> "[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "HTTP/1.1 404 Not Found[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "access-control-allow-methods: GET, HEAD, OPTIONS[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "Access-Control-Allow-Origin: *[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "Content-Security-Policy: default-src 'none';[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "Content-Type: text/plain; charset=utf-8[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "Server: GitHub Registry[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "Strict-Transport-Security: max-age=31536000;[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "X-Content-Type-Options: nosniff[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "X-Frame-Options: DENY[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "X-XSS-Protection: 1; mode=block[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "Date: Tue, 30 Aug 2022 09:06:21 GMT[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "Content-Length: 143[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "X-GitHub-Request-Id: A99C:F9C0:62FE6:6950A:630DD30D[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "[\\r][\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.wire] (main) http-outgoing-0 << "unable to fetch maven-metadata for package : "maven package "org.eclipse.jdt.org.eclipse.jdt.annotation" does not exist under owner "com-pas""[\\n]"
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << HTTP/1.1 404 Not Found
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << access-control-allow-methods: GET, HEAD, OPTIONS
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << Access-Control-Allow-Origin: *
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << Content-Security-Policy: default-src 'none';
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << Content-Type: text/plain; charset=utf-8
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << Server: GitHub Registry
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << Strict-Transport-Security: max-age=31536000;
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << X-Content-Type-Options: nosniff
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << X-Frame-Options: DENY
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << X-XSS-Protection: 1; mode=block
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << Date: Tue, 30 Aug 2022 09:06:21 GMT
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << Content-Length: 143
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.headers] (main) http-outgoing-0 << X-GitHub-Request-Id: A99C:F9C0:62FE6:6950A:630DD30D
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.imp.exe.MainClientExec] (main) Connection can be kept alive indefinitely
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.imp.aut.HttpAuthenticator] (main) Authentication succeeded
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.imp.cli.TargetAuthenticationStrategy] (main) Caching 'basic' auth scheme for https://maven.pkg.github.com:443
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.imp.con.PoolingHttpClientConnectionManager] (main) Connection [id: 0][route: {s}->https://maven.pkg.github.com:443] can be kept alive indefinitely
2022-08-30 11:06:21,445 DEBUG [org.apa.htt.imp.con.DefaultManagedHttpClientConnection] (main) http-outgoing-0: set socket timeout to 0
2022-08-30 11:06:21,446 DEBUG [org.apa.htt.imp.con.PoolingHttpClientConnectionManager] (main) Connection released: [id: 0][route: {s}->https://maven.pkg.github.com:443][total available: 2; route allocated: 1 of 20; total allocated: 2 of 40]
2022-08-30 11:06:21,446 DEBUG [org.ecl.aet.int.imp.TrackingFileManager] (main) Writing tracking file /home/dlabordus/.m2/repository/org/eclipse/jdt/org.eclipse.jdt.annotation/resolver-status.properties
2022-08-30 11:06:21,747 DEBUG [org.ecl.aet.int.imp.DefaultRemoteRepositoryManager] (main) Using mirror maven-default-http-blocker (http://0.0.0.0/) for jboss-public-repository-group (http://repository.jboss.org/nexus/content/groups/public/).
2022-08-30 11:06:21,841 DEBUG [org.ecl.aet.int.imp.DefaultRemoteRepositoryManager] (main) Using mirror maven-default-http-blocker (http://0.0.0.0/) for apache.snapshots (http://repository.apache.org/snapshots).
2022-08-30 11:06:21,856 DEBUG [org.ecl.aet.int.imp.DefaultRemoteRepositoryManager] (main) Using mirror maven-default-http-blocker (http://0.0.0.0/) for ow2-snapshot (http://repository.ow2.org/nexus/content/repositories/snapshots).
^C%                                                                                                                                                                                                                                     
```
And then the CPU is again at 100% and I need to cancel the command.
diff --git a/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyTreeResolver.java b/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyTreeResolver.java
index e9e8c6d3d2a..fbae3d08f32 100644
--- a/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyTreeResolver.java
+++ b/independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyTreeResolver.java
@@ -27,6 +27,7 @@
 import java.util.Deque;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.IdentityHashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -282,28 +283,23 @@ private DependencyNode resolveRuntimeDeps(CollectRequest request) throws AppMode
                 @Override
                 public DependencyNode transformGraph(DependencyNode node, DependencyGraphTransformationContext context)
                         throws RepositoryException {
-                    final Set<ArtifactKey> visited = new HashSet<>();
+                    final Map<DependencyNode, DependencyNode> visited = new IdentityHashMap<>();
                     for (DependencyNode c : node.getChildren()) {
                         walk(c, visited);
                     }
                     return resolver.getSession().getDependencyGraphTransformer().transformGraph(node, context);
                 }
 
-                private void walk(DependencyNode node, Set<ArtifactKey> visited) {
-                    if (node.getChildren().isEmpty()) {
+                private void walk(DependencyNode node, Map<DependencyNode, DependencyNode> visited) {
+                    if (visited.put(node, node) != null || node.getChildren().isEmpty()) {
                         return;
                     }
                     final Set<ArtifactKey> deps = artifactDeps
                             .computeIfAbsent(DependencyUtils.getCoords(node.getArtifact()),
                                     k -> new HashSet<>(node.getChildren().size()));
                     for (DependencyNode c : node.getChildren()) {
-                        final ArtifactKey key = getKey(c.getArtifact());
-                        if (!visited.add(key)) {
-                            continue;
-                        }
-                        deps.add(key);
+                        deps.add(getKey(c.getArtifact()));
                         walk(c, visited);
-                        visited.remove(key);
                     }
                 }
             });
['independent-projects/bootstrap/maven-resolver/src/main/java/io/quarkus/bootstrap/resolver/maven/ApplicationDependencyTreeResolver.java']