diff options
author | Nitin Dahyabhai | 2015-10-12 23:55:11 +0000 |
---|---|---|
committer | Nitin Dahyabhai | 2015-10-12 23:55:11 +0000 |
commit | c23563d0f7bb5c9d1fab6854c2b6fe1ea770bcb7 (patch) | |
tree | 3f70b77306d5b3f3ca3564c7cab6d0e0b5890a0b | |
parent | 4867b768e5b44d27cf5f820c2018ece183f6a0c2 (diff) | |
download | webtools.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
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); } } } |