Skip to content

Commit 697086d

Browse files
committed
Refactor JMSX property check to use static final Set
1 parent f306974 commit 697086d

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

activemq-client/src/main/java/org/apache/activemq/command/ActiveMQMessage.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,7 @@
1818

1919
import java.io.IOException;
2020
import java.io.UnsupportedEncodingException;
21-
import java.util.Enumeration;
22-
import java.util.HashMap;
23-
import java.util.List;
24-
import java.util.Map;
25-
import java.util.Vector;
21+
import java.util.*;
2622

2723
import jakarta.jms.DeliveryMode;
2824
import jakarta.jms.Destination;
@@ -51,6 +47,15 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
5147

5248
private static final Map<String, PropertySetter> JMS_PROPERTY_SETERS = new HashMap<String, PropertySetter>();
5349

50+
public static final Set<String> STRICT_PROVIDER_JMSX_PROPERTIES =
51+
Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(
52+
"JMSXDeliveryCount",
53+
"JMSXRcvTimestamp",
54+
"JMSXState",
55+
"JMSXProducerTXID",
56+
"JMSXConsumerTXID"
57+
)));
58+
5459
protected transient Callback acknowledgeCallback;
5560

5661
@Override
@@ -505,11 +510,7 @@ public void setObjectProperty(String name, Object value, boolean checkReadOnly)
505510
// Strict Compliance Check For Provider-Set JMSX Properties
506511
ActiveMQConnection conn = getConnection();
507512
if (conn != null && conn.isStrictCompliance()) {
508-
if ("JMSXDeliveryCount".equals(name) ||
509-
"JMSXRcvTimestamp".equals(name) ||
510-
"JMSXState".equals(name) ||
511-
"JMSXProducerTXID".equals(name) ||
512-
"JMSXConsumerTXID".equals(name)) {
513+
if (STRICT_PROVIDER_JMSX_PROPERTIES.contains(name)) {
513514
throw new JMSException("Provider-set JMSX property '" + name + "' cannot be set by a client under strict compliance.");
514515
}
515516
}

0 commit comments

Comments
 (0)