Author: akazakov
Date: 2011-09-13 14:17:28 -0400 (Tue, 13 Sep 2011)
New Revision: 34680
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java
Log:
https://issues.jboss.org/browse/JBIDE-9704 JBDS is frozen after clicking on some tag in
JBoss Ajax4Jsf palette
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java 2011-09-13
12:57:35 UTC (rev 34679)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java 2011-09-13
18:17:28 UTC (rev 34680)
@@ -870,6 +870,9 @@
documentRegion = documentRegion.getPrevious();
completionRegion = getCompletionRegion(request.getDocumentRegion().getStartOffset() +
request.getRegion().getStart() - 1, request.getParent());
}
+ if(documentRegion==null || completionRegion==null) {
+ return null;
+ }
if (!DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE.equals(completionRegion.getType())
&&
!DOMRegionContext.XML_CONTENT.equals(completionRegion.getType()) &&
!DOMRegionContext.BLOCK_TEXT.equals(completionRegion.getType())) {
@@ -939,6 +942,9 @@
documentRegion = documentRegion.getPrevious();
completionRegion = getCompletionRegion(request.getDocumentRegion().getStartOffset() +
request.getRegion().getStart() - 1, request.getParent());
}
+ if(documentRegion==null || completionRegion==null) {
+ return null;
+ }
if (!DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE.equals(completionRegion.getType())
&&
!DOMRegionContext.XML_CONTENT.equals(completionRegion.getType()) &&
!DOMRegionContext.BLOCK_TEXT.equals(completionRegion.getType())) {
@@ -1097,7 +1103,7 @@
return null;
}
ITextRegion result =
node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
- while (result == null) {
+ while (result == null && offset>0) {
offset--;
result =
node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
}