[153711] LinkElementAdapter has no check for empty ModelProvideAdapter
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
index 3156ed7..48f34ec 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
@@ -100,18 +100,21 @@
ICSSModel model = getExistingModel();
if (this.replaceModel) {
ICSSModel oldModel = model;
+ try {
+ model = retrieveModel();
+ setModel(model);
- model = retrieveModel();
- setModel(model);
-
- // release old model
- if (oldModel != null) {
- // get ModelProvideAdapter
- IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
- adapter.modelRemoved(oldModel);
-
- oldModel.releaseFromRead();
-
+ // release old model
+ if (oldModel != null) {
+ // get ModelProvideAdapter
+ IModelProvideAdapter adapter = (IModelProvideAdapter) ((INodeNotifier) getElement()).getAdapterFor(IModelProvideAdapter.class);
+ if (adapter != null)
+ adapter.modelRemoved(oldModel);
+ }
+ }
+ finally {
+ if (oldModel != null)
+ oldModel.releaseFromRead();
}
this.replaceModel = false;
}