Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: fix StoragePoolStatusHandler initialization ......................................................................
engine: fix StoragePoolStatusHandler initialization The patch is about fixing NPE in the engine start up. SchedulerUtilQuartzImpl could not be injected by CDI into StoragePoolStatusHandler as the last one isn't a managed bean. Thus schedulerUtil member remained uninitiallized which caused the NPE. Change-Id: I6ca052e8cc564bb7291199dc1f79849a4e2580b8 Signed-off-by: Yevgeny Zaspitsky <yzasp...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolStatusHandler.java 1 file changed, 17 insertions(+), 10 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/27/42227/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolStatusHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolStatusHandler.java index 5e650d9..4c78e1c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolStatusHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StoragePoolStatusHandler.java @@ -2,39 +2,42 @@ import java.util.HashMap; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; import org.ovirt.engine.core.bll.Backend; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.SetStoragePoolStatusParameters; import org.ovirt.engine.core.common.action.VdcActionType; -import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.di.Injector; import org.ovirt.engine.core.utils.timer.OnTimerMethodAnnotation; import org.ovirt.engine.core.utils.timer.SchedulerUtil; import org.ovirt.engine.core.utils.timer.SchedulerUtilQuartzImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Inject; - public final class StoragePoolStatusHandler { private static final Logger log = LoggerFactory.getLogger(StoragePoolStatusHandler.class); private static HashMap<Guid, StoragePoolStatusHandler> _nonOperationalPools = new HashMap<>(); - private Guid poolId; - private String timerId; - @Inject - private SchedulerUtilQuartzImpl schedulerUtil; + private final Guid poolId; + private final SchedulerUtilQuartzImpl schedulerUtil; - private StoragePoolStatusHandler(Guid poolId) { + private String timerId; + + private StoragePoolStatusHandler(Guid poolId, SchedulerUtilQuartzImpl schedulerUtil) { + Objects.requireNonNull(schedulerUtil, "schedulerUtil cannot be null"); + this.poolId = poolId; - timerId = null; + this.schedulerUtil = schedulerUtil; + this.timerId = null; } protected SchedulerUtil getScheduler() { @@ -85,7 +88,11 @@ } } else if (status == StoragePoolStatus.NotOperational) { synchronized (_nonOperationalPools) { - _nonOperationalPools.put(poolId, new StoragePoolStatusHandler(poolId).scheduleTimeout()); + final SchedulerUtilQuartzImpl schedulerUtil = Injector.get(SchedulerUtilQuartzImpl.class); + final StoragePoolStatusHandler storagePoolStatusHandler = new StoragePoolStatusHandler( + poolId, + schedulerUtil); + _nonOperationalPools.put(poolId, storagePoolStatusHandler.scheduleTimeout()); } } } -- To view, visit https://gerrit.ovirt.org/42227 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6ca052e8cc564bb7291199dc1f79849a4e2580b8 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <yzasp...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches