Github user revans2 commented on a diff in the pull request:

    https://github.com/apache/storm/pull/2743#discussion_r199497485
  
    --- Diff: 
storm-server/src/main/java/org/apache/storm/metric/timed/TimedResource.java ---
    @@ -0,0 +1,33 @@
    +/**
    + * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.
    + * See the NOTICE file distributed with this work for additional 
information regarding copyright ownership.
    + * The ASF licenses this file to you under the Apache License, Version 2.0 
(the "License");
    + * you may not use this file except in compliance with the License.  You 
may obtain a copy of the License at
    + *
    + * http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing,
    + * software distributed under the License is distributed on an "AS IS" 
BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and 
limitations under the License.
    + */
    +
    +package org.apache.storm.metric.timed;
    +
    +import com.codahale.metrics.Timer;
    +
    +public class TimedResource<T extends AutoCloseable> extends Timed<T> {
    +
    +    public TimedResource(T measured, Timer timer) {
    +        super(measured, timer);
    +    }
    +
    +    @Override
    +    public void close() throws Exception {
    +        try {
    +            super.close();
    +        } finally {
    +            getMeasured().close();
    --- End diff --
    
    This was something I suggested.  I was concerned that if `super.close()` 
could throw an exception then `getMeasured.close()` which is what we are 
wrapping would never be closed.  This lets us know it will be called no matter 
what, and if both of them throw an exception (who knows why) than the exception 
from `getMeasured().close()` will mask the `super.close()` exception, but 
because of java8 it will store it as a masked exception.


---

Reply via email to