Bad coding style: The member fields in org.apache.hadoop.ipc.metrics.RpcMetrics 
are public
------------------------------------------------------------------------------------------

                 Key: HADOOP-3470
                 URL: https://issues.apache.org/jira/browse/HADOOP-3470
             Project: Hadoop Core
          Issue Type: Improvement
          Components: metrics
            Reporter: Tsz Wo (Nicholas), SZE


In org.apache.hadoop.ipc.metrics.RpcMetrics,
{code}
//the following are member fields
  public MetricsTimeVaryingRate rpcQueueTime = new 
MetricsTimeVaryingRate("RpcQueueTime");
  public MetricsTimeVaryingRate rpcProcessingTime = new 
MetricsTimeVaryingRate("RpcProcessingTime");

  public Map <String, MetricsTimeVaryingRate> metricsList = 
Collections.synchronizedMap(new HashMap<String, MetricsTimeVaryingRate>());
{code}
Then, the fields are accessed directly in other classes.  For example, 
org.apache.hadoop.ipc.RPC.Server.call(...)
{code}
...
        MetricsTimeVaryingRate m = 
rpcMetrics.metricsList.get(call.getMethodName());

        if (m != null) {
                m.inc(processingTime);
        }
        else {
                rpcMetrics.metricsList.put(call.getMethodName(), new 
MetricsTimeVaryingRate(call.getMethodName()));
                m = rpcMetrics.metricsList.get(call.getMethodName());
                m.inc(processingTime);
        }
{code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to