fix NPE in localhostendpoint
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4bbaac2d Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4bbaac2d Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4bbaac2d Branch: refs/heads/ldapplugin Commit: 4bbaac2d28644100ab92a0825089c6f19ccbcc1a Parents: 53e6a1c Author: Edison Su <[email protected]> Authored: Wed Jul 17 10:15:38 2013 -0700 Committer: Edison Su <[email protected]> Committed: Wed Jul 17 10:16:58 2013 -0700 ---------------------------------------------------------------------- .../src/org/apache/cloudstack/storage/LocalHostEndpoint.java | 6 ++++++ .../cloudstack/storage/endpoint/DefaultEndPointSelector.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4bbaac2d/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java ---------------------------------------------------------------------- diff --git a/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java b/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java index 932a07f..060ad6a 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java +++ b/engine/storage/src/org/apache/cloudstack/storage/LocalHostEndpoint.java @@ -24,6 +24,7 @@ import java.util.concurrent.TimeUnit; import com.cloud.configuration.Config; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.configuration.dao.ConfigurationDaoImpl; +import com.cloud.utils.component.ComponentContext; import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint; import org.apache.cloudstack.framework.async.AsyncCompletionCallback; import org.apache.cloudstack.storage.command.CopyCommand; @@ -56,6 +57,11 @@ public class LocalHostEndpoint implements EndPoint { executor = Executors.newScheduledThreadPool(10); } + public static EndPoint getEndpoint() { + LocalHostEndpoint endpoint = ComponentContext.inject(LocalHostEndpoint.class); + return endpoint; + } + @Override public long getId() { // TODO Auto-generated method stub http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4bbaac2d/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java ---------------------------------------------------------------------- diff --git a/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java b/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java index a44bbec..bbd6b6e 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java +++ b/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java @@ -191,7 +191,7 @@ public class DefaultEndPointSelector implements EndPointSelector { // we can arbitrarily pick one ssvm to do that task List<HostVO> ssAHosts = listUpAndConnectingSecondaryStorageVmHost(dcId); if (ssAHosts == null || ssAHosts.isEmpty()) { - return new LocalHostEndpoint(); // use local host as endpoint in + return LocalHostEndpoint.getEndpoint(); // use local host as endpoint in // case of no ssvm existing } Collections.shuffle(ssAHosts);
