diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transformer/SyslogToMapTransformer.java b/spring-integration-core/src/main/java/org/springframework/integration/transformer/SyslogToMapTransformer.java index ce9f7ca2c2..a09f1b33c7 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transformer/SyslogToMapTransformer.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transformer/SyslogToMapTransformer.java @@ -19,7 +19,7 @@ import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -74,7 +74,7 @@ public class SyslogToMapTransformer extends AbstractPayloadTransformer transform(String payload) { - Map map = new HashMap(); + Map map = new LinkedHashMap(); Matcher matcher = pattern.matcher(payload); if (matcher.matches()) { try { diff --git a/spring-integration-core/src/test/java/org/springframework/integration/transformer/SysLogTransformerTests.java b/spring-integration-core/src/test/java/org/springframework/integration/transformer/SysLogTransformerTests.java index a66857a441..732674ef8b 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/transformer/SysLogTransformerTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/transformer/SysLogTransformerTests.java @@ -20,6 +20,7 @@ import static org.junit.Assert.assertTrue; import java.util.Date; import java.util.Map; +import java.util.Map.Entry; import org.junit.Test; @@ -44,6 +45,24 @@ public class SysLogTransformerTests { assertEquals("WEBERN", transformed.get(SyslogToMapTransformer.HOST)); assertEquals("TESTING[70729]", transformed.get(SyslogToMapTransformer.TAG)); assertEquals("TEST SYSLOG MESSAGE", transformed.get(SyslogToMapTransformer.MESSAGE)); + + String[] fields = new String[] {SyslogToMapTransformer.FACILITY, + SyslogToMapTransformer.SEVERITY, SyslogToMapTransformer.TIMESTAMP, SyslogToMapTransformer.HOST, + SyslogToMapTransformer.TAG, SyslogToMapTransformer.MESSAGE}; + Object[] values = new Object[] {19, 6, date, "WEBERN", "TESTING[70729]", "TEST SYSLOG MESSAGE"}; + // check iteration order + int n = 0; + for (Entry entry : transformed.entrySet()) { + assertEquals(fields[n++], entry.getKey()); + } + n = 0; + for (String key : transformed.keySet()) { + assertEquals(fields[n++], key); + } + n = 0; + for (Object value : transformed.values()) { + assertEquals(values[n++], value); + } } @Test