diff options
7 files changed, 33 insertions, 0 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java index 8d938d62798..9a4fa185a65 100644 --- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java +++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/IAtsWorkItem.java @@ -85,4 +85,6 @@ public interface IAtsWorkItem extends IAtsObject, HasAssignees { boolean isPeerReview(); + void clearCaches(); + } diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsStoreService.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsStoreService.java index 9e2867a18a0..23a0a22d4d9 100644 --- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsStoreService.java +++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/util/IAtsStoreService.java @@ -69,4 +69,6 @@ public interface IAtsStoreService { boolean isOfType(IAtsObject atsObject, IArtifactType artifactType); + void clearCaches(IAtsWorkItem workItem); + } diff --git a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsStoreService.java b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsStoreService.java index 4b7ec5e5284..5fb351b537c 100644 --- a/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsStoreService.java +++ b/plugins/org.eclipse.osee.ats.core.client/src/org/eclipse/osee/ats/core/client/internal/AtsStoreService.java @@ -28,6 +28,7 @@ import org.eclipse.osee.ats.api.user.IAtsUserService; import org.eclipse.osee.ats.api.util.IAtsChangeSet; import org.eclipse.osee.ats.api.util.IAtsStoreService; import org.eclipse.osee.ats.core.client.internal.store.AtsChangeSet; +import org.eclipse.osee.ats.core.workflow.WorkItem; import org.eclipse.osee.framework.core.data.ArtifactId; import org.eclipse.osee.framework.core.data.ArtifactTypeId; import org.eclipse.osee.framework.core.data.AttributeTypeId; @@ -190,4 +191,9 @@ public class AtsStoreService implements IAtsStoreService { return isOfType(AtsClientService.get().getArtifact(atsObject), artifactType); } + @Override + public void clearCaches(IAtsWorkItem workItem) { + ((WorkItem) workItem).clearCaches(); + } + }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java index f71cdd53818..58381fd15c3 100644 --- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java +++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/mock/MockWorkItem.java @@ -266,4 +266,9 @@ public class MockWorkItem implements IAtsWorkItem { public boolean isOfType(ArtifactTypeId... artifactTypes) { return false; } + + @Override + public void clearCaches() { + // do nothing + } } 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 4908220411a..c8833f6a722 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 @@ -320,4 +320,11 @@ public class WorkItem extends AtsObject implements IAtsWorkItem { return services.getStoreService().isOfType(this.getStoreObject(), artifactTypes); } + @Override + public void clearCaches() { + stateMgr = null; + atsLog = null; + match = null; + } + } diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java index 1636955f02a..9d64e9a5e26 100644 --- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java +++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsChangeSet.java @@ -101,6 +101,11 @@ public class AtsChangeSet extends AbstractAtsChangeSet { listener.changesStored(this); } notifier.sendNotifications(getNotifications()); + for (IAtsObject atsObject : new ArrayList<>(atsObjects)) { + if (atsObject instanceof IAtsWorkItem) { + atsServer.getStoreService().clearCaches((IAtsWorkItem) atsObject); + } + } /** * Commented out on 0.25.0 due to performance issues; No users are using this feature. Will be re-enabled on diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsStoreServiceImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsStoreServiceImpl.java index aacf2e3ca19..a3f73ba312c 100644 --- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsStoreServiceImpl.java +++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/util/AtsStoreServiceImpl.java @@ -30,6 +30,7 @@ import org.eclipse.osee.ats.api.workdef.IAttributeResolver; import org.eclipse.osee.ats.api.workflow.log.IAtsLogFactory; import org.eclipse.osee.ats.api.workflow.state.IAtsStateFactory; import org.eclipse.osee.ats.core.util.AtsObjects; +import org.eclipse.osee.ats.core.workflow.WorkItem; import org.eclipse.osee.ats.rest.IAtsServer; import org.eclipse.osee.framework.core.data.ArtifactId; import org.eclipse.osee.framework.core.data.ArtifactTypeId; @@ -182,4 +183,9 @@ public class AtsStoreServiceImpl implements IAtsStoreService { return isOfType(atsObject.getStoreObject(), artifactType); } + @Override + public void clearCaches(IAtsWorkItem workItem) { + ((WorkItem) workItem).clearCaches(); + } + } |