File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed
hibernate-core/src/main/java/org/hibernate/query/sqm/produce/function/internal Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -96,7 +96,7 @@ else if ( c == '?' ) {
96
96
vararg = paramList .size ();
97
97
}
98
98
else {
99
- final int paramNumber = parseInt ( index .toString () );
99
+ final int paramNumber = parameterIndex ( pattern , index .toString () );
100
100
paramList .add ( paramNumber );
101
101
index .setLength (0 );
102
102
if ( paramNumber > max ) {
@@ -126,6 +126,21 @@ else if ( c == '?' ) {
126
126
this .argumentRenderingModes = argumentRenderingModes ;
127
127
}
128
128
129
+ private static int parameterIndex (String pattern , String index ) {
130
+ if ( index .isEmpty () ) {
131
+ throw new IllegalArgumentException ( "Missing parameter index in pattern: '" + pattern + "'" );
132
+ }
133
+ final int paramNumber ;
134
+ try {
135
+ paramNumber = parseInt ( index );
136
+ }
137
+ catch (NumberFormatException nfe ) {
138
+ throw new IllegalArgumentException ( "Illegal parameter index '" + index
139
+ + "' in pattern: '" + pattern + "'" , nfe );
140
+ }
141
+ return paramNumber ;
142
+ }
143
+
129
144
public boolean hasVarargs () {
130
145
return varargParam >= 0 ;
131
146
}
You can’t perform that action at this time.
0 commit comments