-
Bug
-
Resolution: Fixed
-
Normal
-
6.0.0
-
None
-
None
If I remove the errorMessage binding, or add a load binding on value, then this error is not showing.
<window apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('org.zkoss.zktest.bind.issue.Bx2')" validationMessages="@id('vmsgs')"> <vlayout> <hlayout> <label value="@bind(vm.name)" /> </hlayout> <hlayout> Name : <textbox value="@save(vm.name) @validator(vm.validator1)" errorMessage="@load(vmsgs[self])" /> </hlayout> </vlayout> </window>
public class Bx2 { String name; public Bx2() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public Validator getValidator1(){ return new AbstractValidator() { @Override public void validate(ValidationContext ctx) { String name = (String)ctx.getProperties("name")[0].getValue(); if(!"Lin".equals(name)){ addInvalidMessage(ctx, "the name have to equals to Lin, but is "+name); } } }; } }
>>java.lang.NullPointerException >> at org.zkoss.bind.tracker.impl.TrackerImpl.addBeanMap(TrackerImpl.java:221) >> at org.zkoss.bind.tracker.impl.TrackerImpl.tieValue(TrackerImpl.java:192) >> at org.zkoss.bind.xel.zel.BindELResolver.tieValue(BindELResolver.java:131) >> at org.zkoss.bind.xel.zel.BindELResolver.getValue(BindELResolver.java:68) >> at org.zkoss.zel.impl.parser.AstIdentifier.getValue(AstIdentifier.java:75) >> at org.zkoss.zel.impl.parser.AstValue.getTarget(AstValue.java:95) >> at org.zkoss.zel.impl.parser.AstValue.getValueReference(AstValue.java:326) >> at org.zkoss.zel.impl.ValueExpressionImpl.getValueReference(ValueExpressionImpl.java:279) >> at org.zkoss.xel.zel.ELXelExpression.getValueReference(ELXelExpression.java:62) >> at org.zkoss.bind.impl.BindEvaluatorXImpl.getValueReference(BindEvaluatorXImpl.java:80) >> at org.zkoss.bind.impl.SavePropertyBindingImpl.getValueReference(SavePropertyBindingImpl.java:129) >> at org.zkoss.bind.impl.SavePropertyBindingImpl.getValidate(SavePropertyBindingImpl.java:141) >> at org.zkoss.bind.impl.PropertyBindingHandler.doValidateSaveEvent(PropertyBindingHandler.java:220) >> at org.zkoss.bind.impl.PropertyBindingHandler.doSaveEvent(PropertyBindingHandler.java:198) >> at org.zkoss.bind.impl.BinderImpl.doSaveEvent(BinderImpl.java:1398) >> at org.zkoss.bind.impl.BinderImpl.access$6(BinderImpl.java:1392) >> at org.zkoss.bind.impl.BinderImpl$CommandEventListener.onEvent(BinderImpl.java:1139) >> at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2741) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2712) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2653) >> at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) >> at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1699) >> at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1484) >> at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1201) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:558) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:456) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:464) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) >> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) >> at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) >> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) >> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) >> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >> at org.mortbay.jetty.Server.handle(Server.java:326) >> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) >> at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) >> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)