[ 
https://issues.apache.org/jira/browse/OPENJPA-2705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Will Dazey updated OPENJPA-2705:
--------------------------------
    Description: 
Introduced with 
[OPENJPA-2631|https://issues.apache.org/jira/browse/OPENJPA-2631].

Exception:
Caused by: java.lang.ArrayIndexOutOfBoundsException
at 
org.apache.openjpa.jdbc.meta.ClassMapping.toDataStoreValue(ClassMapping.java:272)
at 
org.apache.openjpa.jdbc.kernel.exps.CollectionParam.calculateValue(CollectionParam.java:174)

Reproduce:

{code:java}
@Entity
public class IdentificationBO {
        @EmbeddedId private BoIdVersion boId;
}
{code}

{code:java}
@Embeddable
public class BoIdVersion {
        private Long id;
        private Long version;
}
{code}

{code:java}
@Test
public void queryTest() {
        EntityManager em = emf.createEntityManager();
        EntityTransaction et = em.getTransaction();
        et.begin();

        Query q = em.createQuery("SELECT DISTINCT Ident FROM IdentificationBO 
Ident WHERE Ident.boId in :identificationList");
        q.setParameter("identificationList", Arrays.asList(new BoIdVersion(new 
Long(1)), new BoIdVersion(new Long(2)), new BoIdVersion(new Long(3))));
        //Exception on execution of this line
        q.getResultList();

        if ((et != null) && (et.isActive())) {
                et.rollback();
        }
        em.close();
}
{code}



  was:
Introduced with 
[OPENJPA-2631|https://issues.apache.org/jira/browse/OPENJPA-2631].

Exception:
Caused by: java.lang.ArrayIndexOutOfBoundsException
at 
org.apache.openjpa.jdbc.meta.ClassMapping.toDataStoreValue(ClassMapping.java:272)
at 
org.apache.openjpa.jdbc.kernel.exps.CollectionParam.calculateValue(CollectionParam.java:174)

Reproduce:

Entities:
{code:java}
@Entity
public class IdentificationBO {
        @EmbeddedId private BoIdVersion boId;
}
{code}

{code:java}
@Embeddable
public class BoIdVersion {
        private Long id;
        private Long version;
}
{code}

Test:

{code:java}
        @Test
        public void queryTest() {
                EntityManager em = emf.createEntityManager();
                EntityTransaction et = em.getTransaction();
                et.begin();

                Query q = em.createQuery("SELECT DISTINCT Ident FROM 
IdentificationBO Ident WHERE Ident.boId in :identificationList");
                q.setParameter("identificationList", Arrays.asList(new 
BoIdVersion(new Long(1)), new BoIdVersion(new Long(2)), new BoIdVersion(new 
Long(3))));
                //Exception on execution of this line
                q.getResultList();

                if ((et != null) && (et.isActive())) {
                        et.rollback();
                }
                em.close();
        }
{code}




> ArrayOutOfBoundsException occurs with an @EmbeddedId
> ----------------------------------------------------
>
>                 Key: OPENJPA-2705
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2705
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 2.1.1
>            Reporter: Will Dazey
>
> Introduced with 
> [OPENJPA-2631|https://issues.apache.org/jira/browse/OPENJPA-2631].
> Exception:
> Caused by: java.lang.ArrayIndexOutOfBoundsException
> at 
> org.apache.openjpa.jdbc.meta.ClassMapping.toDataStoreValue(ClassMapping.java:272)
> at 
> org.apache.openjpa.jdbc.kernel.exps.CollectionParam.calculateValue(CollectionParam.java:174)
> Reproduce:
> {code:java}
> @Entity
> public class IdentificationBO {
>       @EmbeddedId private BoIdVersion boId;
> }
> {code}
> {code:java}
> @Embeddable
> public class BoIdVersion {
>       private Long id;
>       private Long version;
> }
> {code}
> {code:java}
> @Test
> public void queryTest() {
>       EntityManager em = emf.createEntityManager();
>       EntityTransaction et = em.getTransaction();
>       et.begin();
>       Query q = em.createQuery("SELECT DISTINCT Ident FROM IdentificationBO 
> Ident WHERE Ident.boId in :identificationList");
>       q.setParameter("identificationList", Arrays.asList(new BoIdVersion(new 
> Long(1)), new BoIdVersion(new Long(2)), new BoIdVersion(new Long(3))));
>         //Exception on execution of this line
>       q.getResultList();
>       if ((et != null) && (et.isActive())) {
>               et.rollback();
>       }
>       em.close();
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to