Hi all,

I am customizing the onePageCheckout (the anonymous part) and I found
something strange. I've changed the client-side validation in order to allow
the customer to only introduce the phone, cell phone or both. But on
server-side I didn't change anything in the PartyContactMechMapProcs.xml
yet. So, it is throwing an error of course, but the ajax handler does not
consider it as an error. It always executes the success ajax handler!

This is the stack trace:

2011-07-16 19:44:35,266 (http-0.0.0.0-8443-2) [
ControlServlet.java:141:INFO ] [[[createUpdateShippingAddress] Request
Begun, encoding=[UTF-8]- total:0.0,since last(Begin):0.0]]
2011-07-16 19:44:35,283 (http-0.0.0.0-8443-2) [
 ConfigXMLReader.java:120:INFO ] controller loaded: 0.0030s, 281 requests,
96 views in jndi:/0.0.0.0/ecomm/traditional/WEB-INF/controller.xml
2011-07-16 19:44:35,286 (http-0.0.0.0-8443-2) [
ServiceEcaRule.java:150:INFO ] Running Service ECA Service:
setAnonUserLogin, triggered by rule on Service:
createUpdateCustomerAndShippingAddress
2011-07-16 19:44:35,392 (http-0.0.0.0-8443-2) [
 ServiceDispatcher.java:599:INFO ] Sync service
[traditional#JF/setAnonUserLogin] finished in [105] milliseconds with
response [{responseMessage=success}]
2011-07-16 19:44:35,396 (http-0.0.0.0-8443-2) [
 TransactionUtil.java:374:WARN ]
---- exception report
----------------------------------------------------------
[TransactionUtil.setRollbackOnly] Calling transaction setRollbackOnly; this
stack trace shows where this is happening:
Exception: java.lang.Exception
Message: Error in simple-method [Create/Update Customer, Shipping Address
and other contact details.
[file:/home/jsoto/workspace/ofbizcustom/applications/order/script/org/ofbiz/order/order/CheckoutServices.xml#createUpdateCustomerAndShippingAddress]]:
; {Area code is missing, Falta Teléfono de Contacto}
---- stack trace
---------------------------------------------------------------
java.lang.Exception: Error in simple-method [Create/Update Customer,
Shipping Address and other contact details.
[file:/home/jsoto/workspace/ofbizcustom/applications/order/script/org/ofbiz/order/order/CheckoutServices.xml#createUpdateCustomerAndShippingAddress]]:
; {Area code is missing, Falta Teléfono de Contacto}
org.ofbiz.entity.transaction.TransactionUtil.setRollbackOnly(TransactionUtil.java:374)
org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:316)
org.ofbiz.minilang.SimpleMethod.exec(SimpleMethod.java:870)
org.ofbiz.minilang.SimpleMethod.runSimpleMethod(SimpleMethod.java:160)
org.ofbiz.minilang.SimpleMethod.runSimpleService(SimpleMethod.java:142)
org.ofbiz.minilang.SimpleServiceEngine.serviceInvoker(SimpleServiceEngine.java:78)
org.ofbiz.minilang.SimpleServiceEngine.runSync(SimpleServiceEngine.java:53)
org.ofbiz.service.ModelServiceReader$GenericInvokerImpl.runSync(ModelServiceReader.java:761)
_$gen.file_58$.home.jsoto.workspace.ofbizcustom.applications.order.servicedef.services_95$checkout_46$xml_35$createUpdateCustomerAndShippingAddress.runSync(file:/home/jsoto/workspace/ofbizcustom/applications/order/servicedef/services_checkout.xml#createUpdateCustomerAndShippingAddress:24)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:399)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:226)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:165)
org.ofbiz.webapp.event.ServiceEventHandler.invoke(ServiceEventHandler.java:336)
org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:638)
org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:384)
org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224)
org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:87)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:338)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:619)
--------------------------------------------------------------------------------

2011-07-16 19:44:35,397 (http-0.0.0.0-8443-2) [
 ServiceDispatcher.java:543:ERROR] Error in Service
[createUpdateCustomerAndShippingAddress]: Area code is missing, Falta
Teléfono de Contacto
2011-07-16 19:44:35,397 (http-0.0.0.0-8443-2) [
 TransactionUtil.java:338:ERROR]
---- exception report
----------------------------------------------------------
[TransactionUtil.rollback]
Exception: java.lang.Exception
Message: Stack Trace
---- stack trace
---------------------------------------------------------------
java.lang.Exception: Stack Trace
org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:337)
org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:314)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:547)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:226)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:165)
org.ofbiz.webapp.event.ServiceEventHandler.invoke(ServiceEventHandler.java:336)
org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:638)
org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:384)
org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224)
org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:87)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:338)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:619)
--------------------------------------------------------------------------------

2011-07-16 19:44:35,398 (http-0.0.0.0-8443-2) [
 TransactionUtil.java:348:INFO ] [TransactionUtil.rollback] transaction
rolled back
2011-07-16 19:44:35,399 (http-0.0.0.0-8443-2) [
 ServiceDispatcher.java:599:INFO ] Sync service
[traditional#JF/createUpdateCustomerAndShippingAddress] finished in [112]
milliseconds with response [{errorMessageList={Area code is missing, Falta
Teléfono de Contacto}, responseMessage=error}]
2011-07-16 19:44:35,399 (http-0.0.0.0-8443-2) [
RequestHandler.java:639:INFO ] Ran Event
[service:#createUpdateCustomerAndShippingAddress] from [request], result is
[error]
2011-07-16 19:44:35,495 (http-0.0.0.0-8443-2) [
RequestHandler.java:425:ERROR] Request createUpdateShippingAddress caused an
error with the following message: {Area code is missing, Falta Teléfono de
Contacto}
2011-07-16 19:44:35,496 (http-0.0.0.0-8443-2) [
RequestHandler.java:524:INFO ] [RequestHandler.doRequest]: Response is a
chained request. sessionId=4D2FA44B2DA6BCB7E2D9BE245F808E22.jvm1
2011-07-16 19:44:35,496 (http-0.0.0.0-8443-2) [
RequestHandler.java:167:INFO ] [RequestHandler]: Chain in place:
requestUri=json overrideViewUri=null
sessionId=4D2FA44B2DA6BCB7E2D9BE245F808E22.jvm1
2011-07-16 19:44:35,504 (http-0.0.0.0-8443-2) [
RequestHandler.java:639:INFO ] Ran Event
[java:org.ofbiz.common.CommonEvents#jsonResponseFromRequestAttributes] from
[request], result is [success]
2011-07-16 19:44:35,556 (http-0.0.0.0-8443-2) [
ServerHitBin.java:627:INFO ] Visit delegatorName=default#JF, ServerHitBin
delegatorName=default#JF
2011-07-16 19:44:35,604 (http-0.0.0.0-8443-2) [
SequenceUtil.java:337:INFO ] Got bank of sequenced IDs for [ServerHitBin];
curSeqId=53390, maxSeqId=53400, bankSize=10
2011-07-16 19:44:35,653 (http-0.0.0.0-8443-2) [
ControlServlet.java:324:INFO ] [[[createUpdateShippingAddress] Request Done-
total:0.386,since last([createUpdateShip...):0.386]]


-----------------------------------------------------------------------------------------------

After a bit of investigation I found this:

The event 'createUpdateCustomerAndShippingAddress' is returning an error as
a result but since the request is chained (with a json request) the
controller takes the response from the event
'java:org.ofbiz.common.CommonEvents#jsonResponseFromRequestAttributes' which
is always 'success'. So that's why I figure out the ajax error handler is
never invoked.

What do you think?

For further details, I am using a 3 months old trunk version with MySql.
I've checked out the latest version
of CommonEvents#jsonResponseFromRequestAttributes in the SVN, still the same
code as I have.

Thanks in advance.

-- 
-----

Jonatan Soto

Reply via email to