Skip to content

Commit

Permalink
Code cleanup: InstrumentedInvokers
Browse files Browse the repository at this point in the history
* Wrap requireNonNull around calls to Map#get after a containsKey
  check returns true
* Replace explicit try/finally with try-with-resources for Timer.Context
* Use var instead of "Meter meter" and "Timer timer", etc.
* Remove redundant type parameter in call to rethrow
  • Loading branch information
sleberknight committed Feb 8, 2024
1 parent 09ad9a8 commit 6be34ec
Showing 1 changed file with 19 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.kiwiproject.dropwizard.jakarta.xml.ws;

import static java.util.Objects.requireNonNull;

import com.codahale.metrics.Meter;
import com.codahale.metrics.Timer;
import com.google.common.collect.ImmutableMap;
Expand Down Expand Up @@ -33,15 +35,14 @@ public TimedInvoker(Invoker underlying, ImmutableMap<String, Timer> timers) {
public Object invoke(Exchange exchange, Object o) {

Object result;
String methodname = this.getTargetMethod(exchange).getName();
String methodName = this.getTargetMethod(exchange).getName();

if (timers.containsKey(methodName)) {
var timer = requireNonNull(timers.get(methodName));

if (timers.containsKey(methodname)) {
Timer timer = timers.get(methodname);
final Timer.Context context = timer.time();
try {
// Timer.Context is AutoCloseable, so this starts and closes (stops) the Timer.Context
try (Timer.Context ignored = timer.time()) {
result = this.underlying.invoke(exchange, o);
} finally {
context.stop();
}
} else {
result = this.underlying.invoke(exchange, o);
Expand All @@ -66,10 +67,10 @@ public MeteredInvoker(Invoker underlying, ImmutableMap<String, Meter> meters) {
public Object invoke(Exchange exchange, Object o) {

Object result;
String methodname = this.getTargetMethod(exchange).getName();
String methodName = this.getTargetMethod(exchange).getName();

if (meters.containsKey(methodname)) {
Meter meter = meters.get(methodname);
if (meters.containsKey(methodName)) {
var meter = requireNonNull(meters.get(methodName));
meter.mark();
}
result = this.underlying.invoke(exchange, o);
Expand Down Expand Up @@ -111,22 +112,23 @@ public ExceptionMeteredInvoker(Invoker underlying, ImmutableMap<String, Exceptio
public Object invoke(Exchange exchange, Object o) {

Object result;
String methodname = this.getTargetMethod(exchange).getName();
String methodName = this.getTargetMethod(exchange).getName();

try {
result = this.underlying.invoke(exchange, o);
return result;
} catch (Exception e) {

if (meters.containsKey(methodname)) {
ExceptionMeter meter = meters.get(methodname);
if (meter.getExceptionClass().isAssignableFrom(e.getClass()) ||
if (meters.containsKey(methodName)) {
var exceptionMeter = requireNonNull(meters.get(methodName));
var exceptionClass = exceptionMeter.getExceptionClass();
if (exceptionClass.isAssignableFrom(e.getClass()) ||
(e.getCause() != null &&
meter.getExceptionClass().isAssignableFrom(e.getCause().getClass()))) {
meter.getMeter().mark();
exceptionClass.isAssignableFrom(e.getCause().getClass()))) {
exceptionMeter.getMeter().mark();
}
}
this.<RuntimeException>rethrow(e); // unchecked rethrow
this.rethrow(e); // unchecked rethrow
return null; // avoid compiler warning
}
}
Expand Down

0 comments on commit 6be34ec

Please sign in to comment.