brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aledsage <...@git.apache.org>
Subject [GitHub] incubator-brooklyn pull request: CLI commands for manipulating cat...
Date Tue, 19 May 2015 09:32:51 GMT
Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/incubator-brooklyn/pull/617#discussion_r30582994
  
    --- Diff: core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java ---
    @@ -348,13 +327,40 @@ private void addReferencedObjects(DeltaCollector deltaCollector)
{
         }
         
         @VisibleForTesting
    -    public void persistNow() {
    -        if (!isActive()) {
    +    public boolean persistNowSafely(boolean alreadyHasMutex) {
    +        Stopwatch timer = Stopwatch.createStarted();
    +        try {
    +            persistNowInternal(alreadyHasMutex);
    +            metrics.noteSuccess(Duration.of(timer));
    +            return true;
    +        } catch (RuntimeInterruptedException e) {
    +            LOG.debug("Interrupted persisting change-delta (rethrowing)", e);
    +            metrics.noteFailure(Duration.of(timer));
    +            metrics.noteError(e.toString());
    +            Thread.currentThread().interrupt();
    +            return false;
    +        } catch (Exception e) {
    --- End diff --
    
    I'd probably merge the `catch Exception` and the `catch Throwable`, with:
    
            } catch (Throwable t) {
                // Don't rethrow: the behaviour of executionManager is different from a scheduledExecutorService,
                // if we throw an exception, then our task will never get executed again
                LOG.error("Problem persisting change-delta", t);
                metrics.noteFailure(Duration.of(timer));
                metrics.noteError(t.toString());
                Exceptions.propagateIfFatal(t);
                return false;
    
    Downside is that log message is always error, and doesn't include whether or not it is
"(rethrowing)".


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message