diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/elements/task/TaskGNodeBuilder.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/elements/task/TaskGNodeBuilder.java index 084d3cfb..1385c6b5 100644 --- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/elements/task/TaskGNodeBuilder.java +++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/elements/task/TaskGNodeBuilder.java @@ -29,7 +29,6 @@ import org.openbpmn.glsp.bpmn.IconGCompartment; import org.openbpmn.glsp.bpmn.TaskGNode; import org.openbpmn.glsp.elements.IconGCompartmentBuilder; -import org.openbpmn.glsp.model.BPMNGModelFactory; import org.openbpmn.glsp.utils.BPMNGraphUtil; /** @@ -43,7 +42,7 @@ */ public class TaskGNodeBuilder extends AbstractGNodeBuilder { - private static Logger logger = Logger.getLogger(BPMNGModelFactory.class.getName()); + private static Logger logger = Logger.getLogger(TaskGNodeBuilder.class.getName()); private static final String V_GRAB = "vGrab"; private static final String H_GRAB = "hGrab"; private final String name; diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelFactory.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelFactory.java index 5cc738aa..aebe4ffa 100644 --- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelFactory.java +++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelFactory.java @@ -132,10 +132,13 @@ public void createGModel() { } if (!modelState.isInitialized()) { + long l = System.currentTimeMillis(); GGraph newGModel = buildGGraph(getBpmnModel()); + modelState.updateRoot(newGModel); - modelState.getRoot().setRevision(-1); + // modelState.getRoot().setRevision(-1); // do not reset revision! + // see https://github.com/eclipse-glsp/glsp/discussions/949 if (newGModel == null) { logger.warn("Unable to create model - no processes found - creating an empty model"); @@ -194,9 +197,9 @@ public static GModelRoot createNewEmptyRoot(final String rootID) { */ public GGraph buildGGraph(final BPMNModel model) { - // create the RootBuiler + // create the RootBuilder GGraphBuilder rootBuilder = new GGraphBuilder() // - .id("root_" + BPMNModel.generateShortID()); + .id(modelState.getRootID()); List gRootNodeList = new ArrayList<>(); try { diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelState.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelState.java index ce890efd..65799e1b 100644 --- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelState.java +++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/model/BPMNGModelState.java @@ -15,15 +15,8 @@ ********************************************************************************/ package org.openbpmn.glsp.model; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - import org.eclipse.glsp.server.model.DefaultGModelState; import org.openbpmn.bpmn.BPMNModel; -import org.openbpmn.extension.BPMNExtension; - -import com.google.inject.Inject; /** * The BPMNGModelState extends the DefaultGModelState and provides the property @@ -36,10 +29,7 @@ public class BPMNGModelState extends DefaultGModelState { private BPMNModel bpmnModel; private boolean initialized = false; - List extensionKinds = new ArrayList<>(); - - @Inject - protected Set extensions; + private String rootID = "undefined_root_id"; public BPMNModel getBpmnModel() { return bpmnModel; @@ -47,9 +37,15 @@ public BPMNModel getBpmnModel() { public void setBpmnModel(final BPMNModel bpmnModel) { this.bpmnModel = bpmnModel; + // create a new unique id + rootID = "root_" + BPMNModel.generateShortID(); this.setRoot(null); } + public String getRootID() { + return rootID; + } + public boolean isInitialized() { return initialized; }