-
FEATURED COMPONENTS
First time here? Check out the FAQ!
I'am trying to create components without current execution (inside quartz job):
Component[] cmps = Executions.createComponentsDirectly(FormWebAppInit.getWebApp(),
new StringReader(form.getView()), "zul", args);
UiUtils try to set attribute in execution, but request is null (bacause execution is a fake) Any ideas how i can create components inside quartz job? Is it bug or not?
Stack trace:
java.lang.NullPointerException
at org.zkoss.zk.ui.http.ExecutionImpl.getAttribute(ExecutionImpl.java:488) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.Utils.getComponentInfos(Utils.java:117) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.Utils.setComponentInfo(Utils.java:129) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.AbstractUiFactory.newComponent(AbstractUiFactory.java:137) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:919) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:889) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:776) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:836) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:794) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:740) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.UiEngineImpl.createComponents(UiEngineImpl.java:1143) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.impl.AbstractExecution.createComponentsDirectly(AbstractExecution.java:399) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.zkoss.zk.ui.Executions.createComponentsDirectly(Executions.java:502) ~[zk-8.6.0.1.jar:8.6.0.1]
at org.sinnlabs.dbvim.form.FormFieldResolver.<init>(FormFieldResolver.java:68) ~[dbvim-forms-0.0.2-SNAPSHOT.jar:?]
at org.sinnlabs.dbvim.form.FormFieldResolverFactory.getResolver(FormFieldResolverFactory.java:42) ~[dbvim-forms-0.0.2-SNAPSHOT.jar:?]
at org.sinnlabs.dbvim.script.impl.ScriptApiImpl.query(ScriptApiImpl.java:162) ~[dbvim-scriptapi-0.0.2-SNAPSHOT.jar:?]
at jdk.nashorn.internal.scripts.Script$Recompilation$96$23A$\^eval_.execute(<eval>:13) ~[?:?]
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:639) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.ScriptObjectMirror.callMember(ScriptObjectMirror.java:199) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:386) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(NashornScriptEngine.java:190) ~[nashorn.jar:?]
at org.sinnlabs.dbvim.script.impl.JSScriptManager.eval(JSScriptManager.java:137) ~[dbvim-scriptapi-0.0.2-SNAPSHOT.jar:?]
at org.sinnlabs.dbvim.scheduler.impl.QuartzSpringJobImpl.execute(QuartzSpringJobImpl.java:59) ~[dbvim-scheduler-0.0.2-SNAPSHOT.jar:?]
at org.sinnlabs.dbvim.scheduler.impl.QuartzJob.execute(QuartzJob.java:33) ~[dbvim-scheduler-0.0.2-SNAPSHOT.jar:?]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[quartz-2.3.0.jar:?]
You have a valid point, this used to work back in ZK 5, it looks like a bug - so I posted ZK-4340.
However this seems to be broken since ZK 6, and hasn't been reported/considered since then. Likely no one ever used this and a complete fix might be not feasible at all.
Feel free to try out the prototypic fix/patch attached to the bug ticket, and share your results in a more complex scenario.
UPDATE: ZK-4340 -> will be FIXED in ZK 9.0.0
Asked: 2019-07-10 06:28:17 +0800
Seen: 13 times
Last updated: Nov 11 '19