Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Filion2012-10-11 17:24:39 +0000
committerPascal Filion2012-10-11 17:24:39 +0000
commit4a46daa57150ea5918ae27d6ac583cd7dfd0e8b3 (patch)
treeb94f72909d23176bfbb9d4e6dafa7732b0d3a41a /jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1
parent6c201b8fee970f429c8c1a1b3aba99f8b4e2bd15 (diff)
downloadwebtools.dali-4a46daa57150ea5918ae27d6ac583cd7dfd0e8b3.tar.gz
webtools.dali-4a46daa57150ea5918ae27d6ac583cd7dfd0e8b3.tar.xz
webtools.dali-4a46daa57150ea5918ae27d6ac583cd7dfd0e8b3.zip
Fix misalignment of text range within a JPQL query and incorrect behavior of content assist due to incorrect location within the query (fix bug#360713, bug#386414)
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1')
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java17
2 files changed, 22 insertions, 7 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java
index e9cf3c4ab6..82c27209ca 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedQuery.java
@@ -32,7 +32,7 @@ public class GenericJavaNamedQuery
}
// ********** metadata conversion *********
-
+
public void convertTo(OrmQueryContainer queryContainer) {
queryContainer.addNamedQuery().convertFrom(this);
}
@@ -45,7 +45,15 @@ public class GenericJavaNamedQuery
@Override
protected void validateQuery_(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) {
- queryHelper.validate(this, this.query, this.queryAnnotation.getQueryTextRange(), 1, messages);
+ queryHelper.validate(
+ this,
+ this.query,
+ this.query,
+ this.queryAnnotation.getQueryTextRanges(),
+ 1,
+ JpaJpqlQueryHelper.EscapeType.JAVA,
+ messages
+ );
}
// ********** misc **********
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java
index 6424cdbdae..43c2445d06 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedQuery.java
@@ -10,15 +10,14 @@
package org.eclipse.jpt.jpa.core.internal.jpa1.context.orm;
import java.util.List;
-
import org.eclipse.jpt.jpa.core.context.JpaContextNode;
import org.eclipse.jpt.jpa.core.context.NamedQuery;
import org.eclipse.jpt.jpa.core.context.java.JavaNamedQuery;
import org.eclipse.jpt.jpa.core.context.orm.OrmNamedQuery;
import org.eclipse.jpt.jpa.core.internal.context.orm.AbstractOrmQuery;
import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper;
+import org.eclipse.jpt.jpa.core.jpql.JpaJpqlQueryHelper.EscapeType;
import org.eclipse.jpt.jpa.core.resource.orm.XmlNamedQuery;
-import org.eclipse.persistence.jpa.jpql.ExpressionTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -39,10 +38,18 @@ public class GenericOrmNamedQuery
@Override
protected void validateQuery_(JpaJpqlQueryHelper queryHelper, List<IMessage> messages, IReporter reporter) {
- // Convert the literal escape characters into actual escape characters
- String jpqlQuery = ExpressionTools.unescape(this.query, new int[1]);
+ XmlNamedQuery xmlQuery = this.getXmlQuery();
+ EscapeType escapeType = xmlQuery.isQueryInsideCDATASection() ? EscapeType.NONE : EscapeType.XML;
- queryHelper.validate(this, jpqlQuery, this.getQueryTextRange(), 0, messages);
+ queryHelper.validate(
+ this,
+ this.query,
+ xmlQuery.getActualQuery(),
+ this.getQueryTextRanges(),
+ xmlQuery.getQueryOffset(),
+ escapeType,
+ messages
+ );
}
// ********** misc **********

Back to the top