Hi everyone,
I know that there are already several threats on this issue, but none of them seems to sovle my issue.
Hence, I'll try it again.
JDeveloper: 11.1.1.3.0
Action: Doing a delete of a row in an entity-based view object, doing a commit. Doing the exact same thing again, but now with an error : java.sql.SQLException: Result set already closed
I'm unable to reproduce in a simple case.
I tried to remove the commit statement, without success.
I tried the following code:
Map sessionMap;
BindingContext context;
String currentFrameName;
DataControlFrame dcFrame;
sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
context = (BindingContext)sessionMap.get(BindingContext.CONTEXT_ID);
currentFrameName = context.getCurrentDataControlFrame();
dcFrame = context.findDataControlFrame(currentFrameName);
dcFrame.commit();
dcFrame.beginTransaction(null);
Also without success.
This is my original java code:
OperationBinding deleteOper =
ADFUtils.findOperation(OPERATION_DELETEINVOICE);
deleteOper.execute();
List errors = deleteOper.getErrors();
if (errors != null && !errors.isEmpty()) {
for (Object o : errors) {
logger.severe("Error during delete invoice : " + o + "-----" +
o.getClass());
}
}
//Committing the transaction
OperationBinding commitOper = ADFUtils.findOperation(OPERATION_COMMIT);
commitOper.execute();
errors = commitOper.getErrors();
if (errors != null && !errors.isEmpty()) {
for (Object o : errors) {
logger.severe("Error during commit delete invoice : " + o +
"-----" + o.getClass());
}
}
Does anyone have any idea's to tackle this problem?
Thank you in advance.
Filip Huysmans.
<InvoiceFlowManagedBean><removeInvoice> Error during delete invoice : oracle.jbo.AttributeLoadException: JBO-27022: Kan waarde niet laden bij index 1 met Java-object van type java.lang.Integer vanwege java.sql.SQLException.-----class oracle.jbo.AttributeLoadException
<Utils><buildFacesMessage> ADF: Adding the following JSF error message: Result set already closed
java.sql.SQLException: Result set already closed
at weblogic.jdbc.wrapper.ResultSet.checkResultSet(ResultSet.java:110)
at weblogic.jdbc.wrapper.ResultSet.preInvocationHandler(ResultSet.java:65)
at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.getInt(Unknown Source)
at oracle.jbo.common.IntegerTypeSQLNativeImpl.getDataFromResultSet(JboTypeMapEntries.java:506)
at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2318)
at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:3622)
at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:2203)
at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:5325)
at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5174)
at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3304)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3164)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2154)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:4853)
at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2914)
at oracle.jbo.server.ViewRowSetIteratorImpl.notifyRowDeleted(ViewRowSetIteratorImpl.java:3141)
at oracle.jbo.server.ViewRowSetImpl.notifyRowDeleted(ViewRowSetImpl.java:1964)
at oracle.jbo.server.ViewObjectImpl.notifyRowDeleted(ViewObjectImpl.java:10729)
at oracle.jbo.server.ViewObjectImpl.notifyRowDeleted(ViewObjectImpl.java:10767)
at oracle.jbo.server.QueryCollection.removeRow(QueryCollection.java:4038)
at oracle.jbo.server.QueryCollection.afterRemove(QueryCollection.java:4003)
at oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:12662)
at oracle.jbo.server.EntityCache.sendEvent(EntityCache.java:1354)
at oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:1370)
at oracle.jbo.server.EntityCache.notifyStateChange(EntityCache.java:1499)
at oracle.jbo.server.EntityImpl.setState(EntityImpl.java:4895)
at oracle.jbo.server.EntityImpl.remove(EntityImpl.java:8477)
at oracle.jbo.server.ViewRowImpl.doRemove(ViewRowImpl.java:3196)
at oracle.jbo.server.ViewRowImpl.remove(ViewRowImpl.java:3241)
at oracle.jbo.server.QueryCollection.doRemove(QueryCollection.java:2425)
at oracle.jbo.server.QueryCollection.remove(QueryCollection.java:2448)
at oracle.jbo.server.ViewRowSetImpl.removeRowAt(ViewRowSetImpl.java:2396)
at oracle.jbo.server.ViewRowSetIteratorImpl.doRemoveCurrentRow(ViewRowSetIteratorImpl.java:2448)
at oracle.jbo.server.ViewRowSetIteratorImpl.removeCurrentRow(ViewRowSetIteratorImpl.java:2473)
at oracle.jbo.server.ViewRowSetImpl.removeCurrentRow(ViewRowSetImpl.java:3252)
at oracle.jbo.server.ViewObjectImpl.removeCurrentRow(ViewObjectImpl.java:9965)
at oracle.adf.model.binding.DCIteratorBinding.removeCurrentRow(DCIteratorBinding.java:2675)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1283)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2141)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:730)
at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:394)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:252)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
at be.fgov.health.mediflow.medicalcosts.view.bean.InvoiceFlowManagedBean.removeInvoice(InvoiceFlowManagedBean.java:957)
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:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
at be.fgov.health.mediflow.medicalcosts.view.util.JSFUtils.resolveMethodExpression(JSFUtils.java:96)
at be.fgov.health.mediflow.medicalcosts.components.bean.RemoveConfirmationManagedBean.performRemove(RemoveConfirmationManagedBean.java:59)