Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid W. Miller2018-04-18 20:52:35 +0000
committerDavid W. Miller2018-04-19 17:08:56 +0000
commit29b958a4bf4b5d905e6d20595bd8de9fae09a6d5 (patch)
tree74fb0d4962f3ed944d1451ea2612b5074a9dcf28 /plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee
parent6b00105809b1348e6a50c112cc9461c8aee382ec (diff)
downloadorg.eclipse.osee-29b958a4bf4b5d905e6d20595bd8de9fae09a6d5.tar.gz
org.eclipse.osee-29b958a4bf4b5d905e6d20595bd8de9fae09a6d5.tar.xz
org.eclipse.osee-29b958a4bf4b5d905e6d20595bd8de9fae09a6d5.zip
bug[ats_TW8647]: Fix for Merge Manager View will not show
Diffstat (limited to 'plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee')
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/accessors/DatabaseBranchAccessor.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/accessors/DatabaseBranchAccessor.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/accessors/DatabaseBranchAccessor.java
index 2758ee55d9f..56fb0c5317a 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/accessors/DatabaseBranchAccessor.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/accessors/DatabaseBranchAccessor.java
@@ -5,7 +5,9 @@ import static org.eclipse.osee.jdbc.JdbcConstants.JDBC__MAX_FETCH_SIZE;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchViewData;
@@ -52,8 +54,14 @@ public class DatabaseBranchAccessor implements IOseeDataAccessor<Branch> {
@Override
public void load(IOseeCache<Branch> cache) throws OseeCoreException {
String sql = String.format(SELECT_BRANCHES, jdbcClient.getDbType().getRecursiveWithSql());
- jdbcClient.runQuery(stmt -> cache.cache(load(cache, stmt)), JDBC__MAX_FETCH_SIZE, sql);
+ Map<MergeBranch, Long> mergeIdMap = new HashMap<>();
+ jdbcClient.runQuery(stmt -> cache.cache(load(cache, stmt, mergeIdMap)), JDBC__MAX_FETCH_SIZE, sql);
+ for (MergeBranch branch : mergeIdMap.keySet()) {
+ Long destId = mergeIdMap.get(branch);
+ Branch destBranch = cache.getById(destId);
+ branch.setDestinationBranch(destBranch);
+ }
List<BranchViewData> branchAndViews = oseeClient.getApplicabilityEndpoint(CoreBranches.COMMON).getViews();
List<Branch> branchViews = new ArrayList<>();
@@ -76,11 +84,11 @@ public class DatabaseBranchAccessor implements IOseeDataAccessor<Branch> {
public static Branch loadBranch(IOseeCache<Branch> cache, Long branchId) {
return ConnectionHandler.getJdbcClient().fetchOrException(
() -> new BranchDoesNotExist("Branch could not be acquired for branch id %d", branchId),
- stmt -> load(cache, stmt), SELECT_BRANCH, branchId);
+ stmt -> load(cache, stmt, null), SELECT_BRANCH, branchId);
}
- private static Branch load(IOseeCache<Branch> cache, JdbcStatement stmt) {
- Branch branch = createOrUpdate(cache, stmt);
+ private static Branch load(IOseeCache<Branch> cache, JdbcStatement stmt, Map<MergeBranch, Long> mergeIdMap) {
+ Branch branch = createOrUpdate(cache, stmt, mergeIdMap);
Branch parentBranch;
Branch sourceTxBranch;
@@ -98,7 +106,7 @@ public class DatabaseBranchAccessor implements IOseeDataAccessor<Branch> {
return branch;
}
- private static Branch createOrUpdate(IOseeCache<Branch> cache, JdbcStatement stmt) {
+ private static Branch createOrUpdate(IOseeCache<Branch> cache, JdbcStatement stmt, Map<MergeBranch, Long> mergeIdMap) {
Long branchId = stmt.getLong("branch_id");
String name = stmt.getString("branch_name");
BranchType branchType = BranchType.valueOf(stmt.getInt("branch_type"));
@@ -116,6 +124,10 @@ public class DatabaseBranchAccessor implements IOseeDataAccessor<Branch> {
Branch sourceBranch = cache.getById(stmt.getLong("source_branch_id"));
Branch destBranch = cache.getById(stmt.getLong("dest_branch_id"));
+ if (destBranch == null) {
+ mergeIdMap.put(mergeBranch, stmt.getLong("dest_branch_id"));
+ }
+
mergeBranch.setSourceBranch(sourceBranch);
mergeBranch.setDestinationBranch(destBranch);
} else {

Back to the top