anon-iclr-submission/benchname-bug-localization huggingface dataset:
Repository: quarkusio/quarkus
Issue: Adding first registry in CLI erases the default one

### Describe the bug

By default, registry list in CLI contains a default registry `registry.quarkus.io` and there is an option to add new registries. Although, if user adds a new registry, e.g. `registry.quarkus.redhat.com`, then the default registry will be silently removed from the list and became inaccessible.

### Expected behavior

Default registry stays in the list, registries are never removed without explicit user request.

### Actual behavior

Default registry is removed from the list.

### How to Reproduce?

1. Install quarkus afresh or remove/rename file ~/.quarkus/config.yaml
2. Check default registry.
```
$ quarkus registry list
Configured Quarkus extension registries:
registry.quarkus.io
```
3. Check existing extensions. 
```
$ quarkus ext list | wc -l
920
```
4. Add non-default registry: ` quarkus registry add registry.quarkus.redhat.com`
5. Check registry list:
```
$ quarkus registry list
Configured Quarkus extension registries:
registry.quarkus.redhat.com #registry.quarkus.io is not in the list
(Read from ~/.quarkus/config.yaml)
```
6. Check existing extensions. 
```
$ quarkus ext list | wc -l
170 # at least some extensions are not accessible any more
```

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

5.14.17-201.fc34.x86_64

### Output of `java -version`

Java version: 11.0.13, vendor: Eclipse Adoptium

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.5.1.Final

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

Apache Maven 3.8.4

### Additional information

_No response_

Changed files:
devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java

diff --git a/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java b/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java
index f9f2c5fc46a..c9d7449d4b9 100644
--- a/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java
+++ b/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java
@@ -1,5 +1,7 @@
 package io.quarkus.cli;
 
+import static io.quarkus.registry.Constants.DEFAULT_REGISTRY_ID;
+
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -48,7 +50,16 @@ public Integer call() throws Exception {
         if (persist) {
             output.printText("Configured registries:");
             for (RegistryConfig rc : config.getRegistries()) {
-                output.printText("- " + rc.getId());
+                if (!existingConfig && config.getRegistries().size() == 1
+                        && !rc.getId().equals(DEFAULT_REGISTRY_ID)) {
+                    output.warn(
+                            rc.getId() + " is the only registry configured in the config file.\\n" + rc.getId()
+                                    + " replaced the Default registry: "
+                                    + DEFAULT_REGISTRY_ID);
+                } else {
+                    output.printText("- " + rc.getId());
+                }
+
             }
             if (configYaml != null) {
                 config.persist(configYaml);
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 5b39842d77f..aaec129f11e 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,9 +34,9 @@ public void handleConfigChange(Map<String, String> buildTimeConfig) {
                     if (mismatches == null) {
                         mismatches = new ArrayList<>();
                     }
-                    mismatches.add(
-                            " - " + entry.getKey() + " was '" + entry.getValue() + "' at build time and is now '" + val.get()
-                                    + "'");
+                    mismatches.add(" - " + entry.getKey() + " is set to '" + entry.getValue()
+                            + "' but it is build time fixed to '" + val.get() + "'. Did you change the property "
+                            + entry.getKey() + " after building the application?");
                 }
             }
         }
Repository: quarkusio/quarkus
Issue: Micrometer JSON registry uses a non-blocking route

### Describe the bug

... so if there are gauges which require a blocking operation to get the value, then the call to `/metrics` fails

### Expected behavior

_No response_

### Actual behavior

_No response_

### How to Reproduce?

Use `quarkus.micrometer.export.json.enabled=true` and register a gauge that requires a blocking operation to retrieve the value, and then request a JSON export from `/metrics`

### 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

see discussion https://github.com/quarkusio/quarkus/discussions/23605

Changed files:
extensions/micrometer/deployment/src/main/java/io/quarkus/micrometer/deployment/export/JsonRegistryProcessor.java

diff --git a/extensions/micrometer/deployment/src/main/java/io/quarkus/micrometer/deployment/export/JsonRegistryProcessor.java b/extensions/micrometer/deployment/src/main/java/io/quarkus/micrometer/deployment/export/JsonRegistryProcessor.java
index 6b0ce9ad374..d97cf11de29 100644
--- a/extensions/micrometer/deployment/src/main/java/io/quarkus/micrometer/deployment/export/JsonRegistryProcessor.java
+++ b/extensions/micrometer/deployment/src/main/java/io/quarkus/micrometer/deployment/export/JsonRegistryProcessor.java
@@ -45,6 +45,7 @@ public void initializeJsonRegistry(MicrometerConfig config,
         routes.produce(nonApplicationRootPathBuildItem.routeBuilder()
                 .routeFunction(config.export.json.path, recorder.route())
                 .handler(recorder.getHandler())
+                .blockingRoute()
                 .build());
 
         log.debug("Initialized a JSON meter registry on path="
Repository: quarkusio/quarkus
Issue: :dev terminal test commands don't work anymore (testSupport.include is null)

### Describe the bug

When invoking the terminal (`:`) while in `:dev` mode, the options to set the `test pattern` for includes and excludes don't seem to work (anymore).

Maybe I'm missing something but I don't seem to be able to include and exclude patterns once the dev mode has been started.

Example:

```
:
$ test pattern exclude .*UITest
java.lang.NullPointerException: Cannot invoke "java.util.regex.Pattern.pattern()" because "testSupport.include" is null
```

If I look into the source code of `io.quarkus.deployment.dev.testing.TestSupport`, then indeed `include` and `exclude` are `null`.

### Expected behavior

_No response_

### Actual behavior

_No response_

### How to Reproduce?

1. Have a project with different test naming strategies (e.g. `...Test`, `...UITest`, `...APITest`).
2. Run `mvn quarkus:dev`
3. Start the terminal (`:`)
4. Try to set the exclude and include patterns (maybe multiple times)


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

Linux squarelinux 6.1.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 18 Jan 2023 19:54:38 +0000 x86_64 GNU/Linux

### Output of `java -version`

OpenJDK Runtime Environment Temurin-18.0.1+10 (build 18.0.1+10)

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

3.1.1.Final

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

Apache Maven 3.8.6

### Additional information

_No response_

Changed files:
core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestTracingProcessor.java

diff --git a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestTracingProcessor.java b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestTracingProcessor.java
index d72622e78dc..8ff20a9bcf9 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestTracingProcessor.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/TestTracingProcessor.java
@@ -298,7 +298,7 @@ protected String configKey() {
 
         @Override
         protected void configure(TestSupport testSupport) {
-            testSupport.setPatterns(pattern, testSupport.exclude.pattern());
+            testSupport.setPatterns(pattern, testSupport.exclude != null ? testSupport.exclude.pattern() : null);
         }
     }
 
@@ -320,7 +320,7 @@ protected String configKey() {
 
         @Override
         protected void configure(TestSupport testSupport) {
-            testSupport.setPatterns(testSupport.include.pattern(), pattern);
+            testSupport.setPatterns(testSupport.include != null ? testSupport.include.pattern() : null, pattern);
         }
     }
Repository: quarkusio/quarkus
Issue: Quarkus quartz should not reschedule jobs on start

### Describe the bug

Bug introduced by https://github.com/quarkusio/quarkus/issues/20538

Anytime quarkus starts it will reschedule jobs, not matter if the job config changed or not.
It's a tough decision, at best it should only detect changes and WARN, nothing else.
This can have serious collateral damages depending on what your jobs are doing.

If you are cleaning up your data once a year, you don't want that to be re initialized and triggered every time you restart the app or scale up your cluster.

### Expected behavior

Do not reschedule jobs, WARN or maybe improve the dev tools but this is too dangerous.

### Actual behavior

All jobs are rescheduled on start.

### How to Reproduce?

Pick any quartz based clustered app.
Create a job running every 5 sec for example.

Request the db for
select * from qrtz_simple_triggers and select * from qrtz_triggers

Restart the app and check the table again.
All triggers, executions are reset, ignoring past execution and, most important, the expected and persistent next_fire_time on qrtz_triggers.

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

no impact

### Output of `java -version`

no impact

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

since 2.3.1

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

no impact

### Additional information

_No response_

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

diff --git a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java
index d3939ebe628..6fc95db8c4a 100644
--- a/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java
+++ b/extensions/quartz/runtime/src/main/java/io/quarkus/quartz/runtime/QuartzScheduler.java
@@ -201,7 +201,9 @@ public QuartzScheduler(SchedulerContext context, QuartzSupport quartzSupport, Sc
                             LOGGER.debugf("Scheduled business method %s with config %s", method.getMethodDescription(),
                                     scheduled);
                         } else {
-                            scheduler.rescheduleJob(trigger.getKey(), trigger);
+                            org.quartz.Trigger oldTrigger = scheduler.getTrigger(trigger.getKey());
+                            scheduler.rescheduleJob(trigger.getKey(),
+                                    triggerBuilder.startAt(oldTrigger.getNextFireTime()).build());
                             LOGGER.debugf("Rescheduled business method %s with config %s", method.getMethodDescription(),
                                     scheduled);
                         }
Repository: quarkusio/quarkus
Issue: DevUI console no longer responds if you enter input before it boots

### Describe the bug

In a Quarkus app, if you type something before the app is initialized with `mvn clean compile quarkus:dev`, you'll get the following exception in the console and the input no longer works (you need to kill the process to Ctrl+C the application): 

```java
Exception in thread "Aesh InputStream Reader" java.lang.NullPointerException: Cannot invoke "io.quarkus.dev.console.QuarkusConsole$StateChangeInputStream.acceptInput(int)" because "redirectIn" is null
	at io.quarkus.deployment.console.AeshConsole.lambda$setup$1(AeshConsole.java:231)
	at org.aesh.terminal.EventDecoder.accept(EventDecoder.java:118)
	at org.aesh.terminal.EventDecoder.accept(EventDecoder.java:31)
	at org.aesh.terminal.io.Decoder.write(Decoder.java:133)
	at org.aesh.readline.tty.terminal.TerminalConnection.openBlocking(TerminalConnection.java:216)
	at org.aesh.readline.tty.terminal.TerminalConnection.openBlocking(TerminalConnection.java:203)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
```

### Expected behavior

No errors and input works normally	

### Actual behavior

You can't input anything in the console while the app is running

### How to Reproduce?

1. Create a Quarkus application
2. Run `mvn clean compile quarkus:dev`
3. Start typing in the console before the application starts 

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

Darwin Kernel Version 21.3.0: Wed Jan  5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T6000 arm64

### Output of `java -version`

OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (build 17.0.2+8, mixed mode)

### GraalVM version (if different from Java)

None

### Quarkus version or git rev

2.7.1.Final

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

Maven 3.8.4

### Additional information

_No response_

Changed files:
core/deployment/src/main/java/io/quarkus/deployment/console/AeshConsole.java

diff --git a/core/deployment/src/main/java/io/quarkus/deployment/console/AeshConsole.java b/core/deployment/src/main/java/io/quarkus/deployment/console/AeshConsole.java
index b7e144bbbdd..15bec6b648d 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/console/AeshConsole.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/console/AeshConsole.java
@@ -225,6 +225,10 @@ public void run() {
             conn.setStdinHandler(keys -> {
 
                 QuarkusConsole.StateChangeInputStream redirectIn = QuarkusConsole.REDIRECT_IN;
+                // redirectIn might have not been initialized yet
+                if (redirectIn == null) {
+                    return;
+                }
                 //see if the users application wants to read the keystrokes:
                 int pos = 0;
                 while (pos < keys.length) {
Repository: quarkusio/quarkus
Issue: Native MariaDb with useSsl throw NPE

### Describe the bug

When the Jdbc url contains `useSsl=true`, those lines throw a NPE

https://github.com/mariadb-corporation/mariadb-connector-j/blob/d541afd6af963d931dd1a86adfb1cbcb1a0af10c/src/main/java/org/mariadb/jdbc/Configuration.java#L672-L679

I guess it's because the processor do not retain the deprecated.properties resource file

https://github.com/quarkusio/quarkus/blob/6c7268b90a6f0d76cea39c3ad4520526e66275d9/extensions/jdbc/jdbc-mariadb/deployment/src/main/java/io/quarkus/jdbc/mariadb/deployment/JDBCMariaDBProcessor.java#L65-L71



### Expected behavior

application can connect with `useSsl=true`

### Actual behavior

Throw NPE

### Additional information

In my case, I have no control over the jdbcUrl.

**Would be great to backport it to 2.x**


Changed files:
extensions/jdbc/jdbc-mariadb/deployment/src/main/java/io/quarkus/jdbc/mariadb/deployment/JDBCMariaDBProcessor.java

diff --git a/extensions/jdbc/jdbc-mariadb/deployment/src/main/java/io/quarkus/jdbc/mariadb/deployment/JDBCMariaDBProcessor.java b/extensions/jdbc/jdbc-mariadb/deployment/src/main/java/io/quarkus/jdbc/mariadb/deployment/JDBCMariaDBProcessor.java
index e652d633874..d5443003105 100644
--- a/extensions/jdbc/jdbc-mariadb/deployment/src/main/java/io/quarkus/jdbc/mariadb/deployment/JDBCMariaDBProcessor.java
+++ b/extensions/jdbc/jdbc-mariadb/deployment/src/main/java/io/quarkus/jdbc/mariadb/deployment/JDBCMariaDBProcessor.java
@@ -68,6 +68,9 @@ void addNativeImageResources(BuildProducer<NativeImageResourceBuildItem> resourc
         // driver.properties is not added because it only provides optional descriptions for
         // org.mariadb.jdbc.Driver.getPropertyInfo(), which is probably not even called.
         resources.produce(new NativeImageResourceBuildItem("mariadb.properties"));
+
+        // necessary when jdbcUrl contains useSsl=true
+        resources.produce(new NativeImageResourceBuildItem("deprecated.properties"));
     }
 
     @BuildStep
Repository: quarkusio/quarkus
Issue: Broken context propagation in HTTP request that involves hibernate-reactive-panache, resteasy-reactive and qute

### Describe the bug

The CDI request context is not active when a template (that leverages a `@RequestScoped` bean) is rendered in a `Uni` chain:

```java
    @GET
    public Uni<TemplateInstance> get(@QueryParam("id") Long id) {
        // Fruit extends io.quarkus.hibernate.reactive.panache.PanacheEntity
        return Fruit.findById(id).onItem().transform(f -> Templates.fruit((Fruit) f));
    }
```

### How to Reproduce?

1. Checkout [this quarkus-quickstarts branch](https://github.com/mkouba/quarkus-quickstarts/tree/req-context-not-active)
2. Run the modified `hibernate-reactive-panache-quickstart` in the dev mode (can be reproduced in the prod mode as well)
3. HTTP GET `http://localhost:8080/test/template?id=1`

You should see a `ContextNotActiveException` in the console.

UPDATE: I've added two more simplified resource methods which produce a slightly different error:
```
javax.enterprise.inject.IllegalProductException: Normal scoped producer method may not return null: io.quarkus.vertx.http.runtime.CurrentVertxRequest.getCurrent()
```
It seems that the request context is active but the `CurrentVertxRequest` bean instance is not propagated.

How to get this error:
1. HTTP GET `http://localhost:8080/test/simple?id=1` - this one does not involve a qute template
2. HTTP GET `http://localhost:8080/test/no-hibernate?id=1` - this one does not involve `hibernate-reactive-panache`

It might be as well a PEBKAC on my side. I would be more than happy if someone explains to me what's going on here ;-)




Changed files:
extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/runtime/src/main/java/io/quarkus/resteasy/reactive/qute/runtime/TemplateResponseUniHandler.java

diff --git a/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/runtime/src/main/java/io/quarkus/resteasy/reactive/qute/runtime/TemplateResponseUniHandler.java b/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/runtime/src/main/java/io/quarkus/resteasy/reactive/qute/runtime/TemplateResponseUniHandler.java
index 10b7dc86e0e..ebf2667b445 100644
--- a/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/runtime/src/main/java/io/quarkus/resteasy/reactive/qute/runtime/TemplateResponseUniHandler.java
+++ b/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/runtime/src/main/java/io/quarkus/resteasy/reactive/qute/runtime/TemplateResponseUniHandler.java
@@ -24,6 +24,8 @@ public void handle(ResteasyReactiveRequestContext requestContext) {
             return;
         }
 
+        requestContext.requireCDIRequestScope();
+
         if (engine == null) {
             synchronized (this) {
                 if (engine == null) {
Repository: quarkusio/quarkus
Issue: In a Gradle Quarkus application build, quarkusGenerateCode triggers a deprecation warning when sourcesJar is enabled

### Describe the bug

In a simple Quarkus app build, by simply enabling sources JAR, Gradle produces deprecation warnings:
```groovy
java {
    withSourcesJar()
}
```

This is a sample of the error:
`
Reason: Task ':app:sourcesJar' uses this output of task ':app:quarkusGenerateCode' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.
`

### Expected behavior

_No response_

### Actual behavior

_No response_

### How to Reproduce?

Reproducer: https://github.com/jskillin-idt/quarkusio-quarkus-issues-27259

### Output of `uname -a` or `ver`

Linux jacob-ubuntu-dev 5.15.0-43-generic #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

### Output of `java -version`

openjdk version "17.0.4" 2022-07-19 OpenJDK Runtime Environment (build 17.0.4+8-Ubuntu-122.04) OpenJDK 64-Bit Server VM (build 17.0.4+8-Ubuntu-122.04, mixed mode, sharing)

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.11.2.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

Gradle 7.4.1

### Additional information

_No response_

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

diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java
index 398111194bf..a30ec2aa012 100644
--- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java
+++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java
@@ -233,6 +233,9 @@ private void registerTasks(Project project, QuarkusPluginExtension quarkusExt) {
                     SourceSet mainSourceSet = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
                     SourceSet testSourceSet = sourceSets.getByName(SourceSet.TEST_SOURCE_SET_NAME);
 
+                    mainSourceSet.getJava().srcDirs(quarkusGenerateCode, quarkusGenerateCodeDev);
+                    testSourceSet.getJava().srcDirs(quarkusGenerateCodeTests);
+
                     quarkusGenerateCode.configure(task -> task.setSourcesDirectories(getSourcesParents(mainSourceSet)));
                     quarkusGenerateCodeDev.configure(task -> task.setSourcesDirectories(getSourcesParents(mainSourceSet)));
                     quarkusGenerateCodeTests.configure(task -> task.setSourcesDirectories(getSourcesParents(testSourceSet)));
Repository: quarkusio/quarkus
Issue: workingDir in quarkusDev not respected by gradle anymore

### Describe the bug

We set the workingDir in gradle like the following:

```gradle
        quarkusDev {
            workingDir = rootProject.projectDir
        }
```

We use this, so that the configuration `config/application.properies` is found and loaded for dev-mode. Since 1.10.x this isn't working anymore and it tries to load the config `\\build\\classes\\java\\main\\config\\application.properties` like when the workingDir is not set.

### Expected behavior

It should load the configuration from the `workingDir/config/application.properties`

### Actual behavior

_No response_

### How to Reproduce?

_No response_

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

_No response_

### Output of `java -version`

17

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

1.10.1

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

gradle 7.4.2

### Additional information

_No response_

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

diff --git a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
index 63b8fbd7c5b..88193badc9d 100644
--- a/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
+++ b/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
@@ -279,7 +279,7 @@ public void startDev() {
             String outputFile = System.getProperty(IO_QUARKUS_DEVMODE_ARGS);
             if (outputFile == null) {
                 getProject().exec(action -> {
-                    action.commandLine(runner.args()).workingDir(QuarkusPluginExtension.getLastFile(getCompilationOutput()));
+                    action.commandLine(runner.args()).workingDir(getWorkingDirectory().get());
                     action.setStandardInput(System.in)
                             .setErrorOutput(System.out)
                             .setStandardOutput(System.out);
Repository: quarkusio/quarkus
Issue: Elasticsearch Dev Services restarts container on every auto-compile

### Describe the bug

In DevMode, when having ElasticSearch dev services enabled and you modify code, causing dev mode to recompile, it restarts the ElasticSearch container on build.

This is not supposed to happen if configuration does not change.

The issue is the comparison of configurations `ElasticSearchDevServicesBuildTimeConfig` has no implementations of `.equals()` nor `hashCode()` so the comparison ALWAYS fails causing a container restart.



### Expected behavior

No restart if configuration did not change.

### Actual behavior

Container restarts every time regardless of wht changed.

### 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/elasticsearch-rest-client-common/deployment/src/main/java/io/quarkus/elasticsearch/restclient/common/deployment/ElasticsearchDevServicesBuildTimeConfig.java

diff --git a/extensions/elasticsearch-rest-client-common/deployment/src/main/java/io/quarkus/elasticsearch/restclient/common/deployment/ElasticsearchDevServicesBuildTimeConfig.java b/extensions/elasticsearch-rest-client-common/deployment/src/main/java/io/quarkus/elasticsearch/restclient/common/deployment/ElasticsearchDevServicesBuildTimeConfig.java
index 4c7e97f8219..fee7078a2b8 100644
--- a/extensions/elasticsearch-rest-client-common/deployment/src/main/java/io/quarkus/elasticsearch/restclient/common/deployment/ElasticsearchDevServicesBuildTimeConfig.java
+++ b/extensions/elasticsearch-rest-client-common/deployment/src/main/java/io/quarkus/elasticsearch/restclient/common/deployment/ElasticsearchDevServicesBuildTimeConfig.java
@@ -1,5 +1,6 @@
 package io.quarkus.elasticsearch.restclient.common.deployment;
 
+import java.util.Objects;
 import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigItem;
@@ -65,4 +66,24 @@ public class ElasticsearchDevServicesBuildTimeConfig {
      */
     @ConfigItem(defaultValue = "elasticsearch")
     public String serviceName;
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+        ElasticsearchDevServicesBuildTimeConfig that = (ElasticsearchDevServicesBuildTimeConfig) o;
+        return Objects.equals(shared, that.shared)
+                && Objects.equals(enabled, that.enabled)
+                && Objects.equals(port, that.port)
+                && Objects.equals(imageName, that.imageName)
+                && Objects.equals(javaOpts, that.javaOpts)
+                && Objects.equals(serviceName, that.serviceName);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(enabled, port, imageName, javaOpts, shared, serviceName);
+    }
 }
Repository: quarkusio/quarkus
Issue: Redis healthcheck message sometimes is not useful.

### Describe the bug

There is some runtime exceptions that has no message when they are fired. 

Actually the healthcheck performs a message with 
` return builder.down().withData("reason", "client [" + client.getKey() + "]: " + e.getMessage()).build();`


### Expected behavior

Reason should include a message that must explain what's happening on any exception. 

### Actual behavior

If getMessage() returns null the message is something like 

`"reason": "client [<default>]: null"`

### How to Reproduce?

1. Setup a 1 second timeout. 
2. Connect to a redis that is lagging or with high workload. 
3. Wait to a healthcheck happend. 
4. Read the healthcheck message. 

In this reproducer the `atMost` method of Mutiny will throw a `TimeoutException` that has no message ( null ). 

### 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/redis-client/runtime/src/main/java/io/quarkus/redis/runtime/client/health/RedisHealthCheck.java

diff --git a/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/runtime/client/health/RedisHealthCheck.java b/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/runtime/client/health/RedisHealthCheck.java
index e179a0cf1d5..5a64eb1d2ff 100644
--- a/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/runtime/client/health/RedisHealthCheck.java
+++ b/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/runtime/client/health/RedisHealthCheck.java
@@ -22,6 +22,7 @@
 import io.quarkus.redis.datasource.ReactiveRedisDataSource;
 import io.quarkus.redis.datasource.RedisDataSource;
 import io.quarkus.redis.runtime.client.config.RedisConfig;
+import io.smallrye.mutiny.TimeoutException;
 import io.vertx.mutiny.redis.client.Command;
 import io.vertx.mutiny.redis.client.Redis;
 import io.vertx.mutiny.redis.client.Request;
@@ -88,7 +89,12 @@ public HealthCheckResponse call() {
                 Duration timeout = getTimeout(client.getKey());
                 Response response = redisClient.send(Request.cmd(Command.PING)).await().atMost(timeout);
                 builder.up().withData(redisClientName, response.toString());
+            } catch (TimeoutException e) {
+                return builder.down().withData("reason", "client [" + client.getKey() + "]: timeout").build();
             } catch (Exception e) {
+                if (e.getMessage() == null) {
+                    return builder.down().withData("reason", "client [" + client.getKey() + "]: " + e).build();
+                }
                 return builder.down().withData("reason", "client [" + client.getKey() + "]: " + e.getMessage()).build();
             }
         }
Repository: quarkusio/quarkus
Issue: Kafka complaining about common unknown properties, regression in 2.14

### Describe the bug

Kafka complaining about common unknown properties, it's a regression, we had fix https://github.com/quarkusio/quarkus/pull/22504 since 2.6

Seems the message slightly changed in the latest Kafka client version.

```
2022-11-11 15:28:27,279 WARN  [org.apa.kaf.cli.con.ConsumerConfig] (Quarkus Main Thread) These configurations '[wildfly.sasl.relax-compliance]' were supplied but are not used yet.
2022-11-11 15:28:27,334 WARN  [org.apa.kaf.cli.pro.ProducerConfig] (Quarkus Main Thread) These configurations '[wildfly.sasl.relax-compliance]' were supplied but are not used yet.
```

### Expected behavior

Warning is deffered

### Actual behavior

Warning about `wildfly.sasl.relax-compliance`

### How to Reproduce?

Run app with kafka client

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

macOS

### Output of `java -version`

Java 17

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.14.0.Final

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

_No response_

### Additional information

_No response_

Changed files:
extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java

diff --git a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
index c29791d4215..ecabb78aeb7 100644
--- a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
+++ b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/KafkaProcessor.java
@@ -179,7 +179,7 @@ void silenceUnwantedConfigLogs(BuildProducer<LogCleanupFilterBuildItem> logClean
         List<String> ignoredMessages = new ArrayList<>();
         for (String ignoredConfigProperty : ignoredConfigProperties) {
             ignoredMessages
-                    .add("The configuration '" + ignoredConfigProperty + "' was supplied but isn't a known config.");
+                    .add("These configurations '[" + ignoredConfigProperty + "]' were supplied but are not used yet.");
         }
 
         logCleanupFilters.produce(new LogCleanupFilterBuildItem("org.apache.kafka.clients.consumer.ConsumerConfig",
Repository: quarkusio/quarkus
Issue: MultiPartConfig in HTTP Vert.x extension is insufficiently documented

### Describe the bug

Hello,

I have one opinion (you can ignore that one) and one concern (IMO bug) regarding https://github.com/quarkusio/quarkus/pull/29729 documentation.

**Opinion**: Please document this feature in more detail and ideally provide an example in docs. Documentation does not provide single example on `MultiPartConfig` and `fileContentTypes`. I understand you (and me) know what `MultiPartConfig#fileContentType` should be used for because we read this PR, but users didn't not, they only see this configuration property with text `A list of {@code ContentType} to indicate whether a given multipart field should be handled as a file part.`
With context of #29729 that sentence is completely clear, but you can only find this in configuration properties list.

**Concern** This PR added `MultiPartConfig` to Vert.x HTTP extension. `MultiPartConfig` only used by RESTEasy Reactive and ignored by every other extension (RESTEasy Classic, Reactive Routes, ...) while that fact is literally nowhere mentioned. 
 How is it possible to have the configuration in Vert.X HTTP extension and do not mention it only works for RESTEasy Reactive? How should user know that?

### Expected behavior

one of:
- I expect `MultiPartConfig#fileContentType` configuration property works for RESTEasy Classic, Reactive Routes etc.
- Document that it only works for RESTEasy Reactive

### Actual behavior

- only works for RESTEasy Reactive
- docs don't tell me that the property only works for single extension

### 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/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/MultiPartConfig.java

diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/MultiPartConfig.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/MultiPartConfig.java
index a0e262b28d6..43cfe26f7ed 100644
--- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/MultiPartConfig.java
+++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/MultiPartConfig.java
@@ -15,7 +15,12 @@
 public class MultiPartConfig {
 
     /**
-     * A list of {@code ContentType} to indicate whether a given multipart field should be handled as a file part.
+     * A comma-separated list of {@code ContentType} to indicate whether a given multipart field should be handled as a file
+     * part.
+     *
+     * You can use this setting to force HTTP-based extensions to parse a message part as a file based on its content type.
+     *
+     * For now, this setting only works when using RESTEasy Reactive.
      */
     @ConfigItem
     @ConvertWith(TrimmedStringConverter.class)
Repository: quarkusio/quarkus
Issue: quarkus.oidc.tls.verification  can not work in dev mode 

### Describe the bug


```log
135=12:30:17 INFO  [io.qu.oi.de.de.OidcDevConsoleProcessor] (build-61) OIDC Dev Console: discovering the provider metadata at https://10.32.1.215:8443/realms/bank/.well-known/openid-configuration
225=12:30:18 WARN  [io.qu.de.st.CombinedIndexBuildStep] (build-71) Failed to index boolean: Class does not exist in ClassLoader QuarkusClassLoader:Deployment Class Loader: DEV@3fc79729
146=12:30:19 INFO  [io.qu.oi.de.de.OidcDevConsoleProcessor] (build-61) OIDC metadata can not be discovered: java.util.concurrent.CompletionException: javax.net.ssl.SSLHandshakeException: Failed to create SSL co
nnection
```

### Expected behavior

_No response_

### Actual behavior

_No response_

### How to Reproduce?

_No response_

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

Microsoft Windows [ 10.0.19043.1110]

### Output of `java -version`

java version "11.0.7" 2020-04-14 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.7.3.Final

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

_No response_

### Additional information

_No response_

Changed files:
extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/OidcDevServicesUtils.java

diff --git a/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/OidcDevServicesUtils.java b/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/OidcDevServicesUtils.java
index 3f38775b5a5..5a277b381d8 100644
--- a/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/OidcDevServicesUtils.java
+++ b/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/OidcDevServicesUtils.java
@@ -8,6 +8,7 @@
 import io.vertx.core.Vertx;
 import io.vertx.core.http.HttpHeaders;
 import io.vertx.core.json.JsonObject;
+import io.vertx.ext.web.client.WebClientOptions;
 import io.vertx.mutiny.core.buffer.Buffer;
 import io.vertx.mutiny.ext.web.client.HttpRequest;
 import io.vertx.mutiny.ext.web.client.HttpResponse;
@@ -19,7 +20,10 @@ private OidcDevServicesUtils() {
     }
 
     public static WebClient createWebClient(Vertx vertx) {
-        return WebClient.create(new io.vertx.mutiny.core.Vertx(vertx));
+        WebClientOptions options = new WebClientOptions();
+        options.setTrustAll(true);
+        options.setVerifyHost(false);
+        return WebClient.create(new io.vertx.mutiny.core.Vertx(vertx), options);
     }
 
     public static String getPasswordAccessToken(WebClient client,
Repository: quarkusio/quarkus
Issue: Continuous testing is not picking up custom JUnit extension from same module

### Describe the bug

A Junit extension, e.g. a `org.junit.jupiter.api.extension.BeforeAllCallback`, that is registered via `src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension` is not picked up when `mvn quarkus:test` (CT) is run in that module.

If CT is run in another module that depends on the module that contains the extension, everything works as expected!

### Expected behavior

"local" extension is run

### Actual behavior

"local" extension is not run/found

### How to Reproduce?

[q_ct-junitext.zip](https://github.com/quarkusio/quarkus/files/8222903/q_ct-junitext.zip)

- `mvn verify` ✔️ 
- run test in Eclipse ✔️ 
- `mvn quarkus:test` ❌ 

### 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.7.3.Final and 2.7.4.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

Apache Maven 3.8.4

### Additional information

ℹ️ There is no issue when the extension is registered via `@ExtendWith(...)`!

Changed files:
core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java

diff --git a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java
index 4898fccee5e..328d1a12e2b 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/dev/testing/JunitTestRunner.java
@@ -195,6 +195,7 @@ public FilterResult apply(TestDescriptor testDescriptor) {
             return new Runnable() {
                 @Override
                 public void run() {
+                    final ClassLoader origCl = Thread.currentThread().getContextClassLoader();
                     try {
                         synchronized (JunitTestRunner.this) {
                             testsRunning = true;
@@ -222,6 +223,8 @@ public void quarkusStarting() {
 
                         Map<String, Map<UniqueId, TestResult>> resultsByClass = new HashMap<>();
                         AtomicReference<TestIdentifier> currentNonDynamicTest = new AtomicReference<>();
+
+                        Thread.currentThread().setContextClassLoader(tcl);
                         launcher.execute(testPlan, new TestExecutionListener() {
 
                             @Override
@@ -396,6 +399,7 @@ public void reportingEntryPublished(TestIdentifier testIdentifier, ReportEntry e
                                 throw new RuntimeException(e);
                             }
                         } finally {
+                            Thread.currentThread().setContextClassLoader(origCl);
                             synchronized (JunitTestRunner.this) {
                                 testsRunning = false;
                                 if (aborted) {
Repository: quarkusio/quarkus
Issue: RemoteControlledSampler fails with "No strategy present in response. Not updating sampler." in native mode

**Describe the bug**

When using Jaeger tracing by adding: `io.quarkus:quarkus-jaeger`, tracing seems to work, but a periodic error message is in the log, when using native mode.

I assume that updating the strategy is broken as well.

**Expected behavior**

Same as JVM mode: No error message. Update works.

**Actual behavior**

~~~
2020-07-01T11:31:05.711Z ERROR [RemoteControlledSampler] No strategy present in response. Not updating sampler.
~~~

**To Reproduce**
Steps to reproduce the behavior:
1. Enable tracing
2. Check the logs
3. 

**Environment (please complete the following information):**
 - Output of `uname -a` or `ver`: 
 - Output of `java -version`: 
 - GraalVM version (if different from Java): 
 - Quarkus version or git rev: 
 - Build tool (ie. output of `mvnw --version` or `gradlew --version`): 


Changed files:
extensions/jaeger/deployment/src/main/java/io/quarkus/jaeger/deployment/JaegerProcessor.java

diff --git a/extensions/jaeger/deployment/src/main/java/io/quarkus/jaeger/deployment/JaegerProcessor.java b/extensions/jaeger/deployment/src/main/java/io/quarkus/jaeger/deployment/JaegerProcessor.java
index 06e9e0308f6..a45fd1c9dea 100644
--- a/extensions/jaeger/deployment/src/main/java/io/quarkus/jaeger/deployment/JaegerProcessor.java
+++ b/extensions/jaeger/deployment/src/main/java/io/quarkus/jaeger/deployment/JaegerProcessor.java
@@ -62,6 +62,8 @@ public ReflectiveClassBuildItem reflectiveClasses() {
                         "io.jaegertracing.internal.samplers.http.ProbabilisticSamplingStrategy",
                         "io.jaegertracing.internal.samplers.http.RateLimitingSamplingStrategy",
                         "io.jaegertracing.internal.samplers.http.SamplingStrategyResponse")
-                .finalFieldsWritable(true).build();
+                .fields(true)
+                .finalFieldsWritable(true)
+                .build();
     }
 }
Repository: quarkusio/quarkus
Issue:  gradle quarkusBuild  has error : SRCFG00035: Failed to load resource


Since upgrading from to 1.13.x, run below command
```
./gradlew  quarkusBuild -Dquarkus.package.type=uber-jar  -Dorg.gradle.jvmargs=-Xmx256m
```
Gradle made a error: SRCFG00035: Failed to load resource, full stacktrace is:
```
> Task :processResources

> Task :classes
start copy some files...

> Task :inspectClassesForKotlinIC
> Task :jar

> Task :quarkusBuild
building quarkus jar

> Task :quarkusBuild FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':quarkusBuild'.
> java.lang.IllegalStateException: SRCFG00035: Failed to load resource

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
```
My system jdk version :
```
openjdk 11.0.10 2021-01-19
OpenJDK Runtime Environment 18.9 (build 11.0.10+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9, mixed mode, sharing)
```
when I use `adoptjdk15-openj9` or downgrade quarkus version to `1.12.2.Final`, it' all fine.


Changed files:
extensions/config-yaml/runtime/src/main/java/io/quarkus/config/yaml/runtime/ApplicationYamlConfigSourceLoader.java

diff --git a/extensions/config-yaml/runtime/src/main/java/io/quarkus/config/yaml/runtime/ApplicationYamlConfigSourceLoader.java b/extensions/config-yaml/runtime/src/main/java/io/quarkus/config/yaml/runtime/ApplicationYamlConfigSourceLoader.java
index 2f063642c30..9badce01571 100644
--- a/extensions/config-yaml/runtime/src/main/java/io/quarkus/config/yaml/runtime/ApplicationYamlConfigSourceLoader.java
+++ b/extensions/config-yaml/runtime/src/main/java/io/quarkus/config/yaml/runtime/ApplicationYamlConfigSourceLoader.java
@@ -3,6 +3,7 @@
 import java.io.IOException;
 import java.net.URI;
 import java.net.URL;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -45,8 +46,12 @@ public static class InFileSystem extends ApplicationYamlConfigSourceLoader imple
         @Override
         public List<ConfigSource> getConfigSources(final ClassLoader classLoader) {
             List<ConfigSource> configSources = new ArrayList<>();
-            configSources.addAll(loadConfigSources("config/application.yaml", 265, classLoader));
-            configSources.addAll(loadConfigSources("config/application.yml", 265, classLoader));
+            configSources.addAll(loadConfigSources(
+                    Paths.get(System.getProperty("user.dir"), "config", "application.yaml").toUri().toString(), 265,
+                    classLoader));
+            configSources.addAll(
+                    loadConfigSources(Paths.get(System.getProperty("user.dir"), "config", "application.yml").toUri().toString(),
+                            265, classLoader));
             return configSources;
         }