Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNitin Dahyabhai2015-10-12 23:55:11 +0000
committerNitin Dahyabhai2015-10-12 23:55:11 +0000
commitc23563d0f7bb5c9d1fab6854c2b6fe1ea770bcb7 (patch)
tree3f70b77306d5b3f3ca3564c7cab6d0e0b5890a0b
parent4867b768e5b44d27cf5f820c2018ece183f6a0c2 (diff)
downloadwebtools.sourceediting-c23563d0f7bb5c9d1fab6854c2b6fe1ea770bcb7.tar.gz
webtools.sourceediting-c23563d0f7bb5c9d1fab6854c2b6fe1ea770bcb7.tar.xz
webtools.sourceediting-c23563d0f7bb5c9d1fab6854c2b6fe1ea770bcb7.zip
[479129] After rename html file DirtyRegionProcessor haven't document
Move the #releaseFromRead() call so it happens when removing the old document
-rw-r--r--bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java26
-rw-r--r--bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java16
2 files changed, 27 insertions, 15 deletions
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
index d21131e0bd..db78447d6a 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2001, 2013 IBM Corporation and others.
+ * Copyright (c) 2001, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -100,8 +100,6 @@ import org.eclipse.wst.sse.core.internal.util.Utilities;
* Dumpers based on 'type'.</p>
*/
public class ModelManagerImpl implements IModelManager {
-
-
static class ReadEditType {
ReadEditType(String type) {
@@ -200,7 +198,6 @@ public class ModelManagerImpl implements IModelManager {
* @return
*/
public synchronized static IModelManager getInstance() {
-
if (instance == null) {
instance = new ModelManagerImpl();
}
@@ -288,10 +285,16 @@ public class ModelManagerImpl implements IModelManager {
private void _decrCount(SharedObject sharedObject, ReadEditType type) {
if (type == READ) {
sharedObject.referenceCountForRead--;
+ if (Logger.DEBUG_MODELMANAGER) {
+ trace("decrementing Read count for model", sharedObject.theSharedModel.getId(), sharedObject.referenceCountForRead);
+ }
FileBufferModelManager.getInstance().disconnect(sharedObject.theSharedModel.getStructuredDocument());
}
else if (type == EDIT) {
sharedObject.referenceCountForEdit--;
+ if (Logger.DEBUG_MODELMANAGER) {
+ trace("decrementing Edit count for model", sharedObject.theSharedModel.getId(), sharedObject.referenceCountForEdit);
+ }
FileBufferModelManager.getInstance().disconnect(sharedObject.theSharedModel.getStructuredDocument());
}
else
@@ -663,10 +666,16 @@ public class ModelManagerImpl implements IModelManager {
synchronized(sharedObject) {
if (type == READ) {
sharedObject.referenceCountForRead++;
+ if (Logger.DEBUG_MODELMANAGER) {
+ trace("incrementing Read count for model", sharedObject.theSharedModel.getId(), sharedObject.referenceCountForRead);
+ }
FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
}
else if (type == EDIT) {
sharedObject.referenceCountForEdit++;
+ if (Logger.DEBUG_MODELMANAGER) {
+ trace("incrementing Edit count for model", sharedObject.theSharedModel.getId(), sharedObject.referenceCountForEdit);
+ }
FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
}
else
@@ -677,10 +686,16 @@ public class ModelManagerImpl implements IModelManager {
private void _initCount(SharedObject sharedObject, ReadEditType type) {
synchronized(sharedObject) {
if (type == READ) {
+ if (Logger.DEBUG_MODELMANAGER) {
+ trace("Creating model for Read", sharedObject.theSharedModel.getId(), 1);
+ }
FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
sharedObject.referenceCountForRead = 1;
}
else if (type == EDIT) {
+ if (Logger.DEBUG_MODELMANAGER) {
+ trace("Creating model for Edit", sharedObject.theSharedModel.getId(), 1);
+ }
FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
sharedObject.referenceCountForEdit = 1;
}
@@ -1876,6 +1891,9 @@ public class ModelManagerImpl implements IModelManager {
}
cleanupDiscardedModel(sharedObject.theSharedModel);
+ if (Logger.DEBUG_MODELMANAGER) {
+ trace("Remaining models in the model manager", fManagedObjects.entrySet(), fManagedObjects.size());
+ }
}
private void cleanupDiscardedModel(IStructuredModel structuredModel) {
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java
index 6524ba6758..a520f9fc62 100644
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java
+++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2001, 2011 IBM Corporation and others.
+ * Copyright (c) 2001, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -285,6 +285,7 @@ public class StructuredRegionProcessor extends DocumentRegionProcessor {
*/
if (fCurrentModel != null) {
fCurrentModel.removeModelLifecycleListener(fLifeCycleListener);
+ fCurrentModel.releaseFromRead();
fCurrentModel = null;
}
@@ -294,16 +295,9 @@ public class StructuredRegionProcessor extends DocumentRegionProcessor {
// add new lifecycle listener
if (fCurrentDoc != null) {
- try {
- fCurrentModel = getStructuredModelForRead(fCurrentDoc);
- if (fCurrentModel != null) {
- fCurrentModel.addModelLifecycleListener(fLifeCycleListener);
- }
- }
- finally {
- if (fCurrentModel != null) {
- fCurrentModel.releaseFromRead();
- }
+ fCurrentModel = getStructuredModelForRead(fCurrentDoc);
+ if (fCurrentModel != null) {
+ fCurrentModel.addModelLifecycleListener(fLifeCycleListener);
}
}
}

Back to the top