Hi All,
I am using apache geronimo v2.1.4 which is bundled with openJPA 1.2.1 and
postgresql 8.5.3. while running an applicaiton which is based on JSF and
EJB's I get the following error.
2009-06-11 16:19:58,417 TRACE [Runtime] An exception occurred while ending
the transaction. This exception will be re-thrown.
<openjpa-1.0.3-r420667:677674 nonfatal store error>
org.apache.openjpa.util.StoreException: Bad value for type BigDecimal : Y
at
org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3951)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:83)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:59)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:491)
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:2886)
at
org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:2964)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1586)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3844)
at
org.apache.openjpa.kernel.StateManagerImpl.setPCState(StateManagerImpl.java:207)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1546)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at
org.apache.openjpa.kernel.BrokerImpl.getTransactionalStates(BrokerImpl.java:3729)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1872)
at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1853)
at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1771)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499)
at
org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionImpl.java:472)
at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:258)
at
org.apache.openejb.core.transaction.TransactionPolicy.rollbackTransaction(TransactionPolicy.java:183)
at
org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:78)
at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233)
at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:245)
at
org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
at $Proxy21.findByInsAndType(Unknown Source)
at
com.tnhsp.mbeans.biomedicalwaste.wasteDetailsMBean.getStockingpointList(wasteDetailsMBean.java:1658)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$301(FacesCompositeELResolver.java:46)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$4.invoke(FacesCompositeELResolver.java:108)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(FacesCompositeELResolver.java:148)
at
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:104)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
at javax.faces.component.UIData.getValue(UIData.java:978)
at javax.faces.component.UIData.createDataModel(UIData.java:758)
at javax.faces.component.UIData.getDataModel(UIData.java:732)
at javax.faces.component.UIData.getRowCount(UIData.java:174)
at
org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:235)
at
org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:137)
at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:594)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:239)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)
at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:424)
at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:380)
at
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at SessionFilter.doFilter(SessionFilter.java:43)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
at
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:406)
at
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:735)
Caused by:
org.postgresql.util.PSQLException: Bad value for type BigDecimal : Y
at
org.postgresql.jdbc2.AbstractJdbc2ResultSet.toBigDecimal(AbstractJdbc2ResultSet.java:2710)
at
org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBigDecimal(AbstractJdbc2ResultSet.java:2133)
at
org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBigDecimal(AbstractJdbc2ResultSet.java:311)
at
org.tranql.connector.jdbc.ResultSetHandle.getBigDecimal(ResultSetHandle.java:179)
at
org.apache.openjpa.lib.jdbc.DelegatingResultSet.getBigDecimal(DelegatingResultSet.java:282)
at
org.apache.openjpa.jdbc.sql.DBDictionary.getBigDecimal(DBDictionary.java:389)
at
org.apache.openjpa.jdbc.sql.PostgresDictionary.getInt(PostgresDictionary.java:210)
at org.apache.openjpa.jdbc.sql.DBDictionary.getChar(DBDictionary.java:556)
at
org.apache.openjpa.jdbc.sql.ResultSetResult.getCharInternal(ResultSetResult.java:288)
at
org.apache.openjpa.jdbc.sql.ResultSetResult.getObjectInternal(ResultSetResult.java:356)
at
org.apache.openjpa.jdbc.sql.AbstractResult.getObject(AbstractResult.java:662)
at
org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.loadDataStore(HandlerStrategies.java:205)
at
org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load(HandlerFieldStrategy.java:172)
at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:796)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:833)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:475)
... 92 more
The error is being thrown when this query is executed.
2009-06-11 15:35:44,366 TRACE [SQL] <t 969554378, conn 180619972> executing
prepstmnt 261558167 SELECT t0.st_spom_id, t0.st_spom_crt_dt,
t0.st_spom_crt_uid, t1.AIS_INSM_CODE, t1.AIS_INSM_TYPE, t1.AIS_INSM_BEMONC,
t1.AIS_INSM_BEMONC_START_DATE, t1.AIS_INSM_BLOCK,
t1.AIS_INSM_BLOCK_PHC_ATTACHED, t1.AIS_INSM_CEMONC,
t1.AIS_INSM_CEMONC_START_DATE, t1.AIS_INSM_CRT_DT, t1.AIS_INSM_CRT_UID,
t1.AIS_INSM_DISTRICT, t1.AIS_INSM_EFFECT_DT, t1.AIS_INSM_HSC_DELIVERY_ROOM,
t1.AIS_INSM_HSC_LAB, t1.AIS_INSM_HSC_TRIBAL_STATUS, t1.AIS_INSM_HUD,
t1.AIS_INSM_NAME, t1.AIS_INSM_LAST_UPD_DT, t1.AIS_INSM_LAST_UPD_UID,
t1.AIS_INSM_LOCAL_BODY, t1.AIS_INSM_LOCATION, t1.AIS_INSM_ORGANISAION,
t1.AIS_INSM_PHC_ATTACHED, t1.AIS_INSM_PHC_DELIVERY_ROOM,
t1.AIS_INSM_PHC_LAB_STATUS, t1.AIS_INSM_PHC_TRIBAL_STATUS,
t1.AIS_INSM_STATUS, t1.AIS_INSM_SUB_TYPE, t1.AIS_INSM_TALUK,
t0.st_spom_last_upd_udt, t0.st_spom_last_upd_uid, t0.st_spom_status,
t0.st_spom_code, t0.st_spom_desc, t0.st_spom_stocking_point_grade,
t0.st_spom_type, t0.st_spom_ward_id FROM st_stocking_point_master t0 LEFT
OUTER JOIN AIS_INSTITUTION_MASTER t1 ON t0.st_spom_institution =
t1.AIS_INSM_CODE WHERE (t0.st_spom_institution = ? AND (t0.st_spom_type = ?
OR t0.st_spom_type = ? OR t0.st_spom_type = ? OR t0.st_spom_type = ? OR
t0.st_spom_type = ? OR t0.st_spom_type = ? OR t0.st_spom_type = ?) AND
t0.st_spom_type IS NOT NULL) [params=(String) 00017, (String) WARD, (String)
OT, (String) OPD, (String) LAB, (String) PHARMACY, (String) ICTC, (String)
DEPT]
I have tried manually executing the query from admin console of geronimo
and the query runs fine.
I also modified my persistence.xml as follows however result is same
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="tnhsp-ejbPU" transaction-type="JTA">
<jta-data-source>live</jta-data-source>
<property name="openjpa.jdbc.QuerySQLCache" value="false"/>
<property name="openjpa.jdbc.SynchronizeMappings" value="false"/>
<property name="openjpa.jdbc.DBDictionary"
value="org.apache.openjpa.jdbc.sql.PostgresDictionary(Supports
DeferredConstraints=false)"/>
<property name="openjpa.TransactionMode" value="managed"/>
<property name="openjpa.RetryClassRegistration" value="true" />
<property name="openjpa.ConnectionDriverName"
value="org.postgresql.Driver"/>
<properties/>
</persistence-unit>
</persistence>
Debugging the application code suggests the error is being thrown while
executing this statement
this.list = this.em.createQuery("Select p from Stockingpoint p where
p.institution.institutionCode=:ins and p.stockingType in
('WARD','OT','OPD','LAB','PHARMACY','ICTC','DEPT')").setParameter("ins",
ins).getResultList();
Any help in this regard will be very helpful.
Thanks
Ashish