@@ -590,12 +590,27 @@ internal Consumer(ConsumerBuilder<TKey, TValue> builder)
590590
591591 IntPtr configPtr = configHandle . DangerousGetHandle ( ) ;
592592
593- Librdkafka . conf_set_rebalance_cb ( configPtr , rebalanceDelegate ) ;
594- Librdkafka . conf_set_offset_commit_cb ( configPtr , commitDelegate ) ;
593+ if ( partitionsAssignedHandler != null || partitionsRevokedHandler != null )
594+ {
595+ Librdkafka . conf_set_rebalance_cb ( configPtr , rebalanceDelegate ) ;
596+ }
597+ if ( offsetsCommittedHandler != null )
598+ {
599+ Librdkafka . conf_set_offset_commit_cb ( configPtr , commitDelegate ) ;
600+ }
595601
596- Librdkafka . conf_set_error_cb ( configPtr , errorCallbackDelegate ) ;
597- Librdkafka . conf_set_log_cb ( configPtr , logCallbackDelegate ) ;
598- Librdkafka . conf_set_stats_cb ( configPtr , statisticsCallbackDelegate ) ;
602+ if ( errorHandler != null )
603+ {
604+ Librdkafka . conf_set_error_cb ( configPtr , errorCallbackDelegate ) ;
605+ }
606+ if ( logHandler != null )
607+ {
608+ Librdkafka . conf_set_log_cb ( configPtr , logCallbackDelegate ) ;
609+ }
610+ if ( statisticsHandler != null )
611+ {
612+ Librdkafka . conf_set_stats_cb ( configPtr , statisticsCallbackDelegate ) ;
613+ }
599614
600615 this . kafkaHandle = SafeKafkaHandle . Create ( RdKafkaType . Consumer , configPtr , this ) ;
601616 configHandle . SetHandleAsInvalid ( ) ; // config object is no longer useable.
0 commit comments