This is an automated email from the ASF dual-hosted git repository.

fjtiradosarti pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git


The following commit(s) were added to refs/heads/main by this push:
     new 19e3630465 [Fix #3460] Fix ClassCastException on Exception mapping 
(#3461)
19e3630465 is described below

commit 19e363046586574eafb2a02528b18b7bb2be4c99
Author: Francisco Javier Tirado Sarti 
<[email protected]>
AuthorDate: Fri Apr 5 18:23:28 2024 +0200

    [Fix #3460] Fix ClassCastException on Exception mapping (#3461)
    
    * [Fix #3460] Fix ClassCastException on Exception mapping
    
    * Revert "[Fix #3460] Fix ClassCastException on Exception mapping"
    
    This reverts commit 6f729ffc99c7e0c32a52db1e0cd4c7ad174bddd0.
    
    * [Fix #3460] Conservative approach
---
 .../kogito/resource/exceptions/BaseExceptionsHandler.java | 15 ++++++---------
 .../serving/customfunctions/it/KnativeServingAddonIT.java |  2 +-
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git 
a/addons/common/rest-exception-handler/src/main/java/org/kie/kogito/resource/exceptions/BaseExceptionsHandler.java
 
b/addons/common/rest-exception-handler/src/main/java/org/kie/kogito/resource/exceptions/BaseExceptionsHandler.java
index 30409c0f6a..6ea4f90d3e 100644
--- 
a/addons/common/rest-exception-handler/src/main/java/org/kie/kogito/resource/exceptions/BaseExceptionsHandler.java
+++ 
b/addons/common/rest-exception-handler/src/main/java/org/kie/kogito/resource/exceptions/BaseExceptionsHandler.java
@@ -176,16 +176,13 @@ public abstract class BaseExceptionsHandler<T> {
     public <R extends Exception, U> T mapException(R exception) {
         FunctionHolder<T, U> holder = (FunctionHolder<T, U>) 
mapper.getOrDefault(exception.getClass(), defaultHolder);
         U body = holder.getContentGenerator().apply(exception);
-        if (exception instanceof ProcessInstanceExecutionException || 
exception instanceof WorkItemExecutionException) {
-            Throwable rootCause = exception.getCause();
-
-            while (rootCause != null) {
-                if (mapper.containsKey(rootCause.getClass())) {
-                    holder = (FunctionHolder<T, U>) 
mapper.get(rootCause.getClass());
-                    break;
-                }
-                rootCause = rootCause.getCause();
+        Throwable rootCause = exception.getCause();
+        while (rootCause != null) {
+            if (mapper.containsKey(rootCause.getClass())) {
+                holder = (FunctionHolder<T, U>) 
mapper.get(rootCause.getClass());
+                exception = (R) rootCause;
             }
+            rootCause = rootCause.getCause();
         }
         return holder.getResponseGenerator().apply(exception).apply(body);
     }
diff --git 
a/quarkus/addons/knative/serving/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/serving/customfunctions/it/KnativeServingAddonIT.java
 
b/quarkus/addons/knative/serving/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/serving/customfunctions/it/KnativeServingAddonIT.java
index 6154088c10..fd48c99774 100644
--- 
a/quarkus/addons/knative/serving/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/serving/customfunctions/it/KnativeServingAddonIT.java
+++ 
b/quarkus/addons/knative/serving/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/serving/customfunctions/it/KnativeServingAddonIT.java
@@ -264,7 +264,7 @@ class KnativeServingAddonIT {
                 .accept(ContentType.JSON).when()
                 .post("/serviceNotFound")
                 .then()
-                .statusCode(HttpURLConnection.HTTP_INTERNAL_ERROR);
+                .statusCode(HttpURLConnection.HTTP_NOT_FOUND);
     }
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to