Prepared SQL query does not handle collection-valued parameter where collection
is empty
----------------------------------------------------------------------------------------
Key: OPENJPA-2118
URL: https://issues.apache.org/jira/browse/OPENJPA-2118
Project: OpenJPA
Issue Type: Bug
Components: sql
Affects Versions: 2.1.0, 2.0.0, 2.2.0
Reporter: Heath Thomann
Assignee: Heath Thomann
In PreparedQueryImpl.setCollectionValuedParameter, we do a '%n' but don't check
for n==0, as can be seen here:
private void setCollectionValuedParameter(Map<Integer,Object> result,
Collection values, int[] indices, Object param) {
int n = values.size();
Object[] array = values.toArray();
if (n > indices.length || indices.length%n != 0) {
<---------------------line 389 in 2.0.x
When n==0, the following exception will occur:
Exception data: java.lang.ArithmeticException: divide by zero
at
org.apache.openjpa.jdbc.kernel.PreparedQueryImpl.setCollectionValuedParameter(PreparedQueryImpl.java:389)
I will upload a test to reproduce this issue and a proposed fix in the next day
or two.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira