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 == '?' ) {
9696 vararg = paramList .size ();
9797 }
9898 else {
99- final int paramNumber = parseInt ( index .toString () );
99+ final int paramNumber = parameterIndex ( pattern , index .toString () );
100100 paramList .add ( paramNumber );
101101 index .setLength (0 );
102102 if ( paramNumber > max ) {
@@ -126,6 +126,21 @@ else if ( c == '?' ) {
126126 this .argumentRenderingModes = argumentRenderingModes ;
127127 }
128128
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+
129144 public boolean hasVarargs () {
130145 return varargParam >= 0 ;
131146 }
You can’t perform that action at this time.
0 commit comments