Community
Participate
Working Groups
Build Identifier: Server.clearModuleCache() set modules to null, a NPE could occur during Server.getModules() call in a multi-thread condition. Should put them in a synchronized block. Stacktrace: [17-Oct-2011 13:54:57.843 EDT] 00000001 bpmHist E [com.ibm.wbit.ui.GeneralUITracing$6:logging(GeneralUITracing.java:270)] FROM_ECLIPSE_ERROR_LOG Problems occurred when invoking code from plug-in: "org.eclipse.ui.navigator". NullPointerException(null) Details... java.lang.NullPointerException at org.eclipse.wst.server.core.internal.Server.getModules(Server.java:2438) at org.eclipse.wst.server.ui.internal.cnf.ServerContentProvider.hasChildren(ServerContentProvider.java:96) at org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.hasChildren(SafeDelegateTreeContentProvider.java:110) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.callNormalHasChildren(NavigatorContentServiceContentProvider.java:428) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.access$4(NavigatorContentServiceContentProvider.java:423) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider$3.run(NavigatorContentServiceContentProvider.java:393) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.hasChildren(NavigatorContentServiceContentProvider.java:379) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.hasChildren(NavigatorContentServiceContentProvider.java:420) at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2082) at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:588) at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2112) at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2794) at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:852) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1832) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1799) at org.eclipse.ui.navigator.CommonViewer.internalRefresh(CommonViewer.java:561) at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1514) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1422) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1383) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1512) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:548) at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:350) at org.eclipse.wst.server.ui.internal.cnf.ServersView2$4.run(ServersView2.java:160) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660) at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.runEventLoop(EventLoopProgressMonitor.java:123) at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.isCanceled(EventLoopProgressMonitor.java:97) at org.eclipse.core.internal.jobs.ThreadJob.isCanceled(ThreadJob.java:146) at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:235) at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:199) at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:92) at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:286) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:117) at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1914) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1970) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118) at com.ibm.wbit.ui.bpmrepository.operations.MaintainDefaultLibraryDependencies.changeDefaultLibraryDependencies(MaintainDefaultLibraryDependencies.java:215) at com.ibm.wbit.ui.bpmrepository.operations.MaintainDefaultLibraryDependencies.addDefaultLibraryDependencies(MaintainDefaultLibraryDependencies.java:138) at com.ibm.wbit.ui.bpmrepository.actions.InternalBringIntoWIDAction.run(InternalBringIntoWIDAction.java:373) at com.ibm.wbit.ui.bpmrepository.utils.ProcessCenterProjectUtils.bringInWLEProjectSnapshot(ProcessCenterProjectUtils.java:190) at com.ibm.wbit.ui.bpmrepository.utils.ProcessCenterProjectUtils.bringIn(ProcessCenterProjectUtils.java:163) at com.ibm.wbit.ui.bpmrepository.utils.ProcessCenterProjectUtils.bringIn(ProcessCenterProjectUtils.java:144) at com.ibm.wbit.ui.bpmrepository.utils.ProcessCenterProjectUtils.bringIn(ProcessCenterProjectUtils.java:139) at com.ibm.wbit.ui.bpmrepository.utils.ProcessCenterProjectUtils.bringIn(ProcessCenterProjectUtils.java:129) at com.ibm.wbit.ui.bpmrepository.utils.EmbeddedPCConsoleAPIs.bringInWID(EmbeddedPCConsoleAPIs.java:276) at com.ibm.wbit.ui.bpmrepository.utils.EmbeddedPCConsoleAPIs.bringInWID(EmbeddedPCConsoleAPIs.java:84) at com.ibm.wbit.ui.internal.processcenterview.ProcessCenterJavaScriptHandler$2.function(ProcessCenterJavaScriptHandler.java:53) at org.eclipse.swt.browser.WebSite.Invoke(WebSite.java:749) at org.eclipse.swt.browser.WebSite$7.method6(WebSite.java:129) at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:119) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384) Reproducible: Sometimes Steps to Reproduce: Programmatically execute the following steps: 1. Import project A and publish it to a running Server (Auto publish is turned off, and non-loose config is selected); 2. Delete project A from workspace, (it will be removed from the Server too); 3. Import project A' (project A with modifications) and add it to the Server;
Created attachment 208094 [details] A patch to fix this rating issue.
In org.eclipse.wst.server.core.internal.ServerWorkingCopy.modifyModules(IModule[], IModule[], IProgressMonitor), you switched from getModules() call to what seems to be a copy of the code within that method. Is there any reason why you need to clone the code instead of calling getModules() as before?
Created attachment 210079 [details] v1.0 Update the patch based on the original that address the duplicate code problem on my previous comment.
Code released to 33M and HEAD
Test impact: Have tested the following scenarios: 1. Publish and unpublish an ear file on an adopter server; 2. Remove and add a J2EE module on a published application on an adopter server; 3. Publish and unpublish web projects on TomCat 7.0 server;
Committed to R3_2_5_patches
New Gerrit change created: https://git.eclipse.org/r/109092