Author: akazakov
Date: 2010-11-10 07:44:33 -0500 (Wed, 10 Nov 2010)
New Revision: 26408
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java
Log:
https://jira.jboss.org/browse/JBIDE-7547 Fixed NPE in CA
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2010-11-10
12:43:43 UTC (rev 26407)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2010-11-10
12:44:33 UTC (rev 26408)
@@ -172,7 +172,7 @@
}
public ELExpression parseOperand(String operand, ELParserFactory factory) {
- if(operand == null) return null;
+ if(operand == null || factory == null) return null;
String el = (operand.indexOf("#{") < 0 &&
operand.indexOf("${") < 0) ? "#{" + operand + "}" :
operand; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
ELParser p = factory.createParser();
ELModel model = p.parse(el);
@@ -573,12 +573,14 @@
segment = new JavaMemberELSegmentImpl();
if(left instanceof ELArgumentInvocation) {
String s = "#{" + left.getLeft().toString() +
collectionAdditionForCollectionDataModel + "}"; //$NON-NLS-1$ //$NON-NLS-2$
- ELParser p = getParserFactory().createParser();
- ELInvocationExpression expr1 =
(ELInvocationExpression)p.parse(s).getInstances().get(0).getExpression();
- members = resolveSegment(expr1.getLeft(), members, resolution,
returnEqualedVariablesOnly, varIsUsed, segment);
- members = resolveSegment(expr1, members, resolution, returnEqualedVariablesOnly,
varIsUsed, segment);
- if(resolution.getLastResolvedToken() == expr1) {
- resolution.setLastResolvedToken(left);
+ if(getParserFactory()!=null) {
+ ELParser p = getParserFactory().createParser();
+ ELInvocationExpression expr1 =
(ELInvocationExpression)p.parse(s).getInstances().get(0).getExpression();
+ members = resolveSegment(expr1.getLeft(), members, resolution,
returnEqualedVariablesOnly, varIsUsed, segment);
+ members = resolveSegment(expr1, members, resolution, returnEqualedVariablesOnly,
varIsUsed, segment);
+ if(resolution.getLastResolvedToken() == expr1) {
+ resolution.setLastResolvedToken(left);
+ }
}
} else {
members = resolveSegment(left, members, resolution, returnEqualedVariablesOnly,
varIsUsed, segment);
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java 2010-11-10
12:43:43 UTC (rev 26407)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/resolver/ElVarSearcher.java 2010-11-10
12:44:33 UTC (rev 26408)
@@ -256,7 +256,7 @@
* @return found var/value or null
*/
public static Var findVar(Node node, ELParserFactory factory) {
- if(node!=null && Node.ELEMENT_NODE == node.getNodeType()) {
+ if(factory!=null && node!=null && Node.ELEMENT_NODE ==
node.getNodeType()) {
Element element = (Element)node;
if(element.hasAttribute(VAR_ATTRIBUTE_NAME)) {
String var = element.getAttribute(VAR_ATTRIBUTE_NAME);