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

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


The following commit(s) were added to refs/heads/main by this push:
     new fa4bdfbabd Use LinkedHashMap for deterministic WSDL namespace prefix 
assignment (#2944)
fa4bdfbabd is described below

commit fa4bdfbabdc2d786390c498b89d28a55114f908f
Author: Guillaume Nodet <[email protected]>
AuthorDate: Wed Mar 11 17:30:52 2026 +0100

    Use LinkedHashMap for deterministic WSDL namespace prefix assignment (#2944)
    
    ServiceWSDLBuilder uses a HashMap for the ns2prefix map, which causes
    non-deterministic namespace prefix assignment in generated WSDL. This
    leads to inconsistent output where elements may appear with or without
    namespace prefixes (e.g., <service> vs <wsdl:service>) depending on
    HashMap iteration order.
    
    Switch to LinkedHashMap to ensure insertion-order iteration, making
    the prefix assignment in getNewPrefix() deterministic.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 rt/wsdl/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/rt/wsdl/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java 
b/rt/wsdl/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java
index 0f40280d30..a5a209d846 100644
--- a/rt/wsdl/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java
+++ b/rt/wsdl/src/main/java/org/apache/cxf/wsdl11/ServiceWSDLBuilder.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -111,7 +112,7 @@ public class ServiceWSDLBuilder {
     public ServiceWSDLBuilder(Bus b, List<ServiceInfo> services) {
         this.services = services;
         bus = b;
-        ns2prefix = new HashMap<>();
+        ns2prefix = new LinkedHashMap<>();
         nsMan = new NSManager();
     }
 

Reply via email to