Erik Kringen created KAFKA-5656:
-----------------------------------

             Summary: Support bulk attributes request on KafkaMbean where some 
attributes do not exist
                 Key: KAFKA-5656
                 URL: https://issues.apache.org/jira/browse/KAFKA-5656
             Project: Kafka
          Issue Type: Bug
          Components: clients
            Reporter: Erik Kringen
            Priority: Minor


According to Oracle documentation on [Implementing a Dynamic 
MBean|http://docs.oracle.com/cd/E19698-01/816-7609/6mdjrf83d/index.html] 

bq. The bulk getter and setter methods usually rely on the generic getter and 
setter, respectively. This makes them independent of the management interface, 
which can simplify certain modifications. In this case, their implementation 
consists mostly of error checking on the list of attributes. However, all bulk 
getters and setters must be implemented so that an error on any one attribute 
does not interrupt or invalidate the bulk operation on the other attributes.

bq. If an attribute cannot be read, then its name-value pair is not included in 
the list of results. If an attribute cannot be written, it will not be copied 
to the returned list of successful set operations. As a result, if there are 
any errors, the lists returned by bulk operators will not have the same length 
as the array or list passed to them. In any case, the bulk operators do not 
guarantee that their returned lists have the same ordering of attributes as the 
input array or list.

The current implementation of 
{code}org.apache.kafka.common.metrics.JmxReporter.KafkaMbean#getAttributes{code}
 returns an empty list if any of the the requested attributes are not found.

This method should instead log the exception but allow all requested attributes 
that are present to be returned, as prescribed via the DynamicMBean interface.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to