anon-iclr-submission/benchname-bug-localization huggingface dataset:
Repository: quarkusio/quarkus
Issue: Update quarkus.quartz.datasource documentation

### Describe the bug

The documentation https://github.com/quarkusio/quarkus/blob/main/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzBuildTimeConfig.java#L46 is referring to `db` store which has long been deprecated and removed. 
We should update the javadoc to refer to `jdbc-tx` or `jdbc-cmt` job stores instead.

### Expected behavior

There is no mention of `db` store in the Quarkus documentation

### Actual behavior

`db` store is still mentioned

### How to Reproduce?

Go to https://quarkus.io/guides/quartz#quarkus-quartz_quarkus.quartz.datasource and observe the `db` in the description.

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

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

_No response_

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

_No response_

### Additional information

_No response_

Changed files:
extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzBuildTimeConfig.java

diff --git a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzBuildTimeConfig.java b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzBuildTimeConfig.java
index cda45a3e349..380c283e4fe 100644
--- a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzBuildTimeConfig.java
+++ b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzBuildTimeConfig.java
@@ -43,7 +43,7 @@ public class QuartzBuildTimeConfig {
     /**
      * The name of the datasource to use.
      * <p>
-     * Optionally needed when using the `db` store type.
+     * Optionally needed when using the `jdbc-tx` or `jdbc-cmt` store types.
      * If not specified, defaults to using the default datasource.
      */
     @ConfigItem(name = "datasource")
Repository: quarkusio/quarkus
Issue: Fix comparison in ensureProjectCoords method in AppModelGradleResolver class

### Describe the bug

In the method ensureProjectCoords, appArtifact.getGroupId() and appArtifact.getVersion() are compared against themselves in an if statement, when they should be compared to project.getGroup() and project.getVersion() respectively.

```
if (project.getName().equals(appArtifact.getArtifactId())
        && appArtifact.getGroupId().equals(appArtifact.getGroupId())
        && appArtifact.getVersion().equals(appArtifact.getVersion())) {
    return;
}
```

### Expected behavior

_No response_

### Actual behavior

_No response_

### How to Reproduce?

_No response_

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

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

_No response_

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

_No response_

### Additional information

_No response_

Changed files:
devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/AppModelGradleResolver.java

diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/AppModelGradleResolver.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/AppModelGradleResolver.java
index 478c34ea9cc..5aef8898fc8 100644
--- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/AppModelGradleResolver.java
+++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/AppModelGradleResolver.java
@@ -167,8 +167,8 @@ public ApplicationModel resolveManagedModel(ArtifactCoords appArtifact,
 
     protected void ensureProjectCoords(ArtifactCoords appArtifact) throws AppModelResolverException {
         if (project.getName().equals(appArtifact.getArtifactId())
-                && appArtifact.getGroupId().equals(appArtifact.getGroupId())
-                && appArtifact.getVersion().equals(appArtifact.getVersion())) {
+                && project.getGroup().toString().equals(appArtifact.getGroupId())
+                && project.getVersion().toString().equals(appArtifact.getVersion())) {
             return;
         }
         throw new AppModelResolverException(
Repository: quarkusio/quarkus
Issue: Confusing, if not downright wrong, warning message

### Describe the bug

I run my app in dev mode. I change a build time property in `application.properties` and the application properly restarts but I get the following warning in the console:

```java
2022-02-10 09:57:08,244 WARN  [io.qua.run.con.ConfigRecorder] (Quarkus Main Thread) Build time property cannot be changed at runtime:
 - quarkus.operator-sdk.crd.apply was 'true' at build time and is now 'false'

```

What is this message trying to tell me? What is the state of my property, i.e. is it `true` or is it `false`?

### Expected behavior

A clear message as to what happened.

### Actual behavior

The currently ambiguous or wrong message.

### How to Reproduce?

_No response_

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

_No response_

### Output of `java -version`

11

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.7.0.Final

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

_No response_

### Additional information

_No response_

Changed files:
core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigRecorder.java

diff --git a/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigRecorder.java b/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigRecorder.java
index aaec129f11e..e898813ee45 100644
--- a/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigRecorder.java
+++ b/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigRecorder.java
@@ -34,8 +34,8 @@ public void handleConfigChange(Map<String, String> buildTimeConfig) {
                     if (mismatches == null) {
                         mismatches = new ArrayList<>();
                     }
-                    mismatches.add(" - " + entry.getKey() + " is set to '" + entry.getValue()
-                            + "' but it is build time fixed to '" + val.get() + "'. Did you change the property "
+                    mismatches.add(" - " + entry.getKey() + " is set to '" + val.get()
+                            + "' but it is build time fixed to '" + entry.getValue() + "'. Did you change the property "
                             + entry.getKey() + " after building the application?");
                 }
             }
Repository: quarkusio/quarkus
Issue: Panache MongoDB extension not working for multiple collections inside same transaction

### Describe the bug

When a method annotated with @Transactional doing multiple updates or persists using different repositories, only first is using client session others are direct commit.

### Expected behavior

Should commit all changes after leave transaction method, not in middle of method

### Actual behavior

Only work for first repository, others are not using same client session.

### How to Reproduce?

1- Create 2 repositories for different entities.
2- Create a Transactional method 
3- Persist both entities 
4 - Check result after first persist (not persisted)
5-  Check result after second persist been executed (persisted)

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

11

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.9

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
extensions/panache/mongodb-panache-common/runtime/src/main/java/io/quarkus/mongodb/panache/common/runtime/MongoOperations.java

diff --git a/extensions/panache/mongodb-panache-common/runtime/src/main/java/io/quarkus/mongodb/panache/common/runtime/MongoOperations.java b/extensions/panache/mongodb-panache-common/runtime/src/main/java/io/quarkus/mongodb/panache/common/runtime/MongoOperations.java
index ba8f60efe70..d6f446e8844 100644
--- a/extensions/panache/mongodb-panache-common/runtime/src/main/java/io/quarkus/mongodb/panache/common/runtime/MongoOperations.java
+++ b/extensions/panache/mongodb-panache-common/runtime/src/main/java/io/quarkus/mongodb/panache/common/runtime/MongoOperations.java
@@ -321,19 +321,20 @@ ClientSession getSession(Object entity) {
     }
 
     ClientSession getSession(Class<?> entityClass) {
+        ClientSession clientSession = null;
         MongoEntity mongoEntity = entityClass.getAnnotation(MongoEntity.class);
         InstanceHandle<TransactionSynchronizationRegistry> instance = Arc.container()
                 .instance(TransactionSynchronizationRegistry.class);
         if (instance.isAvailable()) {
             TransactionSynchronizationRegistry registry = instance.get();
             if (registry.getTransactionStatus() == Status.STATUS_ACTIVE) {
-                ClientSession clientSession = (ClientSession) registry.getResource(SESSION_KEY);
+                clientSession = (ClientSession) registry.getResource(SESSION_KEY);
                 if (clientSession == null) {
                     return registerClientSession(mongoEntity, registry);
                 }
             }
         }
-        return null;
+        return clientSession;
     }
 
     private ClientSession registerClientSession(MongoEntity mongoEntity,
Repository: quarkusio/quarkus
Issue: Config quarkus.config.locations is evaluated before applying profile

### Describe the bug

Hello,

the config `quarkus.config.locations` is evaluated before applying the profile.

~~~
quarkus.config.locations=file1.properties
%test.quarkus.config.locations=file1.properties,file2.properties
~~~

Launching tests, the "Test" profile is activated AFTER the `quarkus.config.locations` property being read. Thus `file2.properties` is not getting loaded.

But if you read the property via `@ConfigProperty(name = "quarkus.config.locations")`, the value is correct.

### Expected behavior

`%test.quarkus.config.locations` should be evaluated during tests

### Actual behavior

the default `quarkus.config.locations` property is evaluated

### How to Reproduce?

The bug is not reproducible using `@ConfigProperty(name = "quarkus.config.locations")`, that way the property is correctly read.

In order to reproduce you need to read a property declared in the not-loaded-config-file.

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

17.0.1

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.8.0

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

3.8.4

### Additional information

_No response_

Changed files:
core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigUtils.java

diff --git a/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigUtils.java b/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigUtils.java
index 890376d39b1..5923c5c8492 100644
--- a/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigUtils.java
+++ b/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigUtils.java
@@ -142,6 +142,8 @@ public ConfigSourceInterceptor getInterceptor(final ConfigSourceInterceptorConte
                 if (profileValue != null) {
                     List<String> profiles = ProfileConfigSourceInterceptor.convertProfile(profileValue.getValue());
                     for (String profile : profiles) {
+                        relocations.put("%" + profile + "." + SMALLRYE_CONFIG_LOCATIONS,
+                                "%" + profile + "." + "quarkus.config.locations");
                         relocations.put("%" + profile + "." + SMALLRYE_CONFIG_PROFILE_PARENT,
                                 "%" + profile + "." + "quarkus.config.profile.parent");
                     }
Repository: quarkusio/quarkus
Issue: `Unrecognized configuration key` warnings since 2.8.0.Final if using config property with list values in YAML

### Describe the bug

```yaml
quarkus:
  arc:
    ignored-split-packages:
      - foo.bar
```
results in a build warning in 2.8.0.Final, but not in 2.7.5.Final:
```
[INFO] --- quarkus-maven-plugin:2.8.0.Final:build (default) @ code-with-quarkus ---
[WARNING] [io.quarkus.config] Unrecognized configuration key "quarkus.arc.ignored-split-packages[0]" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
[INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 1443ms
```

### Expected behavior

No warning, the key is valid.

### Actual behavior

`Unrecognized configuration key` warning

### How to Reproduce?

[q_build-warnings.zip](https://github.com/quarkusio/quarkus/files/8466095/q_build-warnings.zip)

`mvn clean package -DskipTests`

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

_No response_

### Output of `java -version`

17.0.2, vendor: BellSoft

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.8.0.Final

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

Apache Maven 3.8.4

### Additional information

Also happens with e.g. `quarkus.qute.suffixes`.

Does not happen when using `application.properties`.

Changed files:
core/deployment/src/main/java/io/quarkus/deployment/steps/ConfigGenerationBuildStep.java

diff --git a/core/deployment/src/main/java/io/quarkus/deployment/steps/ConfigGenerationBuildStep.java b/core/deployment/src/main/java/io/quarkus/deployment/steps/ConfigGenerationBuildStep.java
index 167849ed1c3..be3f6406bce 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/steps/ConfigGenerationBuildStep.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/steps/ConfigGenerationBuildStep.java
@@ -200,9 +200,7 @@ private static void reportUnknownBuildProperties(LaunchMode launchMode, Set<Stri
         // So it only reports during the build, because it is very likely that the property is available in runtime
         // and, it will be caught by the RuntimeConfig and log double warnings
         if (!launchMode.isDevOrTest()) {
-            for (String unknownProperty : unknownBuildProperties) {
-                ConfigDiagnostic.unknown(unknownProperty);
-            }
+            ConfigDiagnostic.unknownProperties(new ArrayList<>(unknownBuildProperties));
         }
     }
Repository: quarkusio/quarkus
Issue: Oracle Devservice fails to launch on hosts with over 100 CPU cores

### Describe the bug

This is essentially the same issue as https://github.com/gvenzl/oci-oracle-xe/issues/64 but with _even more_ CPU cores. Since using that many cores is unreasonable anyway, and the upstream dockerfile seems to rely on an `if`-case for every CPU count, it might be better to implement a workaround along the lines of this: https://github.com/gvenzl/oci-oracle-xe/issues/64#issuecomment-1099107397

> Wouldn't docker run --cpus=2 option do the trick?
https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler
Unless you really want to use more.

### Quarkus version or git rev

2.8.0

### Additional information

see https://github.com/gvenzl/oci-oracle-xe/issues/64#issuecomment-1087261618 for the error message that is currently happening on a 128 core machine.

Changed files:
extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java

diff --git a/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java b/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java
index 3062fe714ba..80889956024 100644
--- a/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java
+++ b/extensions/devservices/oracle/src/main/java/io/quarkus/devservices/oracle/deployment/OracleDevServicesProcessor.java
@@ -45,6 +45,14 @@ public RunningDevServicesDatasource startDatabase(Optional<String> username, Opt
                 container.withUsername(username.orElse(DEFAULT_DATABASE_USER))
                         .withPassword(password.orElse(DEFAULT_DATABASE_PASSWORD))
                         .withDatabaseName(datasourceName.orElse(DEFAULT_DATABASE_NAME));
+
+                // We need to limit the maximum amount of CPUs being used by the container;
+                // otherwise the hardcoded memory configuration of the DB might not be enough to successfully boot it.
+                // See https://github.com/gvenzl/oci-oracle-xe/issues/64
+                // I choose to limit it to "2 cpus": should be more than enough for any local testing needs,
+                // and keeps things simple.
+                container.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withNanoCPUs(2_000_000_000l));
+
                 additionalJdbcUrlProperties.forEach(container::withUrlParam);
                 container.start();
Repository: quarkusio/quarkus
Issue: Invalid memory configuration for netty maxDirectMemory in native image

I thinks this only concerns native image builds.

Setting either 
-XX:MaxDirectMemorySize
or 
-Dio.netty.maxDirectMemory
does not work at runtime and runtime memory is incorrectly reflected in io.netty.util.internal.PlatformDependent.DIRECT_MEMORY_LIMIT
at runtime.

i think the problem is that io.netty.buffer.PooledByteBufAllocator uses  io.netty.util.internal.PlatformDependent
which is not initialized during runtime but build time.

I tested this with Quarkus 1.10.5.Final, but looking at the current code of NettyProcessor shows that PlatformDependent is still not initialized at runtime, only PooledByteBufAllocator is.



Changed files:
extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java

diff --git a/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java b/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
index 069fb756162..de1471c3ae4 100644
--- a/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
+++ b/extensions/netty/deployment/src/main/java/io/quarkus/netty/deployment/NettyProcessor.java
@@ -93,7 +93,8 @@ NativeImageConfigBuildItem build(
         String maxOrder = calculateMaxOrder(config.allocatorMaxOrder, minMaxOrderBuildItems, false);
 
         NativeImageConfigBuildItem.Builder builder = NativeImageConfigBuildItem.builder()
-                //.addNativeImageSystemProperty("io.netty.noUnsafe", "true")
+                // disable unsafe usage to allow io.netty.internal.PlarformDependent0 to be reinitialized without issues
+                .addNativeImageSystemProperty("io.netty.noUnsafe", "true")
                 // Use small chunks to avoid a lot of wasted space. Default is 16mb * arenas (derived from core count)
                 // Since buffers are cached to threads, the malloc overhead is temporary anyway
                 .addNativeImageSystemProperty("io.netty.allocator.maxOrder", maxOrder)
@@ -109,6 +110,9 @@ NativeImageConfigBuildItem build(
                 .addRuntimeInitializedClass("io.netty.buffer.ByteBufUtil")
                 // The default channel id uses the process id, it should not be cached in the native image.
                 .addRuntimeInitializedClass("io.netty.channel.DefaultChannelId")
+                // Make sure to re-initialize platform dependent classes/values at runtime
+                .addRuntimeReinitializedClass("io.netty.util.internal.PlatformDependent")
+                .addRuntimeReinitializedClass("io.netty.util.internal.PlatformDependent0")
                 .addNativeImageSystemProperty("io.netty.leakDetection.level", "DISABLED");
 
         if (QuarkusClassLoader.isClassPresentAtRuntime("io.netty.handler.codec.http.HttpObjectEncoder")) {
Repository: quarkusio/quarkus
Issue: */* in Accept header is ignored if not listed as the first item

### Describe the bug

see https://github.com/quarkusio/quarkus/discussions/30759#discussioncomment-4839300 for description of the bug

### Expected behavior

An  `*/*` type is always recognized if present in an `Accept` header of GraphQL requests, and the request be handled normally with the default response content type (which is `application/graphql+json`)

### Actual behavior

An  `*/*` type is recognized only if it's the first item in the `Accept` header, else the GraphQL endpoint returns a 406 Unacceptable response.

### How to Reproduce?

_No response_

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

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

_No response_

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

_No response_

### Additional information

_No response_

Changed files:
extensions/smallrye-graphql/runtime/src/main/java/io/quarkus/smallrye/graphql/runtime/SmallRyeGraphQLExecutionHandler.java

diff --git a/extensions/smallrye-graphql/runtime/src/main/java/io/quarkus/smallrye/graphql/runtime/SmallRyeGraphQLExecutionHandler.java b/extensions/smallrye-graphql/runtime/src/main/java/io/quarkus/smallrye/graphql/runtime/SmallRyeGraphQLExecutionHandler.java
index 127e1ed8cc7..6f8787beebb 100644
--- a/extensions/smallrye-graphql/runtime/src/main/java/io/quarkus/smallrye/graphql/runtime/SmallRyeGraphQLExecutionHandler.java
+++ b/extensions/smallrye-graphql/runtime/src/main/java/io/quarkus/smallrye/graphql/runtime/SmallRyeGraphQLExecutionHandler.java
@@ -223,10 +223,14 @@ private String getRequestAccept(RoutingContext ctx) {
                 if (isValidAcceptRequest(a.rawValue())) {
                     return a.rawValue();
                 }
+
+                if (a.rawValue().startsWith("*/*")) {
+                    return DEFAULT_RESPONSE_CONTENT_TYPE;
+                }
             }
             // Seems like an unknown accept is passed in
             String accept = ctx.request().getHeader("Accept");
-            if (accept != null && !accept.isEmpty() && !accept.startsWith("*/*")) {
+            if (accept != null && !accept.isEmpty()) {
                 return accept;
             }
         }
Repository: quarkusio/quarkus
Issue: REST Reactive Client when retried, Authorization header is multiplied by OidcClientRequestReactiveFilter 

### Describe the bug

When we have a REST Reactive Client with OidcClientRequestReactiveFilter, and we retry the requests through Mutiny, the Authorization header gets multiplied with each new retry.

This results in AWS API Gateway to immediately reject the requests with Bad Request.

Is there a configuration or something we can do to change this behaviour or is this something that needs to be fixed ?


### Expected behavior

Only a single Authorization header in the retried requests.

### Actual behavior

Authorization headers keep increasing with each retry request.

### How to Reproduce?

Given the rest client;

```
@RegisterRestClient(configKey = "my-api")
@RegisterProvider(OidcClientRequestReactiveFilter.class)
@Path("/api/v1")
public interface MyApi {
    @POST
    @Path("/something")
    Uni<SomethingResponse> postSomething(Something body);
}
```

When;

```
myApi.postSomething(body).onFailure().retry().indefinitely();
```

Then each retry keeps appending a new Authorization header to the request. 

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

Java 11

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.8.1

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
extensions/oidc-client-reactive-filter/runtime/src/main/java/io/quarkus/oidc/client/reactive/filter/OidcClientRequestReactiveFilter.java

diff --git a/extensions/oidc-client-reactive-filter/runtime/src/main/java/io/quarkus/oidc/client/reactive/filter/OidcClientRequestReactiveFilter.java b/extensions/oidc-client-reactive-filter/runtime/src/main/java/io/quarkus/oidc/client/reactive/filter/OidcClientRequestReactiveFilter.java
index 7508e906ecb..f7c12963d77 100644
--- a/extensions/oidc-client-reactive-filter/runtime/src/main/java/io/quarkus/oidc/client/reactive/filter/OidcClientRequestReactiveFilter.java
+++ b/extensions/oidc-client-reactive-filter/runtime/src/main/java/io/quarkus/oidc/client/reactive/filter/OidcClientRequestReactiveFilter.java
@@ -41,7 +41,8 @@ public void filter(ResteasyReactiveClientRequestContext requestContext) {
         super.getTokens().subscribe().with(new Consumer<Tokens>() {
             @Override
             public void accept(Tokens tokens) {
-                requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, BEARER_SCHEME_WITH_SPACE + tokens.getAccessToken());
+                requestContext.getHeaders().putSingle(HttpHeaders.AUTHORIZATION,
+                        BEARER_SCHEME_WITH_SPACE + tokens.getAccessToken());
                 requestContext.resume();
             }
         }, new Consumer<Throwable>() {
Repository: quarkusio/quarkus
Issue: Log when creating cache entry on synchronous calls

### Describe the bug

Currently there is no way to know when the cache entry is created using synchronous calls, the only log seen for synchronous calls are during the loading phase from the cache.

### Expected behavior

It would be better to log before creating cache entries in quarkus

### Actual behavior

Show "Adding entry with key [%s] into cache [%s]" msg when adding cache entry through synchronous calls

### How to Reproduce?

Use quarkus cache and hit the call for the first time, no logs are seen on cache creation.

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

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

_No response_

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

_No response_

### Additional information

_No response_

Changed files:
extensions/cache/runtime/src/main/java/io/quarkus/cache/runtime/CacheResultInterceptor.java

diff --git a/extensions/cache/runtime/src/main/java/io/quarkus/cache/runtime/CacheResultInterceptor.java b/extensions/cache/runtime/src/main/java/io/quarkus/cache/runtime/CacheResultInterceptor.java
index d048be69f93..722595d0f19 100644
--- a/extensions/cache/runtime/src/main/java/io/quarkus/cache/runtime/CacheResultInterceptor.java
+++ b/extensions/cache/runtime/src/main/java/io/quarkus/cache/runtime/CacheResultInterceptor.java
@@ -103,6 +103,8 @@ public Uni<?> get() {
                     @Override
                     public Object apply(Object k) {
                         try {
+                            LOGGER.debugf("Adding entry with key [%s] into cache [%s]",
+                                    key, binding.cacheName());
                             return invocationContext.proceed();
                         } catch (CacheException e) {
                             throw e;
Repository: quarkusio/quarkus
Issue: maven plugin build fails when .mvn directory exists in directory enclosing project directory

Per [Zulip discussion](https://quarkusio.zulipchat.com/#narrow/stream/187030-users/topic/mvn.20package.20failing.20in.201.2E4.2Ex), attempting `mvn package` on a project whose parent directory has a `.mvn` directory, but no `pom.xml` will fail.

The [attached file](https://github.com/quarkusio/quarkus/files/4564988/outer.zip) demonstrates a trivial project in such a directory structure.

Changed files:
independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/resolver/maven/BootstrapMavenContext.java

diff --git a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/resolver/maven/BootstrapMavenContext.java b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/resolver/maven/BootstrapMavenContext.java
index e3ced3095f4..24e7759b7b4 100644
--- a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/resolver/maven/BootstrapMavenContext.java
+++ b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/resolver/maven/BootstrapMavenContext.java
@@ -720,6 +720,12 @@ public Path getRootProjectBaseDir() {
                 return null;
             }
         }
-        return Paths.get(rootBaseDir);
+        final Path rootProjectBaseDirPath = Paths.get(rootBaseDir);
+        // if the root project dir set by the Maven process (through the env variable) doesn't have a pom.xml
+        // then it probably isn't relevant
+        if (!Files.exists(rootProjectBaseDirPath.resolve("pom.xml"))) {
+            return null;
+        }
+        return rootProjectBaseDirPath;
     }
 }
Repository: quarkusio/quarkus
Issue: Keycloak Claim Information Point - NPE when trying to read body - 1.3.1.Final

It is the same bug described in #5959.
After upgrading to `1.3.1.Final` it does not working anymore.
You can use the sample project from #5959. Only one change is done there - because of the #8464.
You can run the sample project and to verify that is working.
Then change the quarkus version to `1.3.1.Final` and the project will stop working

Changed files:
extensions/keycloak-authorization/runtime/src/main/java/io/quarkus/keycloak/pep/runtime/VertxHttpFacade.java

diff --git a/extensions/keycloak-authorization/runtime/src/main/java/io/quarkus/keycloak/pep/runtime/VertxHttpFacade.java b/extensions/keycloak-authorization/runtime/src/main/java/io/quarkus/keycloak/pep/runtime/VertxHttpFacade.java
index 36a802e2ad7..0d79e5296a3 100644
--- a/extensions/keycloak-authorization/runtime/src/main/java/io/quarkus/keycloak/pep/runtime/VertxHttpFacade.java
+++ b/extensions/keycloak-authorization/runtime/src/main/java/io/quarkus/keycloak/pep/runtime/VertxHttpFacade.java
@@ -25,7 +25,6 @@
 import io.quarkus.vertx.http.runtime.VertxInputStream;
 import io.quarkus.vertx.http.runtime.security.QuarkusHttpUser;
 import io.vertx.core.buffer.Buffer;
-import io.vertx.core.http.HttpHeaders;
 import io.vertx.core.http.HttpServerRequest;
 import io.vertx.core.http.HttpServerResponse;
 import io.vertx.core.http.impl.CookieImpl;
@@ -110,16 +109,7 @@ public Cookie getCookie(String cookieName) {
 
             @Override
             public String getHeader(String name) {
-                //TODO: this logic should be removed once KEYCLOAK-12412 is fixed
-                String value = request.getHeader(name);
-
-                if (name.equalsIgnoreCase(HttpHeaders.CONTENT_TYPE.toString())) {
-                    if (value.indexOf(';') != -1) {
-                        return value.substring(0, value.indexOf(';'));
-                    }
-                }
-
-                return value;
+                return request.getHeader(name);
             }
 
             @Override
Repository: quarkusio/quarkus
Issue: OpenShift deployment (quarkus-openshift extension) fails on Windows

**Describe the bug**
OpenShift deployment using the quarkus-openshift extension fails on Windows.
The same project works fine on Linux.

**Expected behavior**
Deployment works on Windows too.

**Actual behavior**
```
[WARNING] [io.quarkus.container.image.s2i.deployment.S2iProcessor] No Openshift manifests were generated (most likely due to the fact that the service is not an HTTP service) so no s2i process will be taking place
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
```

**To Reproduce**
Steps to reproduce the behavior:
1. Clone repo https://github.com/haraldatbmw/quarkus-openshift-deployment
2. Login to your OpenShift cluster `oc login ...`
3. Start deployment `mvn clean package -Dquarkus.kubernetes.deploy=true`

**Configuration**
```properties
quarkus.kubernetes-client.trust-certs=true
quarkus.s2i.base-jvm-image=registry.access.redhat.com/openjdk/openjdk-11-rhel7
quarkus.openshift.expose=true
```

**Environment (please complete the following information):**
 - Output of `uname -a` or `ver`: Microsoft Windows [Version 10.0.17134.1425]
 - Output of `java -version`: 
openjdk version "11.0.6" 2020-01-14 LTS
OpenJDK Runtime Environment Zulu11.37+17-CA (build 11.0.6+10-LTS)
OpenJDK 64-Bit Server VM Zulu11.37+17-CA (build 11.0.6+10-LTS, mixed mode)
 - Quarkus version or git rev: 1.4.2.Final
 - Build tool (ie. output of `mvnw --version` or `gradlew --version`): Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
- oc tool: 
oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth SSPI Kerberos SPNEGO



Changed files:
extensions/container-image/container-image-s2i/deployment/src/main/java/io/quarkus/container/image/s2i/deployment/S2iProcessor.java

diff --git a/extensions/container-image/container-image-s2i/deployment/src/main/java/io/quarkus/container/image/s2i/deployment/S2iProcessor.java b/extensions/container-image/container-image-s2i/deployment/src/main/java/io/quarkus/container/image/s2i/deployment/S2iProcessor.java
index 1c59065da77..743469e418b 100644
--- a/extensions/container-image/container-image-s2i/deployment/src/main/java/io/quarkus/container/image/s2i/deployment/S2iProcessor.java
+++ b/extensions/container-image/container-image-s2i/deployment/src/main/java/io/quarkus/container/image/s2i/deployment/S2iProcessor.java
@@ -181,7 +181,7 @@ public void s2iBuildFromJar(S2iConfig s2iConfig, ContainerImageConfig containerI
 
         Optional<GeneratedFileSystemResourceBuildItem> openshiftYml = generatedResources
                 .stream()
-                .filter(r -> r.getName().endsWith("kubernetes/openshift.yml"))
+                .filter(r -> r.getName().endsWith("kubernetes" + File.separator + "openshift.yml"))
                 .findFirst();
 
         if (!openshiftYml.isPresent()) {
Repository: quarkusio/quarkus
Issue: Default quarkus.http.access-log.pattern "common" duplicate query_string

With default access-log configuration, the query string is duplicated in access-log.

**To Reproduce**
Steps to reproduce the behavior:
1. GET /myapp?someparam=1
2. In access-log appears: GET /myapp?someparam=value?someparam=value



Changed files:
extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/accesslog/AccessLogFileTestCase.java
extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/RequestLineAttribute.java

diff --git a/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/accesslog/AccessLogFileTestCase.java b/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/accesslog/AccessLogFileTestCase.java
index 6e8e98e8a4a..9d16e43c2d5 100644
--- a/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/accesslog/AccessLogFileTestCase.java
+++ b/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/accesslog/AccessLogFileTestCase.java
@@ -90,7 +90,7 @@ public void after() throws IOException {
 
     @Test
     public void testSingleLogMessageToFile() throws IOException, InterruptedException {
-        RestAssured.get("/does-not-exist");
+        RestAssured.get("/does-not-exist?foo=bar");
 
         Awaitility.given().pollInterval(100, TimeUnit.MILLISECONDS)
                 .atMost(10, TimeUnit.SECONDS)
@@ -105,6 +105,10 @@ public void run() throws Throwable {
                         String data = new String(Files.readAllBytes(path), StandardCharsets.UTF_8);
                         Assertions.assertTrue(data.contains("404"));
                         Assertions.assertTrue(data.contains("/does-not-exist"));
+                        Assertions.assertTrue(data.contains("?foo=bar"),
+                                "access log is missing query params");
+                        Assertions.assertFalse(data.contains("?foo=bar?foo=bar"),
+                                "access log contains duplicated query params");
                     }
                 });
     }
diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/RequestLineAttribute.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/RequestLineAttribute.java
index b53ea4ad5cf..12b8b4b80f6 100644
--- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/RequestLineAttribute.java
+++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/RequestLineAttribute.java
@@ -23,10 +23,6 @@ public String readAttribute(final RoutingContext exchange) {
                 .append(exchange.request().method())
                 .append(' ')
                 .append(exchange.request().uri());
-        if (exchange.request().query() != null) {
-            sb.append('?');
-            sb.append(exchange.request().query());
-        }
         sb.append(' ')
                 .append(exchange.request().version());
         return sb.toString();
Repository: quarkusio/quarkus
Issue: KubernetesProcessor - BuildInfo - possible switch of constructor attributes

Hi @iocanel / @geoand, I'm looking at https://github.com/quarkusio/quarkus/blob/master/extensions/kubernetes/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java#L236 and I think attributes on line 239 and 240 should be switched. 

```
                project.getBuildInfo().getOutputFile(),
                project.getBuildInfo().getClassOutputDir());
```

BuildInfo constructor has this signature: `public BuildInfo(String name, String version, String packaging, String buildTool, Path outputFile, Path classOutputDir, Path resourceDir) {`

When looking into BuildInfo sources I'm even more confused by code like this:
```
public void setResourceOutputDir(Path classOutputDir) {
    this.classOutputDir = classOutputDir;
  }
```

It's probably working atm because `classOutputDir`  and `resourceDir` are basically the same for maven.
https://github.com/dekorateio/dekorate/blob/master/core/src/main/java/io/dekorate/project/BuildInfo.java#L54-L55



Changed files:
extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java

diff --git a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
index 1b7b445aaf0..68cd8d8ea0d 100644
--- a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
+++ b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
@@ -717,8 +717,8 @@ private Project createProject(ApplicationInfoBuildItem app, Path artifactPath) {
         BuildInfo buildInfo = new BuildInfo(app.getName(), app.getVersion(),
                 "jar", project.getBuildInfo().getBuildTool(),
                 artifactPath,
-                project.getBuildInfo().getOutputFile(),
-                project.getBuildInfo().getClassOutputDir());
+                project.getBuildInfo().getClassOutputDir(),
+                project.getBuildInfo().getResourceDir());
 
         return new Project(project.getRoot(), buildInfo, project.getScmInfo());
     }
Repository: quarkusio/quarkus
Issue: Agroal datasource should be initialized eagerly

**Describe the bug**
Currently the datasources are flagged as `@ApplicaitonScoped`, which means they are wrapped by a proxy making them initialized on first use.

This is annoying as
 - we don't respect the configuration of pre-filling the pool on boot
 - we can't validate the connection properties, deferring any failure (however also affected by #4503)
 - it's an overhead


Changed files:
extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalProcessor.java

diff --git a/extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalProcessor.java b/extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalProcessor.java
index 59df7c1589c..1e495fe4189 100644
--- a/extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalProcessor.java
+++ b/extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalProcessor.java
@@ -11,9 +11,9 @@
 import java.util.Optional;
 import java.util.Set;
 
-import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.inject.Default;
 import javax.enterprise.inject.Produces;
+import javax.inject.Singleton;
 import javax.sql.XADataSource;
 
 import org.eclipse.microprofile.metrics.Metadata;
@@ -358,7 +358,7 @@ private void createDataSourceProducerBean(BuildProducer<GeneratedBeanBuildItem>
                 .className(dataSourceProducerClassName)
                 .superClass(AbstractDataSourceProducer.class)
                 .build();
-        classCreator.addAnnotation(ApplicationScoped.class);
+        classCreator.addAnnotation(Singleton.class);
 
         for (AggregatedDataSourceBuildTimeConfigBuildItem aggregatedDataSourceBuildTimeConfig : aggregatedDataSourceBuildTimeConfigs) {
             String dataSourceName = aggregatedDataSourceBuildTimeConfig.getName();
@@ -366,7 +366,7 @@ private void createDataSourceProducerBean(BuildProducer<GeneratedBeanBuildItem>
             MethodCreator dataSourceMethodCreator = classCreator.getMethodCreator(
                     "createDataSource_" + HashUtil.sha1(dataSourceName),
                     AgroalDataSource.class);
-            dataSourceMethodCreator.addAnnotation(ApplicationScoped.class);
+            dataSourceMethodCreator.addAnnotation(Singleton.class);
             dataSourceMethodCreator.addAnnotation(Produces.class);
             if (aggregatedDataSourceBuildTimeConfig.isDefault()) {
                 dataSourceMethodCreator.addAnnotation(Default.class);
Repository: quarkusio/quarkus
Issue: 1.3.0.CR2 Not finding jar from other subproject

I am trying to upgrade to `1.3.0.CR2` from `1.2.0.Final`, and getting an error where the quarkus project can't find a jar generated from one of the sibling projects.

The project can be found here: https://github.com/GregJohnStewart/task-timekeeper

On an interesting note, `:WebServer:Server:test` works, but `:WebServer:Server:quarkusDev` fails with the following information:

```
Caused by: org.gradle.api.GradleException: Failed to run
        at io.quarkus.gradle.tasks.QuarkusDev.startDev(QuarkusDev.java:399)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
   ...
Caused by: java.nio.file.FileSystemNotFoundException: /home/gstewart/GitRepos/task-timekeeper/BaseCode/ManagerIO/build/libs/ManagerIO-1.0.0.409.jar
        at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:120)
        at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:139)
        at io.quarkus.gradle.AppModelGradleResolver.collectDependencies(AppModelGradleResolver.java:256)
        at io.quarkus.gradle.AppModelGradleResolver.resolveModel(AppModelGradleResolver.java:143)
        at io.quarkus.gradle.tasks.QuarkusDev.startDev(QuarkusDev.java:242)
        ... 92 more

```

Changed files:
devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java

diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
index cf719f67bfd..18dbecbba36 100644
--- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
+++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
@@ -62,6 +62,7 @@
 import io.quarkus.dev.DevModeContext;
 import io.quarkus.dev.DevModeMain;
 import io.quarkus.gradle.QuarkusPluginExtension;
+import io.quarkus.runtime.LaunchMode;
 import io.quarkus.utilities.JavaBinFinder;
 
 public class QuarkusDev extends QuarkusTask {
@@ -235,7 +236,7 @@ public void startDev() {
             StringBuilder classPathManifest = new StringBuilder();
 
             final AppModel appModel;
-            final AppModelResolver modelResolver = extension().getAppModelResolver();
+            final AppModelResolver modelResolver = extension().getAppModelResolver(LaunchMode.DEVELOPMENT);
             try {
                 final AppArtifact appArtifact = extension.getAppArtifact();
                 appArtifact.setPath(extension.outputDirectory().toPath());
Repository: quarkusio/quarkus
Issue: the `container-image-s2i` extension logs a warning when I change the base S2I image

**Describe the bug**
I added the `container-image-s2i` extension so that I can customize the base S2I image in generated OpenShift resources. But when I do so (after overcoming all the obstacles described in #7637), I get a warning:

```
[WARNING] [io.quarkus.kubernetes.deployment.KubernetesDeployer] Replacing s2i-java builder image with openjdk-11-rhel7
```

That is uncalled for. The config property is there for a reason. I don't think even an INFO level would be appropriate -- I don't need a message that a config property is applied.

**Expected behavior**
No message.

**Actual behavior**
Warning (as if I did something wrong!).

**To Reproduce**
Steps to reproduce the behavior:
1. Add the `container-image-s2i` extension.
2. Run `mvn clean package`.
3. Observe the warning.

**Configuration**
```properties
quarkus.kubernetes.deployment-target=openshift
quarkus.openshift.expose=true
quarkus.s2i.base-jvm-image=registry.access.redhat.com/openjdk/openjdk-11-rhel7
```

Changed files:
extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java

diff --git a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
index c636a50c233..5370cb7e60c 100644
--- a/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
+++ b/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesProcessor.java
@@ -418,7 +418,6 @@ private void applyBuildItems(Session session,
                 String builderImageName = ImageUtil.getName(builderImage);
                 S2iBuildConfig s2iBuildConfig = new S2iBuildConfigBuilder().withBuilderImage(builderImage).build();
                 if (!DEFAULT_S2I_IMAGE_NAME.equals(builderImageName)) {
-                    log.warn("Replacing " + DEFAULT_S2I_IMAGE_NAME + " builder image with " + builderImageName);
                     session.resources().decorate(OPENSHIFT, new RemoveBuilderImageResourceDecorator(DEFAULT_S2I_IMAGE_NAME));
                 }
                 session.resources().decorate(OPENSHIFT, new AddBuilderImageStreamResourceDecorator(s2iBuildConfig));