[
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)