[202523] ClassCastException thrown opening CSS file
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapter.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapter.java
index 4dd474f..321c447 100644
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapter.java
+++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapter.java
@@ -115,12 +115,14 @@
// performance enhancement: using child.getNextSibling() rather than
// nodeList(item) for O(n) vs. O(n*n)
//
- Node node = (Node) object;
ArrayList v = new ArrayList();
- for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
- Node n = child;
- if (n.getNodeType() != Node.TEXT_NODE) {
- v.add(n);
+ if (object instanceof Node) {
+ Node node = (Node) object;
+ for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
+ Node n = child;
+ if (n.getNodeType() != Node.TEXT_NODE) {
+ v.add(n);
+ }
}
}
return v.toArray();
@@ -138,15 +140,18 @@
* Fetches the label image specific to this object instance.
*/
public Image getLabelImage(Object node) {
- Image image = CMImageUtil.getImage(CMImageUtil.getDeclaration((Node) node));
- if ((image == null) && (JFaceResources.getImageRegistry() != null)) {
- ImageRegistry imageRegistry = JFaceResources.getImageRegistry();
- String nodeName = getNodeName(node);
- image = imageRegistry.get(nodeName);
- if (image == null) {
- image = createImage(node);
- if (image != null) {
- imageRegistry.put(nodeName, image);
+ Image image = null;
+ if (node instanceof Node) {
+ image = CMImageUtil.getImage(CMImageUtil.getDeclaration((Node) node));
+ if ((image == null) && (JFaceResources.getImageRegistry() != null)) {
+ ImageRegistry imageRegistry = JFaceResources.getImageRegistry();
+ String nodeName = getNodeName(node);
+ image = imageRegistry.get(nodeName);
+ if (image == null) {
+ image = createImage(node);
+ if (image != null) {
+ imageRegistry.put(nodeName, image);
+ }
}
}
}
@@ -162,19 +167,25 @@
private String getNodeName(Object object) {
StringBuffer nodeName = new StringBuffer();
- Node node = (Node) object;
- nodeName.append(node.getNodeName());
+ if (object instanceof Node) {
+ Node node = (Node) object;
+ nodeName.append(node.getNodeName());
- if (node.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
- nodeName.insert(0, "DOCTYPE:"); //$NON-NLS-1$
+ if (node.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
+ nodeName.insert(0, "DOCTYPE:"); //$NON-NLS-1$
+ }
+
}
return nodeName.toString();
}
public Object getParent(Object object) {
- Node node = (Node) object;
- return node.getParentNode();
+ if (object instanceof Node) {
+ Node node = (Node) object;
+ return node.getParentNode();
+ }
+ return null;
}
private synchronized RefreshStructureJob getRefreshJob() {