@@ -692,4 +692,53 @@ public void testJmsWorkerWithCustomReciveForConsumerAndCustomReconnectValues() t
692692        assertEquals (100L , shared .getReconnectDelayMillisMin ());
693693        assertEquals (10000L , shared .getReconnectDelayMillisMax ());
694694    }
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+     }
695744}
0 commit comments