Repository: quarkusio/quarkus
Issue: Status Code and Message Mismatch in WebApplicationException

### Describe the bug

When using the RESTEasy Reactive Client the HTTP status message doesn't match the HTTP status code.

### Expected behavior

The HTTP status message is expected to match the status code

### Actual behavior

```java
 @Test
    void testWebApplicationException() {
        assertEquals("HTTP 428 Precondition required", new WebApplicationException(428).getMessage());
        // HTTP 428 Expectation Failed
        // should be: HTTP 428 Precondition required

        assertEquals("HTTP 429 Too Many Requests", new WebApplicationException(429).getMessage());
        // HTTP 429 Precondition Required
        // should be: HTTP 429 Too Many Requests

        assertEquals("431 Request Header Fields Too Large", new WebApplicationException(431).getMessage());
        // HTTP 431 Too Many Requests
        // should be: HTTP 431 Request Header Fields Too Large
    }

            // taken from Response.class
        //
        //    REQUESTED_RANGE_NOT_SATISFIABLE(416, "Requested Range Not Satisfiable"),
        //    /**
        //     * 417 Expectation Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1 documentation</a>}.
        //     *
        //     * @since 2.0
        //     */
        //    EXPECTATION_FAILED(417, "Expectation Failed"),
        //    /**
        //     * 428 Precondition required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP Status Codes</a>}.
        //     *
        //     * @since 2.1
        //     */
        //    PRECONDITION_REQUIRED(428, "Precondition Required"),
        //    /**
        //     * 429 Too Many Requests, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status Codes</a>}.
        //     *
        //     * @since 2.1
        //     */
        //    TOO_MANY_REQUESTS(429, "Too Many Requests"),
        //    /**
        //     * 431 Request Header Fields Too Large, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional HTTP Status Codes</a>}.
        //     *
        //     * @since 2.1
        //     */
        //    REQUEST_HEADER_FIELDS_TOO_LARGE(431, "Request Header Fields Too Large"),

```


### How to Reproduce?

run the JBang script:

```java
///usr/bin/env jbang "$0" "$@" ; exit $?
//JAVAC_OPTIONS -parameters
//JAVA_OPTIONS -Djava.util.logging.manager=org.jboss.logmanager.LogManager

//DEPS io.quarkus:quarkus-rest-client-reactive:2.6.1.Final
//DEPS io.quarkus:quarkus-arc:2.6.1.Final

import static java.lang.System.*;

import io.quarkus.runtime.annotations.QuarkusMain;
import io.quarkus.runtime.Quarkus;
import javax.inject.Inject;
import org.jboss.logging.Logger;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;

@QuarkusMain
public class webapplicationexception {

    public static void main(String... args) {
        System.out.println("Expected: " + Response.Status.PRECONDITION_REQUIRED.getStatusCode() + " " + Response.Status.PRECONDITION_REQUIRED.getReasonPhrase());
        System.out.println("Got: " + new WebApplicationException(428).getMessage());
        System.out.println();

        System.out.println("Expected: " + Response.Status.TOO_MANY_REQUESTS.getStatusCode() + " " + Response.Status.TOO_MANY_REQUESTS.getReasonPhrase());
        System.out.println("Got: " + new WebApplicationException(429).getMessage());
        System.out.println();

        System.out.println("Expected: " + Response.Status.REQUEST_HEADER_FIELDS_TOO_LARGE.getStatusCode() + " " + Response.Status.REQUEST_HEADER_FIELDS_TOO_LARGE.getReasonPhrase());
        System.out.println("Got: " + new WebApplicationException(431).getMessage());
    }

    // taken from public enum Status implements StatusType in Response.class
    //
    //    REQUESTED_RANGE_NOT_SATISFIABLE(416, "Requested Range Not Satisfiable"),
    //    /**
    //     * 417 Expectation Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1 documentation</a>}.
    //     *
    //     * @since 2.0
    //     */
    //    EXPECTATION_FAILED(417, "Expectation Failed"),
    //    /**
    //     * 428 Precondition required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP Status Codes</a>}.
    //     *
    //     * @since 2.1
    //     */
    //    PRECONDITION_REQUIRED(428, "Precondition Required"),
    //    /**
    //     * 429 Too Many Requests, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status Codes</a>}.
    //     *
    //     * @since 2.1
    //     */
    //    TOO_MANY_REQUESTS(429, "Too Many Requests"),
    //    /**
    //     * 431 Request Header Fields Too Large, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional HTTP Status Codes</a>}.
    //     *
    //     * @since 2.1
    //     */
    //    REQUEST_HEADER_FIELDS_TOO_LARGE(431, "Request Header Fields Too Large"),

}

```

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

Darwin cdh.localdomain 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 20:29:10 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T8101 arm64

### Output of `java -version`

java version "17" 2021-09-14 LTS Java(TM) SE Runtime Environment (build 17+35-LTS-2724) Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)

### 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`)

Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d) Maven home: ~/.m2/wrapper/dists/apache-maven-3.8.1-bin/2l5mhf2pq2clrde7f7qp1rdt5m/apache-maven-3.8.1 Java version: 17, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home Default locale: de_AT, platform encoding: UTF-8 OS name: "mac os x", version: "12.1", arch: "aarch64", family: "mac"

### Additional information

_No response_

Changed files:
independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/AbstractRestResponseBuilder.java

diff --git a/independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/AbstractRestResponseBuilder.java b/independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/AbstractRestResponseBuilder.java
index 6d074fa75f2..df452fb0532 100644
--- a/independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/AbstractRestResponseBuilder.java
+++ b/independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/AbstractRestResponseBuilder.java
@@ -32,6 +32,8 @@
     static {
         defaultReasonPhrases.put(100, "Continue");
         defaultReasonPhrases.put(101, "Switching Protocols");
+        defaultReasonPhrases.put(102, "Processing");
+        defaultReasonPhrases.put(103, "Early Hints");
         defaultReasonPhrases.put(200, "OK");
         defaultReasonPhrases.put(201, "Created");
         defaultReasonPhrases.put(202, "Accepted");
@@ -39,6 +41,8 @@
         defaultReasonPhrases.put(204, "No Content");
         defaultReasonPhrases.put(205, "Reset Content");
         defaultReasonPhrases.put(206, "Partial Content");
+        defaultReasonPhrases.put(208, "Already Reported");
+        defaultReasonPhrases.put(226, "IM Used");
         defaultReasonPhrases.put(300, "Multiple Choices");
         defaultReasonPhrases.put(301, "Moved Permanently");
         defaultReasonPhrases.put(302, "Found");
@@ -65,16 +69,22 @@
         defaultReasonPhrases.put(415, "Unsupported Media Type");
         defaultReasonPhrases.put(416, "Requested Range Not Satisfiable");
         defaultReasonPhrases.put(417, "Expectation Failed");
+        defaultReasonPhrases.put(421, "Misdirected Request");
         defaultReasonPhrases.put(426, "Upgrade Required");
-        defaultReasonPhrases.put(428, "Expectation Failed");
-        defaultReasonPhrases.put(429, "Precondition Required");
-        defaultReasonPhrases.put(431, "Too Many Requests");
+        defaultReasonPhrases.put(428, "Precondition Required");
+        defaultReasonPhrases.put(429, "Too Many Requests");
+        defaultReasonPhrases.put(431, "Request Header Fields Too Large");
+        defaultReasonPhrases.put(451, "Unavailable For Legal Reasons");
         defaultReasonPhrases.put(500, "Internal Server Error");
         defaultReasonPhrases.put(501, "Not Implemented");
         defaultReasonPhrases.put(502, "Bad Gateway");
         defaultReasonPhrases.put(503, "Service Unavailable");
         defaultReasonPhrases.put(504, "Gateway Timeout");
         defaultReasonPhrases.put(505, "HTTP Version Not Supported");
+        defaultReasonPhrases.put(506, "Variant Also Negotiates");
+        defaultReasonPhrases.put(507, "Insufficient Storage");
+        defaultReasonPhrases.put(508, "Loop Detected");
+        defaultReasonPhrases.put(510, "Not Extended");
         defaultReasonPhrases.put(511, "Network Authentication Required");
     }