@@ -59,7 +59,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
5959
6060 private @ Nullable JmsOperations jmsTemplate ;
6161
62- private MessageConverter jmsMessageConverter = new MessagingMessageConverter () ;
62+ private MessageConverter jmsMessageConverter ;
6363
6464 private boolean converterSet ;
6565
@@ -71,6 +71,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
7171 * Requires {@link #setConnectionFactory} or {@link #setJmsTemplate} to be called.
7272 */
7373 public JmsMessagingTemplate () {
74+ this .jmsMessageConverter = new MessagingMessageConverter ();
7475 }
7576
7677 /**
@@ -79,23 +80,27 @@ public JmsMessagingTemplate() {
7980 * @since 4.1.2
8081 */
8182 public JmsMessagingTemplate (ConnectionFactory connectionFactory ) {
82- this . jmsTemplate = new JmsTemplate (connectionFactory );
83+ this ( new JmsTemplate (connectionFactory ) );
8384 }
8485
8586 /**
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.
8888 */
89- public JmsMessagingTemplate (JmsOperations jmsTemplate ) {
89+ public JmsMessagingTemplate (JmsTemplate jmsTemplate ) {
9090 Assert .notNull (jmsTemplate , "JmsTemplate must not be null" );
9191 this .jmsTemplate = jmsTemplate ;
92+ this .jmsMessageConverter = new MessagingMessageConverter (jmsTemplate .getMessageConverter ());
9293 }
9394
9495 /**
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
9698 */
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 ());
99104 }
100105
101106
@@ -104,8 +109,10 @@ public JmsMessagingTemplate(JmsTemplate jmsTemplate) {
104109 * @since 4.1.2
105110 */
106111 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 );
108114 template .setConnectionFactory (connectionFactory );
115+ this .jmsTemplate = template ;
109116 }
110117 else {
111118 this .jmsTemplate = new JmsTemplate (connectionFactory );
0 commit comments