@@ -59,7 +59,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
59
59
60
60
private @ Nullable JmsOperations jmsTemplate ;
61
61
62
- private MessageConverter jmsMessageConverter = new MessagingMessageConverter () ;
62
+ private MessageConverter jmsMessageConverter ;
63
63
64
64
private boolean converterSet ;
65
65
@@ -71,6 +71,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
71
71
* Requires {@link #setConnectionFactory} or {@link #setJmsTemplate} to be called.
72
72
*/
73
73
public JmsMessagingTemplate () {
74
+ this .jmsMessageConverter = new MessagingMessageConverter ();
74
75
}
75
76
76
77
/**
@@ -79,23 +80,27 @@ public JmsMessagingTemplate() {
79
80
* @since 4.1.2
80
81
*/
81
82
public JmsMessagingTemplate (ConnectionFactory connectionFactory ) {
82
- this . jmsTemplate = new JmsTemplate (connectionFactory );
83
+ this ( new JmsTemplate (connectionFactory ) );
83
84
}
84
85
85
86
/**
86
- * Create a {@code JmsMessagingTemplate} instance with the {@link JmsOperations} to use.
87
- * @since 7.0
87
+ * Create a {@code JmsMessagingTemplate} instance with the {@link JmsTemplate} to use.
88
88
*/
89
- public JmsMessagingTemplate (JmsOperations jmsTemplate ) {
89
+ public JmsMessagingTemplate (JmsTemplate jmsTemplate ) {
90
90
Assert .notNull (jmsTemplate , "JmsTemplate must not be null" );
91
91
this .jmsTemplate = jmsTemplate ;
92
+ this .jmsMessageConverter = new MessagingMessageConverter (jmsTemplate .getMessageConverter ());
92
93
}
93
94
94
95
/**
95
- * Create a {@code JmsMessagingTemplate} instance with the {@link JmsTemplate} to use.
96
+ * Create a {@code JmsMessagingTemplate} instance with the {@link JmsOperations} to use.
97
+ * @since 7.0
96
98
*/
97
- public JmsMessagingTemplate (JmsTemplate jmsTemplate ) {
98
- this ((JmsOperations ) jmsTemplate );
99
+ public JmsMessagingTemplate (JmsOperations jmsTemplate ) {
100
+ Assert .notNull (jmsTemplate , "JmsTemplate must not be null" );
101
+ this .jmsTemplate = jmsTemplate ;
102
+ this .jmsMessageConverter = (jmsTemplate instanceof JmsTemplate template ?
103
+ new MessagingMessageConverter (template .getMessageConverter ()) : new MessagingMessageConverter ());
99
104
}
100
105
101
106
@@ -104,8 +109,10 @@ public JmsMessagingTemplate(JmsTemplate jmsTemplate) {
104
109
* @since 4.1.2
105
110
*/
106
111
public void setConnectionFactory (ConnectionFactory connectionFactory ) {
107
- if (this .jmsTemplate instanceof JmsAccessor template ) {
112
+ if (this .jmsTemplate instanceof JmsAccessor accessor ) {
113
+ JmsTemplate template = new JmsTemplate (accessor );
108
114
template .setConnectionFactory (connectionFactory );
115
+ this .jmsTemplate = template ;
109
116
}
110
117
else {
111
118
this .jmsTemplate = new JmsTemplate (connectionFactory );
0 commit comments