[ https://issues.apache.org/jira/browse/OFBIZ-3847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15281317#comment-15281317 ]
Gareth Carter commented on OFBIZ-3847: -------------------------------------- When I highlighted the line, I meant that oldValue is null not parameter value is null. I have just tested it again, value is not null but it is a GenericPK so it has no references all non pk fields Here is a stack trace from eclipse Daemon Thread [ajp-bio-8019-exec-3] (Suspended (breakpoint at line 137 in EntityEcaRule)) owns: SocketWrapper<E> (id=194) EntityEcaRule.eval(String, DispatchContext, GenericEntity, boolean, Set<String>) line: 137 DelegatorEcaHandler.evalRules(String, Map<String,List<EntityEcaRule>>, String, GenericEntity, boolean) line: 109 GenericDelegator$EntityEcaRuleRunner<T>.evalRules(String, String, GenericEntity, boolean) line: 2274 GenericDelegator.removeByPrimaryKey(GenericPK) line: 1004 GenericWebEvent.updateGeneric(HttpServletRequest, HttpServletResponse) line: 158 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 498 JavaEventHandler.invoke(String, String, Class<?>, Class<?>[], Object[]) line: 92 JavaEventHandler.invoke(ConfigXMLReader$Event, ConfigXMLReader$RequestMap, HttpServletRequest, HttpServletResponse) line: 78 RequestHandler.runEvent(HttpServletRequest, HttpServletResponse, ConfigXMLReader$Event, ConfigXMLReader$RequestMap, String) line: 759 RequestHandler.doRequest(HttpServletRequest, HttpServletResponse, String, GenericValue, Delegator) line: 476 ControlServlet.doGet(HttpServletRequest, HttpServletResponse) line: 213 ControlServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 620 ControlServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 727 ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 303 ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208 ContextFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 323 ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 241 ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 208 StandardWrapperValve.invoke(Request, Response) line: 220 StandardContextValve.invoke(Request, Response) line: 122 NonLoginAuthenticator(AuthenticatorBase).invoke(Request, Response) line: 505 StandardHostValve.invoke(Request, Response) line: 170 ErrorReportValve.invoke(Request, Response) line: 103 StandardEngineValve.invoke(Request, Response) line: 116 AccessLogValve.invoke(Request, Response) line: 956 CoyoteAdapter.service(Request, Response) line: 423 AjpProcessor.process(SocketWrapper<Socket>) line: 190 AjpProtocol$AjpConnectionHandler(AbstractProtocol$AbstractConnectionHandler<S,P>).process(SocketWrapper<S>, SocketStatus) line: 625 JIoEndpoint$SocketProcessor.run() line: 316 ThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) line: 1142 ThreadPoolExecutor$Worker.run() line: 617 TaskThread$WrappingRunnable.run() line: 61 TaskThread(Thread).run() line: 745 > Entity ECAs not triggered correctly when using Delegator.storeAll() method > -------------------------------------------------------------------------- > > Key: OFBIZ-3847 > URL: https://issues.apache.org/jira/browse/OFBIZ-3847 > Project: OFBiz > Issue Type: Bug > Components: framework > Affects Versions: Release Branch 10.04 > Reporter: Martin Kreidenweis > Assignee: Paul Foxworthy > Fix For: Upcoming Branch > > Attachments: GenericDelegator.java.diff, > OFBIZ-3847_Entity-ECAs-not-triggered-correctly.patch, > OFBIZ-3847_Entity-ECAs-not-triggered-correctly.patch > > > The conditions don't work when updating (not creating) entities using the > Delegator.storeAll() method. E.g. the following condition does not work: > {code} > <eca entity="Product" operation="create-store" event="return"> > <condition field-name="autoCreateKeywords" operator="not-equals" > value="N"/> > <action service="indexProductKeywords" mode="sync" > value-attr="productInstance"/> > </eca> > {code} > The indexProductKeywords service is called anyway when the product is updated > and the autoCreateKeywords was "N" and stays "N". It works correctly for > newly created products. > The problem is in the method GenericDelegator.storeAll(), where unchanged > field values are not passed down to the store() method. The store method > calls the ECA engine, which does not receive the unchanged values at all and > thus cannot evaluate the EECA conditions correctly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)