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

        

Reply via email to