Hi,

I'm getting the following exception when this code runs:
public TblItmdes getTrackingItem(String itmCde){
                TblItmdes tblItmdes = 
getTblItmdesDAO().findTblItmdesByItmCde(itmCde);
                tblItmdes.getTblTrklnks(); //<-- lazy load throws exception
                return tblItmdes;
        }

PS. It works fine in 1.1.0.

Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
        at java.util.ArrayList.RangeCheck(ArrayList.java:546)
        at java.util.ArrayList.get(ArrayList.java:321)
        at 
org.apache.openjpa.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:629)
        at
org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:529)
        at
org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:485)
        at
org.apache.openjpa.jdbc.sql.SelectImpl.prepareStatement(SelectImpl.java:463)
        at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:379)
        at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:339)
        at
org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:420)
        at 
org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230)
        at 
org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220)
        at
org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.load(StoreCollectionFieldStrategy.java:603)
        at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:822)
        at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:626)
        at
org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreManager.java:116)
        at 
org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78)
        at
org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.java:2920)
        at
org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:2998)
        at
org.apache.openjpa.kernel.StateManagerImpl.beforeAccessField(StateManagerImpl.java:1492)
        at
org.apache.openjpa.kernel.StateManagerImpl.accessingField(StateManagerImpl.java:1477)
        at 
za.co.metcapri.model.ebstatus.TblItmdes.pcGettblTrklnks(TblItmdes.java)
        at 
za.co.metcapri.model.ebstatus.TblItmdes.getTblTrklnks(TblItmdes.java:77)
        at
za.co.metcapri.status.business.AdminManagerBean.getTrackingItem(AdminManagerBean.java:84)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:299)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
        at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at
org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:54)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy41.getTrackingItem(Unknown Source)
        at
za.co.metcapri.status.server.services.AdminServiceBean.getTrackingItemLinks(AdminServiceBean.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:528)
        ... 16 more

public class TblItmdes extends BaseEntity {

//      Mapped Fields

@TableGenerator(name="tblItmdesGenerator",schema="EBSTATUS",table="TBL_KEYGEN",pkColumnName="PRIMARY_KEY_COLUMN"
        
,valueColumnName="LAST_USED_ID",pkColumnValue="TBL_ITMDES_ID",allocationSize=1)
                @Id
        
@GeneratedValue(strategy=GenerationType.TABLE,generator="tblItmdesGenerator")
                @Column(name = "ITMDES_ID",nullable=false)
                private Integer itmdesId;    

        @Basic
        @Column(name = "DPLODR_NBR",nullable=true) 
        private Integer dplodrNbr;

        @Basic
        @Column(name = "ITM_CDE",nullable=true) 
        private String itmCde;

        @Basic
        @Column(name = "ITM_DES",nullable=true) 
        private String itmDes;


//      Mapped Relationships
        @OneToMany(mappedBy="tblItmdes",fetch = FetchType.LAZY,cascade = {
CascadeType.PERSIST,CascadeType.MERGE })
        private Collection<TblTrklnk> tblTrklnks = new ArrayList<TblTrklnk>();
        @OneToMany(mappedBy="tblItmdes",fetch = FetchType.LAZY,cascade = {
CascadeType.PERSIST,CascadeType.MERGE })
        private Collection<TblTrkdet> tblTrkdets = new ArrayList<TblTrkdet>();
        public Integer getItmdesId() {
                return getInteger(itmdesId);
        }
        public void setItmdesId(Integer itmdesId) {
                this.itmdesId = itmdesId;
        }

        public Integer getDplodrNbr() {
                return getInteger(dplodrNbr);
        }
        public void setDplodrNbr(Integer dplodrNbr) {
                this.dplodrNbr = dplodrNbr;
        }

        public String getItmCde() {
                return getString(itmCde);
        }
        public void setItmCde(String itmCde) {
                this.itmCde = itmCde;
        }

        public String getItmDes() {
                return getString(itmDes);
        }
        public void setItmDes(String itmDes) {
                this.itmDes = itmDes;
        }
        public Collection<TblTrklnk> getTblTrklnks() {
                if (tblTrklnks == null) {
                        tblTrklnks = new ArrayList<TblTrklnk>();
                }
                return tblTrklnks;
        }
        public void setTblTrklnks(Collection<TblTrklnk> tblTrklnks) {
                this.tblTrklnks = tblTrklnks;
        }
        public void addTblTrklnk(TblTrklnk tblTrklnk) {
                tblTrklnk.setTblItmdes(this);
                getTblTrklnks().add(tblTrklnk);
        }
        public void removeTblTrklnk(TblTrklnk tblTrklnk) {
                tblTrklnk.setTblItmdes(null);
                getTblTrklnks().remove(tblTrklnk);
        }
        public Collection<TblTrkdet> getTblTrkdets() {
                if (tblTrkdets == null) {
                        tblTrkdets = new ArrayList<TblTrkdet>();
                }
                return tblTrkdets;
        }
        public void setTblTrkdets(Collection<TblTrkdet> tblTrkdets) {
                this.tblTrkdets = tblTrkdets;
        }
        public void addTblTrkdet(TblTrkdet tblTrkdet) {
                tblTrkdet.setTblItmdes(this);
                getTblTrkdets().add(tblTrkdet);
        }
        public void removeTblTrkdet(TblTrkdet tblTrkdet) {
                tblTrkdet.setTblItmdes(null);
                getTblTrkdets().remove(tblTrkdet);
        }
        protected void synchParentRelationships(){
                getItmdesId();

        }
        protected void synchChildRelationships(){
                syncCollection(getTblTrklnks());
                syncCollection(getTblTrkdets());
        }
}

public class TblTrklnk extends BaseEntity {

//      Mapped Fields

@TableGenerator(name="tblTrklnkGenerator",schema="EBSTATUS",table="TBL_KEYGEN",pkColumnName="PRIMARY_KEY_COLUMN"
        
,valueColumnName="LAST_USED_ID",pkColumnValue="TBL_TRKLNK_ID",allocationSize=1)
        @Id

@GeneratedValue(strategy=GenerationType.TABLE,generator="tblTrklnkGenerator")
        @Column(name = "TRKLNK_ID",nullable=false)
        private Integer trklnkId;    

        @Basic
        @Column(name = "ITMTYP_CDE",nullable=true) 
        private String itmtypCde;

        @Basic
        @Column(name = "ITM_CDE",nullable=true) 
        private String itmCde;


//      Mapped Relationships
        @ManyToOne(fetch = FetchType.EAGER,cascade = {
CascadeType.PERSIST,CascadeType.MERGE })
        @JoinColumns([EMAIL PROTECTED](name =
"ITMTYP_CDE",referencedColumnName="ITMTYP_CDE")})    
        @ForeignKey
        private TblItmtyp tblItmtyp;   
        @ManyToOne(fetch = FetchType.LAZY,cascade = {
CascadeType.PERSIST,CascadeType.MERGE })
        @JoinColumns([EMAIL PROTECTED](name =
"ITM_CDE",referencedColumnName="ITM_CDE")})    
        @ForeignKey
        private TblItmdes tblItmdes;   
        public Integer getTrklnkId() {
                return getInteger(trklnkId);
        }
        public void setTrklnkId(Integer trklnkId) {
                this.trklnkId = trklnkId;
        }

        public String getItmtypCde() {
                return getString(itmtypCde);
        }
        public void setItmtypCde(String itmtypCde) {
                this.itmtypCde = itmtypCde;
        }

        public String getItmCde() {
                return getString(itmCde);
        }
        public void setItmCde(String itmCde) {
                this.itmCde = itmCde;
        }
        public TblItmtyp getTblItmtyp() {
                return tblItmtyp;
        }
        public void setTblItmtyp(TblItmtyp tblItmtyp) {
                this.tblItmtyp = tblItmtyp;
                if(tblItmtyp!=null&&tblItmtyp.getItmtypCde()!=null){
                        setItmtypCde(tblItmtyp.getItmtypCde());
                }       
        }
        public TblItmdes getTblItmdes() {
                return tblItmdes;
        }
        public void setTblItmdes(TblItmdes tblItmdes) {
                this.tblItmdes = tblItmdes;
                if(tblItmdes!=null&&tblItmdes.getItmCde()!=null){
                        setItmCde(tblItmdes.getItmCde());
                }       
        }
        protected void synchParentRelationships(){
                getTrklnkId();

                if (needsToSynch(getTblItmtyp())) {
                        setTblItmtyp(getTblItmtyp());
                }
                if (needsToSynch(getTblItmdes())) {
                        setTblItmdes(getTblItmdes());
                }
        }
        protected void synchChildRelationships(){
        }
}
-- 
View this message in context: 
http://n2.nabble.com/Exception-in-SQLBuffer.java-on-OpenJPA-1.3.0-SNAPSHOT-tp1141997p1141997.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to