You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mp...@apache.org on 2006/12/15 01:04:15 UTC
svn commit: r487401 -
/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/exps/Substring.java
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());
}