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

fmariani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 91b5c366cd2 chore(deps): Bump jetty-version from 12.0.25 to 12.1.0 
(#18940)
91b5c366cd2 is described below

commit 91b5c366cd2a60b1d9c9e01f8eafcc21496884bd
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Wed Aug 20 11:41:12 2025 +0200

    chore(deps): Bump jetty-version from 12.0.25 to 12.1.0 (#18940)
    
    * chore(deps): Bump jetty-version from 12.0.25 to 12.1.0
    
    Bumps `jetty-version` from 12.0.25 to 12.1.0.
    
    Updates `org.eclipse.jetty.ee10:jetty-ee10-webapp` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty.ee10:jetty-ee10-servlet` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-server` from 12.0.25 to 12.1.0
    
    Updates 
`org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server` from 
12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty.websocket:jetty-websocket-jetty-server` from 
12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-security` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty.ee10:jetty-ee10-servlets` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-client` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-jmx` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-util` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty.http2:jetty-http2-client` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty.http2:jetty-http2-client-transport` from 12.0.25 
to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-util-ajax` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-io` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty:jetty-proxy` from 12.0.25 to 12.1.0
    
    Updates `org.eclipse.jetty.ee9:jetty-ee9-servlet` from 12.0.25 to 12.1.0
    
    ---
    updated-dependencies:
    - dependency-name: org.eclipse.jetty.ee10:jetty-ee10-webapp
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty.ee10:jetty-ee10-servlet
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-server
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: 
org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty.websocket:jetty-websocket-jetty-server
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-security
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty.ee10:jetty-ee10-servlets
      dependency-version: 12.1.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-client
      dependency-version: 12.1.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-jmx
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-util
      dependency-version: 12.1.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty.http2:jetty-http2-client
      dependency-version: 12.1.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty.http2:jetty-http2-client-transport
      dependency-version: 12.1.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-util-ajax
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-io
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty:jetty-proxy
      dependency-version: 12.1.0
      dependency-type: direct:production
      update-type: version-update:semver-minor
    - dependency-name: org.eclipse.jetty.ee9:jetty-ee9-servlet
      dependency-version: 12.1.0
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    
    * Upgrade to Jetty 12.1
    
    * Handle multipart parsing changes in Jetty 12.1
    
    ---------
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Croway <[email protected]>
---
 .../component/jetty12/AttachmentHttpBinding.java   | 58 +++++++++++++---------
 .../jetty/HttpBridgeMultipartRouteTest.java        |  4 +-
 .../component/jetty/JettyHttpContentTypeTest.java  |  5 +-
 .../camel/component/jetty/MyErrorHandler.java      |  4 +-
 components/camel-platform-http/pom.xml             |  6 ---
 parent/pom.xml                                     |  2 +-
 6 files changed, 43 insertions(+), 36 deletions(-)

diff --git 
a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/AttachmentHttpBinding.java
 
b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/AttachmentHttpBinding.java
index 6e7597e2320..a7af8bce33a 100644
--- 
a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/AttachmentHttpBinding.java
+++ 
b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty12/AttachmentHttpBinding.java
@@ -104,35 +104,45 @@ final class AttachmentHttpBinding extends 
DefaultHttpBinding {
         // attachment is optional
         AttachmentMessage am = new DefaultAttachmentMessage(message);
 
-        Enumeration<?> names = request.getParameterNames();
-        while (names.hasMoreElements()) {
-            String name = (String) names.nextElement();
-            if (am.getAttachment(name) != null) {
-                DataHandler dh = am.getAttachment(name);
-                Object value = dh;
-                if (dh.getContentType() == null || 
dh.getContentType().startsWith("text/plain")) {
-                    value = request.getParameter(name);
-                }
-                if (getHeaderFilterStrategy() != null
-                        && 
!getHeaderFilterStrategy().applyFilterToExternalHeaders(name, value, 
message.getExchange())) {
-                    HttpHelper.appendHeader(headers, name, value);
-                }
-                continue;
-            }
-
-            // there may be multiple values for the same name
-            String[] values = request.getParameterValues(name);
-            if (LOG.isTraceEnabled()) {
-                LOG.trace("HTTP parameter {} = {}", name, 
HttpHelper.sanitizeLog(values));
-            }
-
-            if (values != null) {
-                for (String value : values) {
+        try {
+            Enumeration<?> names = request.getParameterNames();
+            while (names.hasMoreElements()) {
+                String name = (String) names.nextElement();
+                if (am.getAttachment(name) != null) {
+                    DataHandler dh = am.getAttachment(name);
+                    Object value = dh;
+                    if (dh.getContentType() == null || 
dh.getContentType().startsWith("text/plain")) {
+                        value = request.getParameter(name);
+                    }
                     if (getHeaderFilterStrategy() != null
                             && 
!getHeaderFilterStrategy().applyFilterToExternalHeaders(name, value, 
message.getExchange())) {
                         HttpHelper.appendHeader(headers, name, value);
                     }
+                    continue;
                 }
+
+                // there may be multiple values for the same name
+                String[] values = request.getParameterValues(name);
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("HTTP parameter {} = {}", name, 
HttpHelper.sanitizeLog(values));
+                }
+
+                if (values != null) {
+                    for (String value : values) {
+                        if (getHeaderFilterStrategy() != null
+                                && 
!getHeaderFilterStrategy().applyFilterToExternalHeaders(name, value,
+                                        message.getExchange())) {
+                            HttpHelper.appendHeader(headers, name, value);
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            // In Jetty 12.1.0+, getParameterNames() may fail for multipart 
requests
+            // when multipart filter is disabled. This is expected behavior 
when
+            // enableMultipartFilter=false is used, so we silently skip 
parameter processing
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("Failed to populate request parameters, likely due 
to multipart parsing failure: {}", e.getMessage());
             }
         }
     }
diff --git 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeMultipartRouteTest.java
 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeMultipartRouteTest.java
index 57d178ed450..eb62bf3a8a7 100644
--- 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeMultipartRouteTest.java
+++ 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpBridgeMultipartRouteTest.java
@@ -55,7 +55,9 @@ public class HttpBridgeMultipartRouteTest extends 
BaseJettyTest {
         File jpg = new File("src/test/resources/java.jpg");
         String body = "TEST";
         HttpPost method = new HttpPost("http://localhost:"; + port2 + 
"/test/hello");
-        HttpEntity entity = 
MultipartEntityBuilder.create().addTextBody("body", 
body).addBinaryBody(jpg.getName(), jpg).build();
+        HttpEntity entity = MultipartEntityBuilder.create()
+                .addTextBody("body", body)
+                .addBinaryBody(jpg.getName(), jpg).build();
         method.setEntity(entity);
 
         try (CloseableHttpClient client = HttpClients.createDefault();
diff --git 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java
 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java
index c2c77eef217..02759a2cbfa 100644
--- 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java
+++ 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyHttpContentTypeTest.java
@@ -32,7 +32,8 @@ public class JettyHttpContentTypeTest extends BaseJettyTest {
     @Test
     public void testContentType() throws Exception {
         getMockEndpoint("mock:input").expectedBodiesReceived("Hello World");
-        
getMockEndpoint("mock:input").expectedHeaderReceived(Exchange.CONTENT_TYPE, 
"text/plain; charset=" + CHARSET);
+        
getMockEndpoint("mock:input").expectedHeaderReceived(Exchange.CONTENT_TYPE,
+                "text/plain; charset=" + CHARSET.toLowerCase());
         
getMockEndpoint("mock:input").expectedHeaderReceived(Exchange.HTTP_CHARACTER_ENCODING,
 CHARSET);
         
getMockEndpoint("mock:input").expectedHeaderReceived(Exchange.HTTP_URL, 
"http://127.0.0.1:"; + getPort() + "/foo");
         
getMockEndpoint("mock:input").expectedPropertyReceived(Exchange.CHARSET_NAME, 
CHARSET);
@@ -49,7 +50,7 @@ public class JettyHttpContentTypeTest extends BaseJettyTest {
     public void testContentTypeWithAction() throws Exception {
         getMockEndpoint("mock:input").expectedBodiesReceived("Hello World");
         
getMockEndpoint("mock:input").expectedHeaderReceived(Exchange.CONTENT_TYPE,
-                "text/plain; charset=" + CHARSET + "; 
action=\"http://somewhere.com/foo\"";);
+                "text/plain; charset=" + CHARSET.toLowerCase() + "; 
action=\"http://somewhere.com/foo\"";);
         
getMockEndpoint("mock:input").expectedHeaderReceived(Exchange.HTTP_CHARACTER_ENCODING,
 "ISO-8859-1");
         
getMockEndpoint("mock:input").expectedHeaderReceived(Exchange.HTTP_URL, 
"http://127.0.0.1:"; + getPort() + "/foo");
         
getMockEndpoint("mock:input").expectedPropertyReceived(Exchange.CHARSET_NAME, 
"ISO-8859-1");
diff --git 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/MyErrorHandler.java
 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/MyErrorHandler.java
index eeb98d25f4a..f74fa2dc512 100644
--- 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/MyErrorHandler.java
+++ 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/MyErrorHandler.java
@@ -27,12 +27,12 @@ public class MyErrorHandler extends ErrorHandler {
 
     @Override
     protected void writeErrorHtml(
-            Request request, Writer writer, Charset charset, int code, String 
message, Throwable cause, boolean showStacks)
+            Request request, Writer writer, Charset charset, int code, String 
message, Throwable cause)
             throws IOException {
         String uri = request.getHttpURI().toString();
 
         writeErrorHtmlMessage(request, writer, code, message, cause, uri);
-        if (showStacks) {
+        if (isShowStacks()) {
             writeErrorHtmlStacks(request, writer);
         }
         writer.write("<hr /><i><small>MyErrorHandler</small></i>");
diff --git a/components/camel-platform-http/pom.xml 
b/components/camel-platform-http/pom.xml
index 1881c98b146..d98a2827b86 100644
--- a/components/camel-platform-http/pom.xml
+++ b/components/camel-platform-http/pom.xml
@@ -43,12 +43,6 @@
         </dependency>
 
         <!-- test infra -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-infra-jetty</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-       </dependency>
        <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-test-infra-jetty</artifactId>
diff --git a/parent/pom.xml b/parent/pom.xml
index 99ed746a0eb..473af48e33a 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -287,7 +287,7 @@
         <jcip-annotations-version>1.0-1</jcip-annotations-version>
         <jcr-version>2.0</jcr-version>
         <jedis-client-version>6.1.0</jedis-client-version>
-        <jetty-version>12.0.25</jetty-version>
+        <jetty-version>12.1.0</jetty-version>
         <jetty-for-solr-version>10.0.20</jetty-for-solr-version>
         <jetty-plugin-version>${jetty-version}</jetty-plugin-version>
         <jetty-runner-groupId>org.eclipse.jetty</jetty-runner-groupId>

Reply via email to