You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2017/10/03 14:24:03 UTC
[26/35] brooklyn-server git commit: change
TaskInternal.setSubmittedBy(Maybe) to take a String
change TaskInternal.setSubmittedBy(Maybe) to take a String
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/ed4eeba2
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/ed4eeba2
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/ed4eeba2
Branch: refs/heads/master
Commit: ed4eeba2f97545d5343f33ff7d08febad52bc523
Parents: 4b7844c
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Sep 28 15:41:52 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Sep 28 15:41:52 2017 +0100
----------------------------------------------------------------------
.../util/core/task/BasicExecutionManager.java | 3 ++-
.../apache/brooklyn/util/core/task/BasicTask.java | 18 ++++++------------
.../brooklyn/util/core/task/ForwardingTask.java | 4 ++--
.../brooklyn/util/core/task/TaskInternal.java | 3 ++-
4 files changed, 12 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed4eeba2/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
index c2bf12c..e71b43e 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
@@ -755,7 +755,8 @@ public class BasicExecutionManager implements ExecutionManager {
Task<?> currentTask = Tasks.current();
if (currentTask!=null) ((TaskInternal<?>)task).setSubmittedByTask(
// do this instead of soft reference (2017-09) as soft refs impact GC
- Maybe.of(new TaskLookup(this, currentTask)) );
+ Maybe.of(new TaskLookup(this, currentTask)),
+ currentTask.getId());
}
((TaskInternal<?>)task).setSubmitTimeUtc(System.currentTimeMillis());
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed4eeba2/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
index 9367b4a..4f448ec 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
@@ -43,11 +43,9 @@ import java.util.concurrent.TimeoutException;
import org.apache.brooklyn.api.mgmt.HasTaskChildren;
import org.apache.brooklyn.api.mgmt.Task;
-import org.apache.brooklyn.api.objs.Identifiable;
import org.apache.brooklyn.util.JavaGroovyEquivalents;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.guava.Maybe;
-import org.apache.brooklyn.util.guava.Maybe.MaybeSupplier;
import org.apache.brooklyn.util.text.Identifiers;
import org.apache.brooklyn.util.text.Strings;
import org.apache.brooklyn.util.time.Duration;
@@ -58,7 +56,6 @@ import org.slf4j.LoggerFactory;
import com.google.common.annotations.Beta;
import com.google.common.base.Function;
import com.google.common.base.Objects;
-import com.google.common.base.Supplier;
import com.google.common.base.Throwables;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
@@ -204,6 +201,7 @@ public class BasicTask<T> implements TaskInternal<T> {
protected long startTimeUtc = -1;
protected long endTimeUtc = -1;
protected Maybe<Task<?>> submittedByTask;
+ protected String submittedByTaskId;
protected volatile Thread thread = null;
protected volatile boolean cancelled = false;
@@ -247,14 +245,9 @@ public class BasicTask<T> implements TaskInternal<T> {
}
@Override
public String getSubmittedByTaskId() {
+ if (submittedByTaskId!=null) return submittedByTaskId;
if (submittedByTask==null || submittedByTask.isAbsent()) return null;
- if (submittedByTask instanceof MaybeSupplier) {
- Supplier<?> supplier = ((MaybeSupplier<?>)submittedByTask).getSupplier();
- if (supplier instanceof Identifiable) {
- return ((Identifiable)supplier).getId();
- }
- }
- return submittedByTask.get().getId();
+ throw new IllegalStateException("Task was set up with a submitted task but no task ID");
}
/** the thread where the task is running, if it is running */
@@ -917,11 +910,12 @@ public class BasicTask<T> implements TaskInternal<T> {
@Override
public void setSubmittedByTask(Task<?> task) {
- setSubmittedByTask(Maybe.of(task));
+ setSubmittedByTask(Maybe.of(task), task==null ? null : task.getId());
}
@Override
- public void setSubmittedByTask(Maybe<Task<?>> taskM) {
+ public void setSubmittedByTask(Maybe<Task<?>> taskM, String taskId) {
submittedByTask = taskM;
+ submittedByTaskId = taskId;
}
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed4eeba2/core/src/main/java/org/apache/brooklyn/util/core/task/ForwardingTask.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/ForwardingTask.java b/core/src/main/java/org/apache/brooklyn/util/core/task/ForwardingTask.java
index 81bd972..1254c35 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/ForwardingTask.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/ForwardingTask.java
@@ -314,8 +314,8 @@ public abstract class ForwardingTask<T> extends ForwardingObject implements Task
}
@Override
- public void setSubmittedByTask(Maybe<Task<?>> taskM) {
- delegate().setSubmittedByTask(taskM);
+ public void setSubmittedByTask(Maybe<Task<?>> taskM, String taskId) {
+ delegate().setSubmittedByTask(taskM, taskId);
}
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/ed4eeba2/core/src/main/java/org/apache/brooklyn/util/core/task/TaskInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/TaskInternal.java b/core/src/main/java/org/apache/brooklyn/util/core/task/TaskInternal.java
index 7c82f6e..5bf5ae6 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/TaskInternal.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/TaskInternal.java
@@ -116,7 +116,8 @@ public interface TaskInternal<T> extends Task<T>, TaskInternalCancellableWithMod
void setSubmitTimeUtc(long currentTimeMillis);
void setSubmittedByTask(Task<?> task);
- void setSubmittedByTask(Maybe<Task<?>> task);
+ /** Variant of {@link #setSubmittedByTask(Task)} which allows better support for GC'd tasks. */
+ void setSubmittedByTask(Maybe<Task<?>> task, String taskId);
Set<Object> getMutableTags();