ConcurrentModificationException
Hi Everybody,
I am getting ConcurrentModificationException in this code.
private List<Project> populateProjectFromProjectHome(List projectHomeList) {
List<Project> returnPrjList = new ArrayList<Project>();
Set<Long> projectIds = new HashSet<Long>();
Iterator itr = projectHomeList.iterator();
while (itr.hasNext()) {
ProjectHome prjHome = (ProjectHome) itr.next();
if (returnPrjList.size()!= 0 && projectIds.contains(new Long(prjHome.getProjectId()))){
Iterator itrList=returnPrjList.iterator();
while(itrList.hasNext()){
Project prj=(Project) itrList.next();
if(prj.getProjectId()==prjHome.getProjectId()){
ProjectInputSource prjInpSrc = populateProjectInputSourceForProject(prjHome);
Set<ProjectInputSource> prjInpSource=prj.getProjectInputSources();
Iterator itr2=prjInpSource.iterator();
while(itr2.hasNext()){
ProjectInputSource pis=(ProjectInputSource)itr2.next();
if(pis.getInputSource().getIpSourceId()!= prjInpSrc.getInputSource().getIpSourceId()){
prj.getProjectInputSources().add(prjInpSrc);
}
}
Outcome outcome = populateOutcomeForProject(prjHome);
Set<Outcome> outComeSet=prj.getOutcomes();
Iterator itr3=outComeSet.iterator();
while(itr3.hasNext()){
Outcome outComeObj=(Outcome)itr3.next();
if(outComeObj.getId()!= outcome.getId()){
prj.getOutcomes().add(outcome);
}
}
}
}
}else {
Project project = new Project();
ProjectInputSource prjInpSrc = populateProjectInputSourceForProject(prjHome);
Outcome outcome = populateOutcomeForProject(prjHome);
project.setName(prjHome.getProjectName());
project.setProjectId(prjHome.getProjectId());
project.setPrjDesc(prjHome.getPrjDesc());
project.getProjectInputSources().add(prjInpSrc);
project.getOutcomes().add(outcome);
projectIds.add(new Long(prjHome.getProjectId()));
returnPrjList.add(project);
}
}
return returnPrjList;
}
And i am also sending the complete Stack Trace.
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
at java.util.HashMap$KeyIterator.next(HashMap.java:823)
at com.mhhe.authoring.ejb.project.ProjectMaintenanceImpl.populateProjectFromProjectHome(ProjectMaintenanceImpl.java:522)
at com.mhhe.authoring.ejb.project.ProjectMaintenanceImpl.setAttributesForProjectHome(ProjectMaintenanceImpl.java:2118)
at com.mhhe.authoring.ejb.project.ProjectMaintenanceImpl.getProjectsForDiscipline(ProjectMaintenanceImpl.java:220)
at com.mhhe.authoring.ejb.project.ProjectMaintenanceBean.getProjectsForDiscipline(ProjectMaintenanceBean.java:669)
at com.mhhe.authoring.ejb.project.ProjectMaintenanceBean_edy1ik_EOImpl.getProjectsForDiscipline(ProjectMaintenanceBean_edy1ik_EOImpl.java:842)
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:585)
at org.springframework.remoting.rmi.RmiClientInterceptorUtils.doInvoke(RmiClientInterceptorUtils.java:98)
at org.springframework.ejb.access.SimpleRemoteSlsbInvokerInterceptor.doInvoke(SimpleRemoteSlsbInvokerInterceptor.java:75)
at org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor.invoke(AbstractRemoteSlsbInvokerInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
at $Proxy33.getProjectsForDiscipline(Unknown Source)
at com.mhhe.content.authoring.presentation.web.action.project.ProjectMaintenanceHomeAction.getProjectForFourPage(ProjectMaintenanceHomeAction.java:332)
at com.mhhe.content.authoring.presentation.web.action.project.ProjectMaintenanceHomeAction.executeMe(ProjectMaintenanceHomeAction.java:174)
at com.mhhe.content.authoring.presentation.web.action.ContentBaseAction.execute(ContentBaseAction.java:52)
at com.mhhe.common.presentation.web.action.AbstractBaseAction.execute(AbstractBaseAction.java:79)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Plz hel me sort out this issue.
Thanks in advance

