Bug fixes for JSP region errors.
diff --git a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java
index 9f0f99d..b34172e 100644
--- a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java
+++ b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java
@@ -27,6 +27,7 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 
@@ -336,7 +337,11 @@
 			String type = region.getType();
 			// content assist was not showing up in JSP inside a javascript
 			// region
-			if (type == DOMRegionContext.BLOCK_TEXT) {
+			
+			//System.out.println("Region text: " + container.getText().substring(region.getStart(), region.getEnd()));
+			boolean isBlockRegion = region instanceof ITextRegionContainer;
+			/* make sure its not a sub container region, probably JSP */
+			if (type == DOMRegionContext.BLOCK_TEXT ) {
 				int scriptStart = container.getStartOffset();
 				int scriptTextEnd = container.getEndOffset() - container.getStartOffset();
 				String regionText = container.getText().substring(region.getStart(), region.getEnd());
@@ -348,7 +353,14 @@
 				spaces = getPad(scriptStart - scriptOffset);
 				fScriptText.append(spaces); 	
 				// fJsToHTMLRanges.put(inScript, inHtml);
-				fScriptText.append(regionText);
+				if(isBlockRegion) {
+					spaces = getPad(regionLength);
+					fScriptText.append(spaces); 	
+				}else {
+					fScriptText.append(regionText);
+				}
+				
+				
 				scriptOffset = fScriptText.length();
 			}
 		}
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java
index 8171846..a81007a 100644
--- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java
+++ b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java
@@ -85,6 +85,8 @@
 					int javaLength = partition.getLength();
 					TextEdit edit = CodeFormatterUtil.format2(CodeFormatter.K_COMPILATION_UNIT, cuSource, javaStart, javaLength, startIndentLevel, TextUtilities.getDefaultLineDelimiter(document), getPreferences());
 					IDocument doc = new Document(translation.getJsText());
+					/* error formating the code so abort */
+					if(edit==null) return;
 					edit.apply(doc);
 					String replaceText = TextUtilities.getDefaultLineDelimiter(document) + getIndentationString(getPreferences(), startIndentLevel) + (doc.get(edit.getOffset(), edit.getLength())).trim() + TextUtilities.getDefaultLineDelimiter(document);
 					/*