@@ -1299,4 +1299,53 @@ public void verifyLoggingErrorsWithMessageHavingDefaultRecordBuilder() throws Ex
1299
1299
assertThat (processedRecords .get (0 ).topic ()).isEqualTo ("__dlq.mq.source" );
1300
1300
assertThat (processedRecords .get (1 ).topic ()).isEqualTo ("mytopic" );
1301
1301
}
1302
+
1303
+ @ Test
1304
+ public void verifyJmsMessageWithNullHeaders () throws Exception {
1305
+ connectTask = getSourceTaskWithEmptyKafkaOffset ();
1306
+
1307
+ final Map <String , String > connectorConfigProps = createDefaultConnectorProperties ();
1308
+ connectorConfigProps .put ("mq.message.body.jms" , "true" );
1309
+ connectorConfigProps .put ("mq.record.builder" , "com.ibm.eventstreams.connect.mqsource.builders.DefaultRecordBuilder" );
1310
+ connectorConfigProps .put ("mq.jms.properties.copy.to.kafka.headers" , "true" );
1311
+
1312
+ connectTask .start (connectorConfigProps );
1313
+
1314
+ final TextMessage message = getJmsContext ().createTextMessage ("hello" );
1315
+ message .setStringProperty ("teststring" , "myvalue" );
1316
+ message .setObjectProperty ("testObject" , null );
1317
+
1318
+ putAllMessagesToQueue (DEFAULT_SOURCE_QUEUE , Arrays .asList (message ));
1319
+
1320
+ final List <SourceRecord > kafkaMessages = connectTask .poll ();
1321
+ assertEquals (1 , kafkaMessages .size ());
1322
+
1323
+ final SourceRecord kafkaMessage = kafkaMessages .get (0 );
1324
+
1325
+ assertThat (kafkaMessage .value ()).isEqualTo ("hello" );
1326
+ assertThat (kafkaMessage .headers ().lastWithName ("teststring" ).value ()).isEqualTo ("myvalue" );
1327
+ assertThat (kafkaMessage .headers ().lastWithName ("testObject" ).value ()).isNull ();
1328
+ }
1329
+
1330
+ @ Test
1331
+ public void verifyJmsMessageNoHeaderCopied_WhenCopyDisabledHavingNullHeader () throws Exception {
1332
+ connectTask = getSourceTaskWithEmptyKafkaOffset ();
1333
+
1334
+ final Map <String , String > connectorConfigProps = createDefaultConnectorProperties ();
1335
+ connectorConfigProps .put ("mq.message.body.jms" , "true" );
1336
+ connectorConfigProps .put ("mq.record.builder" , "com.ibm.eventstreams.connect.mqsource.builders.DefaultRecordBuilder" );
1337
+ connectorConfigProps .put ("mq.jms.properties.copy.to.kafka.headers" , "false" );
1338
+
1339
+ connectTask .start (connectorConfigProps );
1340
+
1341
+ final TextMessage message = getJmsContext ().createTextMessage ("hello" );
1342
+ message .setStringProperty ("teststring" , "myvalue" );
1343
+ message .setObjectProperty ("testObject" , null );
1344
+ putAllMessagesToQueue (DEFAULT_SOURCE_QUEUE , Arrays .asList (message ));
1345
+
1346
+ final SourceRecord kafkaMessage = connectTask .poll ().get (0 );
1347
+
1348
+ assertThat (kafkaMessage .value ()).isEqualTo ("hello" );
1349
+ assertThat (kafkaMessage .headers ()).isEmpty ();
1350
+ }
1302
1351
}
0 commit comments