@@ -692,4 +692,53 @@ public void testJmsWorkerWithCustomReciveForConsumerAndCustomReconnectValues() t
692
692
assertEquals (100L , shared .getReconnectDelayMillisMin ());
693
693
assertEquals (10000L , shared .getReconnectDelayMillisMax ());
694
694
}
695
+
696
+ @ Test
697
+ public void verifyJmsMessageWithNullHeaders () throws Exception {
698
+ connectTask = getSourceTaskWithEmptyKafkaOffset ();
699
+
700
+ final Map <String , String > connectorConfigProps = createDefaultConnectorProperties ();
701
+ connectorConfigProps .put ("mq.message.body.jms" , "true" );
702
+ connectorConfigProps .put ("mq.record.builder" , "com.ibm.eventstreams.connect.mqsource.builders.DefaultRecordBuilder" );
703
+ connectorConfigProps .put ("mq.jms.properties.copy.to.kafka.headers" , "true" );
704
+
705
+ connectTask .start (connectorConfigProps );
706
+
707
+ final TextMessage message = getJmsContext ().createTextMessage ("hello" );
708
+ message .setStringProperty ("teststring" , "myvalue" );
709
+ message .setObjectProperty ("testObject" , null );
710
+
711
+ putAllMessagesToQueue (DEFAULT_SOURCE_QUEUE , Arrays .asList (message ));
712
+
713
+ final List <SourceRecord > kafkaMessages = connectTask .poll ();
714
+ assertEquals (1 , kafkaMessages .size ());
715
+
716
+ final SourceRecord kafkaMessage = kafkaMessages .get (0 );
717
+
718
+ assertThat (kafkaMessage .value ()).isEqualTo ("hello" );
719
+ assertThat (kafkaMessage .headers ().lastWithName ("teststring" ).value ()).isEqualTo ("myvalue" );
720
+ assertThat (kafkaMessage .headers ().lastWithName ("testObject" ).value ()).isNull ();
721
+ }
722
+
723
+ @ Test
724
+ public void verifyJmsMessageNoHeaderCopied_WhenCopyDisabledHavingNullHeader () throws Exception {
725
+ connectTask = getSourceTaskWithEmptyKafkaOffset ();
726
+
727
+ final Map <String , String > connectorConfigProps = createDefaultConnectorProperties ();
728
+ connectorConfigProps .put ("mq.message.body.jms" , "true" );
729
+ connectorConfigProps .put ("mq.record.builder" , "com.ibm.eventstreams.connect.mqsource.builders.DefaultRecordBuilder" );
730
+ connectorConfigProps .put ("mq.jms.properties.copy.to.kafka.headers" , "false" );
731
+
732
+ connectTask .start (connectorConfigProps );
733
+
734
+ final TextMessage message = getJmsContext ().createTextMessage ("hello" );
735
+ message .setStringProperty ("teststring" , "myvalue" );
736
+ message .setObjectProperty ("testObject" , null );
737
+ putAllMessagesToQueue (DEFAULT_SOURCE_QUEUE , Arrays .asList (message ));
738
+
739
+ final SourceRecord kafkaMessage = connectTask .poll ().get (0 );
740
+
741
+ assertThat (kafkaMessage .value ()).isEqualTo ("hello" );
742
+ assertThat (kafkaMessage .headers ()).isEmpty ();
743
+ }
695
744
}
0 commit comments