This is an automated email from the ASF dual-hosted git repository. veithen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/synapse.git
The following commit(s) were added to refs/heads/master by this push: new f31acacc6 Make serializeRegistry deterministic f31acacc6 is described below commit f31acacc60b2fb0e5eebd9c97e7b3bba393beee2 Author: Andreas Veithen <andreas.veit...@gmail.com> AuthorDate: Thu Jun 2 20:22:25 2022 +0000 Make serializeRegistry deterministic RegistrySerializer.serializeRegistry iterates over the entries of a hash map and produces a result that depends on the Java version. Fix that by sorting the entries. --- .../java/org/apache/synapse/config/xml/RegistrySerializer.java | 10 ++++++---- .../apache/synapse/config/xml/RegistrySerializationTest.java | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/core/src/main/java/org/apache/synapse/config/xml/RegistrySerializer.java b/modules/core/src/main/java/org/apache/synapse/config/xml/RegistrySerializer.java index 6ba990f6d..80438e8ed 100644 --- a/modules/core/src/main/java/org/apache/synapse/config/xml/RegistrySerializer.java +++ b/modules/core/src/main/java/org/apache/synapse/config/xml/RegistrySerializer.java @@ -30,6 +30,8 @@ import org.apache.synapse.SynapseConstants; import org.apache.synapse.registry.Registry; import java.util.Iterator; +import java.util.Map; +import java.util.TreeMap; /** * <registry [name="string"] provider="provider.class"> @@ -55,10 +57,10 @@ public class RegistrySerializer { handleException("Invalid registry. Provider is required"); } - Iterator iter = registry.getConfigurationProperties().keySet().iterator(); - while (iter.hasNext()) { - String name = (String) iter.next(); - String value = (String) registry.getConfigurationProperties().get(name); + // Sort the properties to make the result deterministic. + for (Map.Entry<Object, Object> entry : new TreeMap<>(registry.getConfigurationProperties()).entrySet()) { + String name = (String) entry.getKey(); + String value = (String) entry.getValue(); OMElement property = fac.createOMElement("parameter", synNS); property.addAttribute(fac.createOMAttribute( "name", nullNS, name)); diff --git a/modules/core/src/test/java/org/apache/synapse/config/xml/RegistrySerializationTest.java b/modules/core/src/test/java/org/apache/synapse/config/xml/RegistrySerializationTest.java index b87138435..db34f1dde 100644 --- a/modules/core/src/test/java/org/apache/synapse/config/xml/RegistrySerializationTest.java +++ b/modules/core/src/test/java/org/apache/synapse/config/xml/RegistrySerializationTest.java @@ -33,8 +33,8 @@ public class RegistrySerializationTest extends AbstractTestCase { String regitryConfiguration = "<syn:registry xmlns:syn=\"http://ws.apache.org/ns/synapse\" " + "provider=\"org.apache.synapse.registry.url.SimpleURLRegistry\">" + - "<syn:parameter name=\"root\">file:./../../repository/</syn:parameter>" + "<syn:parameter name=\"cachableDuration\">15000</syn:parameter>" + + "<syn:parameter name=\"root\">file:./../../repository/</syn:parameter>" + "</syn:registry>"; OMElement registryElement = createOMElement(regitryConfiguration);