java.lang.NullPointerException

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • h2. Reproducing Steps: There are two different exceptions thrown in the same zul and ViewModel (in the attachment). h3. prepare to reproduce: # download the attachment # correct package name and import statement to no compilation error # check zul's ViewModel name and run it h3. 1. Add Issue # enter some value in the textbox # click "Add" button # Null pointer exception is thrown as follows: {code} 嚴重的: >>java.lang.NullPointerException >> at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929) >> at org.zkoss.zul.Listbox.onListDataChange(Listbox.java:2531) >> at org.zkoss.zul.Listbox.access$800(Listbox.java:261) >> at org.zkoss.zul.Listbox$4.onChange(Listbox.java:461) >> at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:61) >> at org.zkoss.zul.ListModelList.fireSelectionEvent(ListModelList.java:438) >> at org.zkoss.zul.AbstractListModel.addToSelection(AbstractListModel.java:130) >> at org.zkoss.bind.converter.sys.ListboxSelectedItemConverter.coerceToUi(ListboxSelectedItemConverter.java:48) >> at org.zkoss.bind.impl.LoadPropertyBindingImpl.load(LoadPropertyBindingImpl.java:74) >> at org.zkoss.bind.impl.BinderImpl.loadOnPropertyChange(BinderImpl.java:360) >> at org.zkoss.bind.impl.BinderImpl.access$100(BinderImpl.java:98) >> at org.zkoss.bind.impl.BinderImpl$QueueListener.onEvent(BinderImpl.java:278) >> at org.zkoss.zk.ui.event.impl.DesktopEventQueue$QueueListener.onEvent(DesktopEventQueue.java:145) >> at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2739) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2710) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2651) >> at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) >> at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) >> at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) >> at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) >> 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) {code} h4.Initial Observation # This issue only happens under "paging" mold instead of "default" mold # add a statenent {{pickedItem = new Item();}} after adding to list will eliminate the exception. # move "itemList" in front of "pickedItem" in {{@NotifyChange}} can eliminate NullPointerException h4.Incomplete Reproducing Case This a incomplete page that I tried to reproduce the issue under MVC but no succeeded. {code:xml} <zk> <div width="400px" > <listbox id="listbox" mold="paging" pageSize="10"> <listhead> <listheader label="name" /> </listhead> <template name="model" > <listitem> <listcell label="${each}" /> </listitem> </template> </listbox> <button label="Phase1" onClick="phase1()"/> <button label="Phose2" onClick="phase2()"/> </div> <zscript><![CDATA[ List itemList = new LinkedList(); for (int i= 0 ; i < 10 ; i ++){ itemList.add("item "+i); } ListModelList listModelList = new ListModelList(itemList); listbox.setModel(listModelList); String t = "item 10"; public void phase1(){ listModelList.addSelection(t); } public void phase2(){ itemList.add(t); listModelList.addSelection(t); listModelList = new ListModelList(itemList); listModelList.addSelection(t); listbox.setModel(listModelList); } ]]> </zscript> </zk> {code} h3.2. Delete Issue # select last item, click "Delete" # an exception thrown as follows: {code} 嚴重的: >>java.lang.IndexOutOfBoundsException: Index: 9, Size: 9 >> at java.util.LinkedList.entry(LinkedList.java:368) >> at java.util.LinkedList.get(LinkedList.java:313) >> at org.zkoss.zul.ListModelList.getElementAt(ListModelList.java:150) >> at org.zkoss.zul.Listbox.doSelectionChanged(Listbox.java:2580) >> at org.zkoss.zul.Listbox.onListDataChange(Listbox.java:2534) >> at org.zkoss.zul.Listbox.access$800(Listbox.java:261) >> at org.zkoss.zul.Listbox$4.onChange(Listbox.java:461) >> at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:61) >> at org.zkoss.zul.ListModelList.fireSelectionEvent(ListModelList.java:438) >> at org.zkoss.zul.AbstractListModel.addToSelection(AbstractListModel.java:130) >> at org.zkoss.bind.converter.sys.ListboxSelectedItemConverter.coerceToUi(ListboxSelectedItemConverter.java:48) >> at org.zkoss.bind.impl.LoadPropertyBindingImpl.load(LoadPropertyBindingImpl.java:74) >> at org.zkoss.bind.impl.BinderImpl.loadOnPropertyChange(BinderImpl.java:360) >> at org.zkoss.bind.impl.BinderImpl.access$100(BinderImpl.java:98) >> at org.zkoss.bind.impl.BinderImpl$QueueListener.onEvent(BinderImpl.java:278) >> at org.zkoss.zk.ui.event.impl.DesktopEventQueue$QueueListener.onEvent(DesktopEventQueue.java:145) >> at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2739) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2710) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2651) >> at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) >> at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) >> at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) >> at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) >> 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) {code} h4. Initial Observation: # This issue only happens under both "paging" and "default" mold # add a statement {{pickedItem = null;}} after deletion will eliminate the exception. But use a statement {{pickedItem = new Item()}} still cause the exception. # move "itemList" in front of "pickedItem" in @NotifyChange can eliminate the exception, like {{@NotifyChange({"itemList","pickedItem"})}}
    via by hawk,
  • h2. Reproducing Steps: There are two different exceptions thrown in the same zul and ViewModel (in the attachment). h3. prepare to reproduce: # download the attachment # correct package name and import statement to no compilation error # check zul's ViewModel name and run it h3. 1. Add Issue # enter some value in the textbox # click "Add" button # Null pointer exception is thrown as follows: {code} 嚴重的: >>java.lang.NullPointerException >> at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929) >> at org.zkoss.zul.Listbox.onListDataChange(Listbox.java:2531) >> at org.zkoss.zul.Listbox.access$800(Listbox.java:261) >> at org.zkoss.zul.Listbox$4.onChange(Listbox.java:461) >> at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:61) >> at org.zkoss.zul.ListModelList.fireSelectionEvent(ListModelList.java:438) >> at org.zkoss.zul.AbstractListModel.addToSelection(AbstractListModel.java:130) >> at org.zkoss.bind.converter.sys.ListboxSelectedItemConverter.coerceToUi(ListboxSelectedItemConverter.java:48) >> at org.zkoss.bind.impl.LoadPropertyBindingImpl.load(LoadPropertyBindingImpl.java:74) >> at org.zkoss.bind.impl.BinderImpl.loadOnPropertyChange(BinderImpl.java:360) >> at org.zkoss.bind.impl.BinderImpl.access$100(BinderImpl.java:98) >> at org.zkoss.bind.impl.BinderImpl$QueueListener.onEvent(BinderImpl.java:278) >> at org.zkoss.zk.ui.event.impl.DesktopEventQueue$QueueListener.onEvent(DesktopEventQueue.java:145) >> at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2739) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2710) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2651) >> at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) >> at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) >> at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) >> at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) >> 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) {code} h4.Initial Observation # This issue only happens under "paging" mold instead of "default" mold # add a statenent {{pickedItem = new Item();}} after adding to list will eliminate the exception. # move "itemList" in front of "pickedItem" in {{@NotifyChange}} can eliminate NullPointerException h4.Incomplete Reproducing Case This a incomplete page that I tried to reproduce the issue under MVC but no succeeded. {code:xml} <zk> <div width="400px" > <listbox id="listbox" mold="paging" pageSize="10"> <listhead> <listheader label="name" /> </listhead> <template name="model" > <listitem> <listcell label="${each}" /> </listitem> </template> </listbox> <button label="Phase1" onClick="phase1()"/> <button label="Phose2" onClick="phase2()"/> </div> <zscript><![CDATA[ List itemList = new LinkedList(); for (int i= 0 ; i < 10 ; i ++){ itemList.add("item "+i); } ListModelList listModelList = new ListModelList(itemList); listbox.setModel(listModelList); String t = "item 10"; public void phase1(){ listModelList.addSelection(t); } public void phase2(){ itemList.add(t); listModelList.addSelection(t); listModelList = new ListModelList(itemList); listModelList.addSelection(t); listbox.setModel(listModelList); } ]]> </zscript> </zk> {code} h3.2. Delete Issue # select last item, click "Delete" # an exception thrown as follows: {code} 嚴重的: >>java.lang.IndexOutOfBoundsException: Index: 9, Size: 9 >> at java.util.LinkedList.entry(LinkedList.java:368) >> at java.util.LinkedList.get(LinkedList.java:313) >> at org.zkoss.zul.ListModelList.getElementAt(ListModelList.java:150) >> at org.zkoss.zul.Listbox.doSelectionChanged(Listbox.java:2580) >> at org.zkoss.zul.Listbox.onListDataChange(Listbox.java:2534) >> at org.zkoss.zul.Listbox.access$800(Listbox.java:261) >> at org.zkoss.zul.Listbox$4.onChange(Listbox.java:461) >> at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:61) >> at org.zkoss.zul.ListModelList.fireSelectionEvent(ListModelList.java:438) >> at org.zkoss.zul.AbstractListModel.addToSelection(AbstractListModel.java:130) >> at org.zkoss.bind.converter.sys.ListboxSelectedItemConverter.coerceToUi(ListboxSelectedItemConverter.java:48) >> at org.zkoss.bind.impl.LoadPropertyBindingImpl.load(LoadPropertyBindingImpl.java:74) >> at org.zkoss.bind.impl.BinderImpl.loadOnPropertyChange(BinderImpl.java:360) >> at org.zkoss.bind.impl.BinderImpl.access$100(BinderImpl.java:98) >> at org.zkoss.bind.impl.BinderImpl$QueueListener.onEvent(BinderImpl.java:278) >> at org.zkoss.zk.ui.event.impl.DesktopEventQueue$QueueListener.onEvent(DesktopEventQueue.java:145) >> at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2739) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2710) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2651) >> at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) >> at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) >> at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) >> at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) >> 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) {code} h4. Initial Observation: # This issue only happens under both "paging" and "default" mold # add a statement {{pickedItem = null;}} after deletion will eliminate the exception. But use a statement {{pickedItem = new Item()}} still cause the exception. # move "itemList" in front of "pickedItem" in @NotifyChange can eliminate the exception, like {{@NotifyChange({"itemList","pickedItem"})}}
    via by hawk,
  • (only when listbox + CE) EE doesn't have this issue the code is simulating mvvm behavior {code} <zk> <label multiline="true"> (only when listbox + CE) EE doesn't have this issue the code is simulating mvvm behavior 1.chick addToSelection you should see a item A add to next page without an exception 2.this exception cause by a wrong implementation of object's hashcode() 3.should consider to avoid this exception (eat at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929)(need to check side effect) or throw meaningful exception(better) </label> <div width="400px" > <listbox id="listbox" mold="paging" pageSize="10"> <listhead> <listheader label="name" /> </listhead> <template name="model" > <listitem> <listcell label="${each.name}" /> </listitem> </template> </listbox> <button label="addToSelection" onClick="addToSelection()"/> </div> <zscript><![CDATA[ class Item { String name; public Item() { } public Item(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof Item)) return false; Item other = (Item) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } } List itemList = new LinkedList(); for (int i = 0; i < 10; i++) { itemList.add(new Item("item " + i)); } ListModelList listModelList = new ListModelList(itemList,true);//if use live list listbox.setModel(listModelList); //1.an item is not in collection yet, however, it already in the selection Item n = new Item(); listModelList.addSelection(n);//un non in list selection public void addToSelection() { //2.after the value changed of the item //the wrong imple of item hash cause this exception n.setName("A"); itemList.add(n); listModelList.addSelection(n); listbox.setModel(listModelList); } ]]> </zscript> </zk> {code} >>java.lang.NullPointerException >> at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929) >> at org.zkoss.zul.Listbox.onListDataChange(Listbox.java:2531) >> at org.zkoss.zul.Listbox.access$17(Listbox.java:2521) >> at org.zkoss.zul.Listbox$4.onChange(Listbox.java:461) >> at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:61) >> at org.zkoss.zul.ListModelList.fireSelectionEvent(ListModelList.java:438) >> at org.zkoss.zul.AbstractListModel.addToSelection(AbstractListModel.java:130) >> at org.zkoss.zul.ListModelList.addSelection(ListModelList.java:445) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at bsh.Reflect.invokeMethod(Unknown Source) >> at bsh.Reflect.invokeObjectMethod(Unknown Source) >> at bsh.Name.invokeMethod(Unknown Source) >> at bsh.BSHMethodInvocation.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.BSHBlock.evalBlock(Unknown Source) >> at bsh.BSHBlock.eval(Unknown Source) >> at bsh.BshMethod.invokeImpl(Unknown Source) >> at bsh.BshMethod.invoke(Unknown Source) >> at bsh.BshMethod.invoke(Unknown Source) >> at bsh.Name.invokeLocalMethod(Unknown Source) >> at bsh.Name.invokeMethod(Unknown Source) >> at bsh.BSHMethodInvocation.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.Interpreter.eval(Unknown Source) >> at bsh.Interpreter.eval(Unknown Source) >> at org.zkoss.zk.scripting.bsh.BSHInterpreter.exec(BSHInterpreter.java:131) >> at org.zkoss.zk.scripting.util.GenericInterpreter.interpret(GenericInterpreter.java:328) >> at org.zkoss.zk.ui.impl.PageImpl.interpret(PageImpl.java:875) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2701) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2654) >> at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) >> at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) >> at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) >> at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) >> 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)
    via by dennis,
  • Listbox with paging. If dynamically in custom renderer call row.detach(), and then on client select last row, ZK throws java.lang.NullPointerException or java.lang.IndexOutOfBoundsException. Please see example: http://zkfiddle.org/sample/1esfv0m/41-Another-new-ZK-fiddle#source-3 1) java.lang.NullPointerException at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929) at org.zkoss.zul.Listbox.selectItem(Listbox.java:953) at org.zkoss.zul.Listbox.service(Listbox.java:3396) at org.zkoss.zk.ui.impl.DesktopImpl.service(DesktopImpl.java:699) at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1193) 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:595) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) .. 2) java.lang.IndexOutOfBoundsException: Index: -1, Size: 3 at java.util.ArrayList.get(ArrayList.java:352) at org.zkoss.zul.ListModelList.getElementAt(ListModelList.java:150) at org.zkoss.zul.Listbox.service(Listbox.java:3423) at org.zkoss.zk.ui.impl.DesktopImpl.service(DesktopImpl.java:708) at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1204) at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:601) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:483) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:492) at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) ...
    via by emorozovs,
  • Listbox with paging. If dynamically in custom renderer call row.detach(), and then on client select last row, ZK throws java.lang.NullPointerException or java.lang.IndexOutOfBoundsException. Please see example: http://zkfiddle.org/sample/1esfv0m/41-Another-new-ZK-fiddle#source-3 1) java.lang.NullPointerException at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929) at org.zkoss.zul.Listbox.selectItem(Listbox.java:953) at org.zkoss.zul.Listbox.service(Listbox.java:3396) at org.zkoss.zk.ui.impl.DesktopImpl.service(DesktopImpl.java:699) at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1193) 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:595) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) .. 2) java.lang.IndexOutOfBoundsException: Index: -1, Size: 3 at java.util.ArrayList.get(ArrayList.java:352) at org.zkoss.zul.ListModelList.getElementAt(ListModelList.java:150) at org.zkoss.zul.Listbox.service(Listbox.java:3423) at org.zkoss.zk.ui.impl.DesktopImpl.service(DesktopImpl.java:708) at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1204) at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:601) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:483) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:492) at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) ...
    via by emorozovs,
  • (only when listbox + CE) EE doesn't have this issue the code is simulating mvvm behavior {code} <zk> <label multiline="true"> (only when listbox + CE) EE doesn't have this issue the code is simulating mvvm behavior 1.chick addToSelection you should see a item A add to next page without an exception 2.this exception cause by a wrong implementation of object's hashcode() 3.should consider to avoid this exception (eat at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929)(need to check side effect) or throw meaningful exception(better) </label> <div width="400px" > <listbox id="listbox" mold="paging" pageSize="10"> <listhead> <listheader label="name" /> </listhead> <template name="model" > <listitem> <listcell label="${each.name}" /> </listitem> </template> </listbox> <button label="addToSelection" onClick="addToSelection()"/> </div> <zscript><![CDATA[ class Item { String name; public Item() { } public Item(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!(obj instanceof Item)) return false; Item other = (Item) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } } List itemList = new LinkedList(); for (int i = 0; i < 10; i++) { itemList.add(new Item("item " + i)); } ListModelList listModelList = new ListModelList(itemList,true);//if use live list listbox.setModel(listModelList); //1.an item is not in collection yet, however, it already in the selection Item n = new Item(); listModelList.addSelection(n);//un non in list selection public void addToSelection() { //2.after the value changed of the item //the wrong imple of item hash cause this exception n.setName("A"); itemList.add(n); listModelList.addSelection(n); listbox.setModel(listModelList); } ]]> </zscript> </zk> {code} >>java.lang.NullPointerException >> at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929) >> at org.zkoss.zul.Listbox.onListDataChange(Listbox.java:2531) >> at org.zkoss.zul.Listbox.access$17(Listbox.java:2521) >> at org.zkoss.zul.Listbox$4.onChange(Listbox.java:461) >> at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:61) >> at org.zkoss.zul.ListModelList.fireSelectionEvent(ListModelList.java:438) >> at org.zkoss.zul.AbstractListModel.addToSelection(AbstractListModel.java:130) >> at org.zkoss.zul.ListModelList.addSelection(ListModelList.java:445) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at bsh.Reflect.invokeMethod(Unknown Source) >> at bsh.Reflect.invokeObjectMethod(Unknown Source) >> at bsh.Name.invokeMethod(Unknown Source) >> at bsh.BSHMethodInvocation.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.BSHBlock.evalBlock(Unknown Source) >> at bsh.BSHBlock.eval(Unknown Source) >> at bsh.BshMethod.invokeImpl(Unknown Source) >> at bsh.BshMethod.invoke(Unknown Source) >> at bsh.BshMethod.invoke(Unknown Source) >> at bsh.Name.invokeLocalMethod(Unknown Source) >> at bsh.Name.invokeMethod(Unknown Source) >> at bsh.BSHMethodInvocation.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.BSHPrimaryExpression.eval(Unknown Source) >> at bsh.Interpreter.eval(Unknown Source) >> at bsh.Interpreter.eval(Unknown Source) >> at org.zkoss.zk.scripting.bsh.BSHInterpreter.exec(BSHInterpreter.java:131) >> at org.zkoss.zk.scripting.util.GenericInterpreter.interpret(GenericInterpreter.java:328) >> at org.zkoss.zk.ui.impl.PageImpl.interpret(PageImpl.java:875) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2701) >> at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2654) >> at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) >> at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) >> at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) >> at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) >> at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) >> 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)
    via by dennis,
    • java.lang.NullPointerException at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:929) at org.zkoss.zul.Listbox.onListDataChange(Listbox.java:2531) at org.zkoss.zul.Listbox.access$800(Listbox.java:261) at org.zkoss.zul.Listbox$4.onChange(Listbox.java:461) at org.zkoss.zul.AbstractListModel.fireEvent(AbstractListModel.java:61) at org.zkoss.zul.ListModelList.fireSelectionEvent(ListModelList.java:438) at org.zkoss.zul.AbstractListModel.addToSelection(AbstractListModel.java:130) at org.zkoss.bind.converter.sys.ListboxSelectedItemConverter.coerceToUi(ListboxSelectedItemConverter.java:48) at org.zkoss.bind.impl.LoadPropertyBindingImpl.load(LoadPropertyBindingImpl.java:74) at org.zkoss.bind.impl.BinderImpl.loadOnPropertyChange(BinderImpl.java:360) at org.zkoss.bind.impl.BinderImpl.access$100(BinderImpl.java:98) at org.zkoss.bind.impl.BinderImpl$QueueListener.onEvent(BinderImpl.java:278) at org.zkoss.zk.ui.event.impl.DesktopEventQueue$QueueListener.onEvent(DesktopEventQueue.java:145) at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2739) at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2710) at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2651) at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136) at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1710) at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1495) at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1205) at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:583) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:481) at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:489) 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)
    No Bugmate found.