Author: mprudhom
Date: Thu Dec 14 16:04:14 2006
New Revision: 487401

URL: http://svn.apache.org/viewvc?view=rev&rev=487401
Log:
Prevent the end range of a substring from going over the end of the string.

Modified:
    
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Substring.java

Modified: 
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Substring.java
URL: 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Substring.java?view=diff&rev=487401&r1=487400&r2=487401
==============================================================================
--- 
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Substring.java
 (original)
+++ 
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Substring.java
 Thu Dec 14 16:04:14 2006
@@ -50,8 +50,10 @@
         Object arg = _args.eval(candidate, orig, ctx, params);
         if (arg instanceof Object[]) {
             Object[] args = (Object[]) arg;
-            return str.toString().substring(((Number) args[0]).intValue(),
-                ((Number) args[1]).intValue());
+            int start = ((Number) args[0]).intValue();
+            int end = Math.min(((Number) args[1]).intValue(),
+                str.toString().length() - start + 1);
+            return str.toString().substring(start, end);
         }
         return str.toString().substring(((Number) arg).intValue());
     }


Reply via email to