Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2017-12-08 17:55:19 +0000
committerdonald.g.dunne2017-12-08 17:55:19 +0000
commit290acdd6cf24fdf0a23949d3c0a508b2fcabb920 (patch)
tree1f115e273edadc1d158a418e1108bea479a69394 /plugins/org.eclipse.osee.ats.core/src
parentecfe2fa4e47a2b22a57e49f7843ac1e921c6d586 (diff)
downloadorg.eclipse.osee-290acdd6cf24fdf0a23949d3c0a508b2fcabb920.tar.gz
org.eclipse.osee-290acdd6cf24fdf0a23949d3c0a508b2fcabb920.tar.xz
org.eclipse.osee-290acdd6cf24fdf0a23949d3c0a508b2fcabb920.zip
Revert "bug[ats_TW5390]: Task generation results in missing attributes"
Diffstat (limited to 'plugins/org.eclipse.osee.ats.core/src')
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/state/AtsStateFactory.java35
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/WorkItem.java14
2 files changed, 22 insertions, 27 deletions
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/state/AtsStateFactory.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/state/AtsStateFactory.java
index c35c3aca963..862d96721fb 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/state/AtsStateFactory.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/state/AtsStateFactory.java
@@ -10,8 +10,6 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.state;
-import java.util.HashMap;
-import java.util.Map;
import org.eclipse.osee.ats.api.IAtsServices;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.user.IAtsUser;
@@ -20,8 +18,7 @@ import org.eclipse.osee.ats.api.workflow.log.IAtsLogFactory;
import org.eclipse.osee.ats.api.workflow.state.IAtsStateFactory;
import org.eclipse.osee.ats.api.workflow.state.IAtsStateManager;
import org.eclipse.osee.ats.api.workflow.state.IAtsWorkStateFactory;
-import org.eclipse.osee.framework.core.data.TransactionId;
-import org.eclipse.osee.framework.jdk.core.type.Id;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
/**
* @author Donald G. Dunne
@@ -31,8 +28,6 @@ public class AtsStateFactory implements IAtsStateFactory {
private final IAtsWorkStateFactory workStateFactory;
private final IAtsLogFactory logFactory;
private final IAtsServices services;
- Map<Id, IAtsStateManager> idToStateManager = new HashMap<>();
- Map<Id, TransactionId> idToTransactionId = new HashMap<>();
public AtsStateFactory(IAtsServices services, IAtsWorkStateFactory workStateFactory, IAtsLogFactory logFactory) {
this.services = services;
@@ -42,20 +37,21 @@ public class AtsStateFactory implements IAtsStateFactory {
@Override
public IAtsStateManager getStateManager(IAtsWorkItem workItem) {
- IAtsStateManager stateMgr = idToStateManager.get(workItem);
- TransactionId transId = idToTransactionId.get(workItem);
- TransactionId workItemTransaction = services.getStoreService().getTransactionId(workItem);
- if (stateMgr == null || (workItemTransaction.isValid() && workItemTransaction.notEqual(transId))) {
- stateMgr = new StateManager(workItem, logFactory, services);
- idToStateManager.put(workItem, stateMgr);
- idToTransactionId.put(workItem, services.getStoreService().getTransactionId(workItem));
+ StateManager stateMgr = new StateManager(workItem, logFactory, services);
+ return stateMgr;
+ }
+
+ @Override
+ public IAtsStateManager getStateManager(IAtsWorkItem workItem, boolean load) throws OseeCoreException {
+ IAtsStateManager stateMgr = getStateManager(workItem);
+ if (load) {
StateManagerStore.load(workItem, stateMgr, services.getAttributeResolver(), workStateFactory);
}
return stateMgr;
}
@Override
- public void writeToStore(IAtsUser asUser, IAtsWorkItem workItem, IAtsChangeSet changes) {
+ public void writeToStore(IAtsUser asUser, IAtsWorkItem workItem, IAtsChangeSet changes) throws OseeCoreException {
StateManagerStore.writeToStore(asUser, workItem, (StateManager) workItem.getStateMgr(),
services.getAttributeResolver(), changes, workStateFactory);
}
@@ -65,15 +61,4 @@ public class AtsStateFactory implements IAtsStateFactory {
StateManagerStore.load(workItem, stateMgr, services.getAttributeResolver(), workStateFactory);
}
- @Override
- public void clearStateManager(Id id) {
- idToStateManager.put(id, null);
- }
-
- @Override
- public void setStateMgr(IAtsWorkItem workItem, IAtsStateManager stateMgr) {
- idToStateManager.put(workItem, stateMgr);
- idToTransactionId.put(workItem, services.getStoreService().getTransactionId(workItem));
- }
-
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/WorkItem.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/WorkItem.java
index 8d9b7e072bb..4908220411a 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/WorkItem.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/workflow/WorkItem.java
@@ -37,6 +37,7 @@ import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeId;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Conditions;
import org.eclipse.osee.logger.Log;
/**
@@ -45,6 +46,7 @@ import org.eclipse.osee.logger.Log;
public class WorkItem extends AtsObject implements IAtsWorkItem {
protected final ArtifactToken artifact;
+ private IAtsStateManager stateMgr;
private IAtsLog atsLog;
private IWorkDefinitionMatch match;
protected final IAtsServices services;
@@ -135,12 +137,20 @@ public class WorkItem extends AtsObject implements IAtsWorkItem {
@Override
public IAtsStateManager getStateMgr() {
- return services.getStateFactory().getStateManager(this);
+ if (stateMgr == null) {
+ try {
+ stateMgr = services.getStateFactory().getStateManager(this, true);
+ } catch (OseeCoreException ex) {
+ logger.error(ex, "Error getting stateManager for artifact[%s]", artifact);
+ }
+ }
+ return stateMgr;
}
@Override
public void setStateManager(IAtsStateManager stateMgr) {
- services.getStateFactory().setStateMgr(this, stateMgr);
+ Conditions.assertNotNull(stateMgr, "stateMgr");
+ this.stateMgr = stateMgr;
}
@Override

Back to the top