I have a DMI that I use to retrieve records from a from a LUT via JPA and populate a combobox.
When the built-in fetch command executes, the following error shows up on the server:
=== 2011-12-15 08:55:19,373 [80-4] INFO IDACall - Performing 1 operation(s)
=== 2011-12-15 08:55:19,373 [80-4] DEBUG ServerObject - Couldn't find a public method named: fetch on class: com.sncorp.gs2.ui.server.LogTypeDMI
=== 2011-12-15 08:55:19,374 [80-4] DEBUG DataSourceDMI - DataSourceDMI: no public method name: fetch available on class: com.sncorp.gs2.ui.server.LogTypeDMI - defaulting to builtin operations.
=== 2011-12-15 08:55:19,375 [80-4] DEBUG AppBase - [builtinApplication.logType_fetch] No userTypes defined, allowing anyone access to all operations for this application
=== 2011-12-15 08:55:19,375 [80-4] DEBUG AppBase - [builtinApplication.logType_fetch] No public zero-argument method named '_logType_fetch' found, performing generic datasource operation
=== 2011-12-15 08:55:19,376 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Creating EntityManager and starting transaction.
=== 2011-12-15 08:55:19,379 [80-4] DEBUG DSRequest - [builtinApplication.logType_fetch] Clobbering existing FreeResourcesHandler of type 'com.isomorphic.jpa.JPA2DataSource' with a 'com.isomorphic.jpa.JPA2DataSource'
=== 2011-12-15 08:55:19,379 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Executing fetch.
=== 2011-12-15 08:55:19,380 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Marking transaction for roll back.
=== 2011-12-15 08:55:19,381 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Got exception while executing. Transaction will be rolled back.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.isomorphic.datasource.DataSource.getPrimaryKey(DataSource.java:773)
at com.isomorphic.jpa.JPADataSource.executeFetch(JPADataSource.java:523)
at com.isomorphic.datasource.DataSource.execute(DataSource.java:1287)
at com.isomorphic.jpa.JPADataSource.execute(JPADataSource.java:439)
at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
at com.isomorphic.application.AppBase.execute(AppBase.java:491)
at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1948)
at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139)
at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952)
at java.lang.Thread.run(Thread.java:722)
=== 2011-12-15 08:55:19,440 [80-4] WARN RequestContext - dsRequest.execute() failed:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.isomorphic.datasource.DataSource.getPrimaryKey(DataSource.java:773)
at com.isomorphic.jpa.JPADataSource.executeFetch(JPADataSource.java:523)
at com.isomorphic.datasource.DataSource.execute(DataSource.java:1287)
at com.isomorphic.jpa.JPADataSource.execute(JPADataSource.java:439)
at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
at com.isomorphic.application.AppBase.execute(AppBase.java:491)
at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1948)
at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139)
at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952)
at java.lang.Thread.run(Thread.java:722)
=== 2011-12-15 08:55:19,500 [80-4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
=== 2011-12-15 08:55:19,501 [80-4] DEBUG JPADataSource - Rolling back current transaction.
=== 2011-12-15 08:55:19,503 [80-4] DEBUG RPCManager - non-DMI response, dropExtraFields: true
This fetch worked at one point, but now I am not sure what might have changed to cause this. Further, I am positive that there are 4 entries in the database.
ds.xml:
ComboBoxItem code:
When the built-in fetch command executes, the following error shows up on the server:
=== 2011-12-15 08:55:19,373 [80-4] INFO IDACall - Performing 1 operation(s)
=== 2011-12-15 08:55:19,373 [80-4] DEBUG ServerObject - Couldn't find a public method named: fetch on class: com.sncorp.gs2.ui.server.LogTypeDMI
=== 2011-12-15 08:55:19,374 [80-4] DEBUG DataSourceDMI - DataSourceDMI: no public method name: fetch available on class: com.sncorp.gs2.ui.server.LogTypeDMI - defaulting to builtin operations.
=== 2011-12-15 08:55:19,375 [80-4] DEBUG AppBase - [builtinApplication.logType_fetch] No userTypes defined, allowing anyone access to all operations for this application
=== 2011-12-15 08:55:19,375 [80-4] DEBUG AppBase - [builtinApplication.logType_fetch] No public zero-argument method named '_logType_fetch' found, performing generic datasource operation
=== 2011-12-15 08:55:19,376 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Creating EntityManager and starting transaction.
=== 2011-12-15 08:55:19,379 [80-4] DEBUG DSRequest - [builtinApplication.logType_fetch] Clobbering existing FreeResourcesHandler of type 'com.isomorphic.jpa.JPA2DataSource' with a 'com.isomorphic.jpa.JPA2DataSource'
=== 2011-12-15 08:55:19,379 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Executing fetch.
=== 2011-12-15 08:55:19,380 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Marking transaction for roll back.
=== 2011-12-15 08:55:19,381 [80-4] DEBUG JPADataSource - [builtinApplication.logType_fetch] Got exception while executing. Transaction will be rolled back.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.isomorphic.datasource.DataSource.getPrimaryKey(DataSource.java:773)
at com.isomorphic.jpa.JPADataSource.executeFetch(JPADataSource.java:523)
at com.isomorphic.datasource.DataSource.execute(DataSource.java:1287)
at com.isomorphic.jpa.JPADataSource.execute(JPADataSource.java:439)
at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
at com.isomorphic.application.AppBase.execute(AppBase.java:491)
at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1948)
at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139)
at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952)
at java.lang.Thread.run(Thread.java:722)
=== 2011-12-15 08:55:19,440 [80-4] WARN RequestContext - dsRequest.execute() failed:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.isomorphic.datasource.DataSource.getPrimaryKey(DataSource.java:773)
at com.isomorphic.jpa.JPADataSource.executeFetch(JPADataSource.java:523)
at com.isomorphic.datasource.DataSource.execute(DataSource.java:1287)
at com.isomorphic.jpa.JPADataSource.execute(JPADataSource.java:439)
at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
at com.isomorphic.application.AppBase.execute(AppBase.java:491)
at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1948)
at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139)
at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952)
at java.lang.Thread.run(Thread.java:722)
=== 2011-12-15 08:55:19,500 [80-4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
=== 2011-12-15 08:55:19,501 [80-4] DEBUG JPADataSource - Rolling back current transaction.
=== 2011-12-15 08:55:19,503 [80-4] DEBUG RPCManager - non-DMI response, dropExtraFields: true
This fetch worked at one point, but now I am not sure what might have changed to cause this. Further, I am positive that there are 4 entries in the database.
ds.xml:
Code:
<DataSource ID="logType" serverConstructor="com.isomorphic.jpa.JPA2DataSource" beanClassName="com.sncorp.gs2.jee.entities.LogType">
<fields>
<field name="name" type="text" title="name"/>
<field name="logtypeId" title="Log Type Id"/>
</fields>
<dropExtraFields>true</dropExtraFields>
<serverObject className="com.sncorp.gs2.ui.server.LogTypeDMI"/>
<operationBindings>
<!--<operationBinding operationType="fetch" serverMethod="fetch"/>-->
<operationBinding operationType="add" serverMethod="add"/>
<operationBinding operationType="update" serverMethod="update"/>
<operationBinding operationType="remove" serverMethod="remove"/>
<operationBinding operationType="custom" operationId="startRawLogThread" serverMethod="startRawLogThread">
<serverObject lookupStyle="new" methodName="startRawLogThread" className="com.sncorp.gs2.ui.server.LogTypeDMI"/>
</operationBinding>
<operationBinding operationType="custom" operationId="startFilteredLogThread" serverMethod="startFilteredLogThread">
<serverObject lookupStyle="new" methodName="startFilteredLogThread" className="com.sncorp.gs2.ui.server.LogTypeDMI"/>
</operationBinding>
</operationBindings>
</DataSource>
Code:
ComboBoxItem cbi = new ComboBoxItem("logType","Log Type");
try
{
cbi.setOptionDataSource(dsLogTypes);
cbi.setName("cbiLogTypes");
}
catch(Exception ex)
{
ex.printStackTrace();
}
return cbi;
Comment