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