Friday, April 18, 2008

I Like Blogger

I just did an upgrade of WordPress on Erin's Blog, Not Appealing, and while it wasn't horrible, we didn't get it right the first time. Thankfully, Blogger just works.

As a software developer, when something doesn't work I want as detailed an error message as possible. The first time we installed it, pages would show up blank. That kind of error handling behavior makes me want to put a hole in some drywall somewhere. This is an example of a good error message:

com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{code=ESBMessageProcessingFailed
,summary=null
,detail=<detail>
<EventName xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">MAGIC.BON_ITO_002_GBL.RouteScanServiceRequestNotes.execute</EventName>
<Cause xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.tip.esb.server.common.exceptions.BusinessEventRejectionException: An unhandled exception has been thrown in the ESB system. The exception reported is: "org.collaxa.thirdparty.apache.wsif.WSIFException: esb:///ESB_Projects/MAGIC_BON_ITO_002_GBL_ScanServiceRequestNotes_ESB/CallScanNotes_SP.wsdl [ CallScanNotes_SP_ptt::CallScanNotes_SP(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'CallScanNotes_SP' failed due to: Error retrieving the value of a parameter.
An error occurred when retrieving the value of parameter X_SERVICE_REQUEST_DATA after invoking the XX_BON_ITO_002_GBL_NOTES_PKG.SCAN_NOTE_SERVICE_REQUEST API. Cause: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
[Caused by: ORA-01427: single-row subquery returns more than one row
]
; nested exception is:
ORABPEL-11810
Error retrieving the value of a parameter.
An error occurred when retrieving the value of parameter X_SERVICE_REQUEST_DATA after invoking the XX_BON_ITO_002_GBL_NOTES_PKG.SCAN_NOTE_SERVICE_REQUEST API. Cause: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
[Caused by: ORA-01427: single-row subquery returns more than one row
]
Check to ensure that the parameter has been correctly registered as a valid IN/OUT or OUT parameter of the API. Contact oracle support if error is not fixable.

at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:633)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:507)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:430)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:447)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:184)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:112)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:106)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:85)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:105)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:273)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:212)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:197)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:82)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(EventOracleSoapProvider.java:314)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(EventOracleSoapProvider.java:187)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:956)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
at oracle.j2

ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:466)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:177)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:797)
Caused by: ORABPEL-11810
Error retrieving the value of a parameter.
An error occurred when retrieving the value of parameter X_SERVICE_REQUEST_DATA after invoking the XX_BON_ITO_002_GBL_NOTES_PKG.SCAN_NOTE_SERVICE_REQUEST API. Cause: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
[Caused by: ORA-01427: single-row subquery returns more than one row
]
Check to ensure that the parameter has been correctly registered as a valid IN/OUT or OUT parameter of the API. Contact oracle support if error is not fixable.

at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:469)
at oracle.tip.adapter.db.sp.SPUtil.createResourceException(SPUtil.java:172)
at oracle.tip.adapter.db.sp.AbstractStoredProcedure.getObject(AbstractStoredProcedure.java:128)
at oracle.tip.adapter.db.sp.oracle.StoredProcedure.retrieveAllValues(StoredProcedure.java:216)
at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:107)
at oracle.tip.adapter.db.sp.SPInteraction.executeStoredProcedure(SPInteraction.java:132)
at oracle.tip.adapter.db.DBInteraction.executeStoredProcedure(DBInteraction.java:1014)
at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:232)
at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:485)
... 35 more
Caused by: Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
Error Code: 1427
at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java:282)
at oracle.tip.adapter.db.sp.SPUtil.createResourceException(SPUtil.java:162)
... 42 more
Caused by: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row

at java.lang.Throwable.&lt;init>(Throwable.java:57)
at java.lang.Throwable.&lt;init>(Throwable.java:68)
at java.sql.SQLException.&lt;init>(SQLException.java:55)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:113)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:620)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:277)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:206)
at oracle.jdbc.rowset.OracleCachedRowSet.populate(OracleCachedRowSet.java:2507)
at oracle.tip.adapter.db.sp.SPUtil.convertToCachedRowSet(SPUtil.ja

va:125)
at oracle.tip.adapter.db.sp.oracle.StoredProcedure.getObject(StoredProcedure.java:189)
at oracle.tip.adapter.db.sp.AbstractStoredProcedure.getObject(AbstractStoredProcedure.java:126)
... 41 more
".

at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:535)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:430)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:447)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:184)
at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:112)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:106)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:85)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:105)
at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:273)
at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:212)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:197)
at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:82)
at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1416)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(EventOracleSoapProvider.java:314)
at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(EventOracleSoapProvider.java:187)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:956)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:466)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:177)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:797)
Caused by: org.collaxa.thirdparty.apache.wsif.WSIFException: esb:///ESB_Projects/MAGIC_BON_ITO_002_GBL_ScanServiceRequestNotes_ESB/CallScanNotes_SP.wsdl [ CallScanNotes_SP_ptt::CallScanNotes_SP(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'CallScanNotes_SP' failed due to: Error retrieving the value of a parameter.
An error occurred when retrieving the value of parameter X_SERVICE_REQUEST_DATA after invoking the XX_BON_ITO_002_GBL_NOTES_PKG.SCAN_NOTE_SERVICE_REQUEST API. Cause: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
[Cau

sed by: ORA-01427: single-row subquery returns more than one row
]
; nested exception is:
ORABPEL-11810
Error retrieving the value of a parameter.
An error occurred when retrieving the value of parameter X_SERVICE_REQUEST_DATA after invoking the XX_BON_ITO_002_GBL_NOTES_PKG.SCAN_NOTE_SERVICE_REQUEST API. Cause: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
[Caused by: ORA-01427: single-row subquery returns more than one row
]
Check to ensure that the parameter has been correctly registered as a valid IN/OUT or OUT parameter of the API. Contact oracle support if error is not fixable.

at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:633)
at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:507)
... 34 more
Caused by: ORABPEL-11810
Error retrieving the value of a parameter.
An error occurred when retrieving the value of parameter X_SERVICE_REQUEST_DATA after invoking the XX_BON_ITO_002_GBL_NOTES_PKG.SCAN_NOTE_SERVICE_REQUEST API. Cause: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
[Caused by: ORA-01427: single-row subquery returns more than one row
]
Check to ensure that the parameter has been correctly registered as a valid IN/OUT or OUT parameter of the API. Contact oracle support if error is not fixable.

at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:469)
at oracle.tip.adapter.db.sp.SPUtil.createResourceException(SPUtil.java:172)
at oracle.tip.adapter.db.sp.AbstractStoredProcedure.getObject(AbstractStoredProcedure.java:128)
at oracle.tip.adapter.db.sp.oracle.StoredProcedure.retrieveAllValues(StoredProcedure.java:216)
at oracle.tip.adapter.db.sp.AbstractStoredProcedure.execute(AbstractStoredProcedure.java:107)
at oracle.tip.adapter.db.sp.SPInteraction.executeStoredProcedure(SPInteraction.java:132)
at oracle.tip.adapter.db.DBInteraction.executeStoredProcedure(DBInteraction.java:1014)
at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:232)
at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:485)
... 35 more
Caused by: Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070608)): oracle.toplink.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row
Error Code: 1427
at oracle.toplink.exceptions.DatabaseException.sqlException(DatabaseException.java:282)
at oracle.tip.adapter.db.sp.SPUtil.createResourceException(SPUtil.java:162)
... 42 more
Caused by: java.sql.SQLException: ORA-01427: single-row subquery returns more than one row

at java.lang.Throwable.&lt;init>(Throwable.java:57)
at java.lang.Throwable.&lt;init>(Throwable.java:68)
at java.sql.SQLException.&lt;init>(SQLException.java:55)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:113)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:620)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:277)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:206)
at oracle.jdbc.rowset.OracleCachedRowSet.populate(OracleCachedRowSet.java:2507)
at oracle.tip.adapter.db.sp.SPUtil.convertToCachedRowSet(SPUtil.java:125)
at oracle.tip.adapter.db.sp.oracle.StoredProcedure.getObject(StoredProcedure.java:189)
at oracle.tip.adapter.db.sp.AbstractStoredProcedure.getObject(AbstractStoredProcedure.java:126)
... 41 more

No comments: