[120267] NPE when calling DocumentCSS#getOverrideStyle() -- committed to HEAD only, not released for build.
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
index 7b5fa28..61559cb 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
@@ -329,24 +329,19 @@
/**
* Provides the type of IStructuredDocumentRegion ... not to be confused
- * with type of XML node!
+ * with type of XML node! This is subclassed, if something other than type
+ * of first region is desired.
+ *
*/
- // For now return a String.
public String getType() {
- // for a "named" XML node (e.g. start tag), but type of
- // flatnode is "named xml node" (which is always the second region).
- // Therefore, if there's two or more regions, the type for the
- // flatnode
- // will be the type of the second region. Otherwise it will be the
- // type
- // of the first region.
- // Note: this can be refined as needed.
- String result = UNDEFINED; // "IStructuredDocumentRegion.UNDEFINED";
- // //$NON-NLS-1$
- // we are assume there is always at least one region in a flatnode!
- result = getRegions().get(0).getType();
- // typcially subclassed, if something other than first region is
- // desired
+ String result = UNDEFINED;
+ ITextRegionList subregions = getRegions();
+ if (subregions != null && subregions.size() > 0) {
+ ITextRegion firstRegion = subregions.get(0);
+ if (firstRegion != null) {
+ result = firstRegion.getType();
+ }
+ }
return result;
}