-1

My code is as follows

for(User user: userList){
            if(user.getName()==null){
                userList.remove(user);
            }
        }

here i am checking for null value of name property but it trows null pointer exception on checking the condition

StackTrace

java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    at java.util.ArrayList$Itr.next(Unknown Source)
    at in.net.usit.dbu.web.transformation.TransformationViewModel.initializeData(TransformationViewModel.java:106)
    at in.net.usit.dbu.web.transformation.TransformationViewModel.init(TransformationViewModel.java:91)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.zkoss.bind.impl.ParamCall.call(ParamCall.java:111)
    at org.zkoss.bind.impl.AbstractAnnotatedMethodInvoker.invokeMethod(AbstractAnnotatedMethodInvoker.java:87)
    at org.zkoss.bind.BindComposer.doAfterCompose(BindComposer.java:170)
    at org.zkoss.zk.ui.impl.UiEngineImpl.doAfterCompose(UiEngineImpl.java:534)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:836)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:782)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:691)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:753)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:713)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:655)
    at org.zkoss.zk.ui.impl.UiEngineImpl.createComponents(UiEngineImpl.java:1036)
    at org.zkoss.zk.ui.impl.AbstractExecution.createComponents0(AbstractExecution.java:246)
    at org.zkoss.zk.ui.impl.AbstractExecution.createComponents(AbstractExecution.java:238)
    at org.zkoss.zul.Include.afterCompose(Include.java:450)
    at org.zkoss.zul.Include.onAfterCompose(Include.java:434)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2725)
    at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2655)
    at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136)
    at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1721)
    at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1506)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1216)
    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:648)

this is the stacktrace i don't how to find the solution please help me with that

  • You should always post stacktrace with code when asking about any exceptions. – Azodious Dec 29 '16 at 06:59
  • 2
    do you have null element in userList also ? if so you should first check for user != null && user.getName() == null – jatanp Dec 29 '16 at 06:59
  • ok i have null property in use i will chechk –  Dec 29 '16 at 07:03
  • @jatanp still same exception –  Dec 29 '16 at 07:08
  • 2
    That's *definitely* not an NPE. – Makoto Dec 29 '16 at 07:09
  • Where did you see a NullPointerException in `java.util.ConcurrentModificationException` ? This is a restriction of the for-iterative, but you could have find that easily by searching this exception on google and would find as first result [this page](http://stackoverflow.com/q/8189466/4391450) – AxelH Dec 29 '16 at 07:30
  • @AxelH yeah changed –  Dec 29 '16 at 09:09

1 Answers1

0

you get ConcurrentModificationException when trying to remove item from the list at the same time when iterating userList.

try to use an Iterator and call remove():

Iterator<String> iter = userList.iterator();

while (iter.hasNext()) {
    User user = iter.next();
    if (user.getName()==null)
        iter.remove();
}

see link for more info

Community
  • 1
  • 1
yogev levi
  • 369
  • 1
  • 4
  • 21