HHH-5932 Fix filtering request with string literal starting with ':'.
This commit is contained in:
parent
f52b841c5c
commit
e2b58d1d20
|
@ -36,6 +36,11 @@ import org.jboss.logging.Logger;
|
||||||
public final class QueryParameters {
|
public final class QueryParameters {
|
||||||
private static final Logger LOG = CoreLogging.logger( QueryParameters.class );
|
private static final Logger LOG = CoreLogging.logger( QueryParameters.class );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Symbols used to split SQL string into tokens in {@link #processFilters(String, Map, SessionFactoryImplementor)}.
|
||||||
|
*/
|
||||||
|
private static final String SYMBOLS = ParserHelper.HQL_SEPARATORS.replace( "'", "" );
|
||||||
|
|
||||||
private Type[] positionalParameterTypes;
|
private Type[] positionalParameterTypes;
|
||||||
private Object[] positionalParameterValues;
|
private Object[] positionalParameterValues;
|
||||||
private Map<String,TypedValue> namedParameters;
|
private Map<String,TypedValue> namedParameters;
|
||||||
|
@ -473,10 +478,7 @@ public final class QueryParameters {
|
||||||
processedSQL = sql;
|
processedSQL = sql;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
final Dialect dialect = factory.getDialect();
|
final StringTokenizer tokens = new StringTokenizer( sql, SYMBOLS, true );
|
||||||
final String symbols = ParserHelper.HQL_SEPARATORS + dialect.openQuote() + dialect.closeQuote();
|
|
||||||
final StringTokenizer tokens = new StringTokenizer( sql, symbols, true );
|
|
||||||
|
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
List parameters = new ArrayList();
|
List parameters = new ArrayList();
|
||||||
List parameterTypes = new ArrayList();
|
List parameterTypes = new ArrayList();
|
||||||
|
|
|
@ -462,7 +462,6 @@ public class DynamicFilterTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestForIssue( jiraKey = "HHH-5932" )
|
@TestForIssue( jiraKey = "HHH-5932" )
|
||||||
@FailureExpected( jiraKey = "HHH-5932" )
|
|
||||||
public void testHqlQueryWithColons() {
|
public void testHqlQueryWithColons() {
|
||||||
final Session session = openSession();
|
final Session session = openSession();
|
||||||
session.enableFilter( "region" ).setParameter( "region", "PACA" );
|
session.enableFilter( "region" ).setParameter( "region", "PACA" );
|
||||||
|
|
Loading…
Reference in New Issue