[
https://issues.apache.org/jira/browse/IVYDE-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nicolas Lalevée resolved IVYDE-75.
----------------------------------
Resolution: Cannot Reproduce
Not sure it has been fix even if it was really a bug, but I wasn't able to
reproduce it with the trunk version.
> Possible endless loop while computing the classpath entries
> -----------------------------------------------------------
>
> Key: IVYDE-75
> URL: https://issues.apache.org/jira/browse/IVYDE-75
> Project: IvyDE
> Issue Type: Bug
> Affects Versions: 1.3.0
> Environment: Eclipse 3.2
> Reporter: Nicolas Lalevée
> Priority: Minor
>
> While trying to debug IVYDE-70, having a break point make the resolving
> process loop indefinitely. I cannot say if there is really a bug or not,
> because running while having break points is not the standard way the thread
> runs. But it shows there is a possibility that the resolve process may run
> sevral times, which should not happend.
> And after I remove the breakpoint, there is no StackOverflowError, so I
> assume this bug might not appear in normal cases.
> Here is the stack trace copied from Eclipse :
> {noformat}
> IvyClasspathContainer.computeClasspathEntries(boolean, boolean, boolean)
> line: 617
> IvyClasspathContainer.refresh(boolean) line: 644
> IvyClasspathInitializer.initialize(IPath, IJavaProject) line: 61
> JavaModelManager.initializeContainer(IJavaProject, IPath) line: 1924
> JavaModelManager.getClasspathContainer(IPath, IJavaProject) line: 1267
> JavaCore.getClasspathContainer(IPath, IJavaProject) line: 1470
> JavaProject.getResolvedClasspath(IClasspathEntry[], IPath, boolean, boolean,
> Map) line: 2169
> JavaProject.getResolvedClasspath(boolean, boolean, boolean) line: 2073
> JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[],
> IProgressMonitor) line: 4189
> IvyClasspathContainer.notifyUpdateClasspathEntries() line: 682
> IvyClasspathContainer.access$7(IvyClasspathContainer) line: 678
> IvyClasspathContainer$4.run() line: 672
> RunnableLock.run() line: 35
> UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123
> Display.runAsyncMessages(boolean) line: 3157
> Display.readAndDispatch() line: 2859
> EventLoopProgressMonitor.runEventLoop() line: 123
> EventLoopProgressMonitor.isCanceled() line: 97
> ThreadJob.isCanceled(IProgressMonitor) line: 126
> ThreadJob.joinRun(IProgressMonitor) line: 161
> ImplicitJobs.begin(ISchedulingRule, IProgressMonitor, boolean) line: 87
> JobManager.beginRule(ISchedulingRule, IProgressMonitor) line: 219
> WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 96
> Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 1684
> Project.touch(IProgressMonitor) line: 1035
> SetClasspathOperation.executeOperation() line: 288
> SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> SetClasspathOperation(JavaModelOperation).runOperation(IProgressMonitor)
> line: 784
> JavaProject.setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor,
> boolean, IClasspathEntry[], boolean, boolean) line: 3016
> JavaCore$5.run(IProgressMonitor) line: 4215
> BatchOperation.executeOperation() line: 39
> BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> JavaCore.run(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line:
> 4024
> JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[],
> IProgressMonitor) line: 4198
> IvyClasspathContainer.notifyUpdateClasspathEntries() line: 682
> IvyClasspathContainer.access$7(IvyClasspathContainer) line: 678
> IvyClasspathContainer$4.run() line: 672
> RunnableLock.run() line: 35
> UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123
> Display.runAsyncMessages(boolean) line: 3157
> Display.readAndDispatch() line: 2859
> EventLoopProgressMonitor.runEventLoop() line: 123
> EventLoopProgressMonitor.isCanceled() line: 97
> ThreadJob.isCanceled(IProgressMonitor) line: 126
> ThreadJob.joinRun(IProgressMonitor) line: 161
> ImplicitJobs.begin(ISchedulingRule, IProgressMonitor, boolean) line: 87
> JobManager.beginRule(ISchedulingRule, IProgressMonitor) line: 219
> WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 96
> Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 1684
> Project.touch(IProgressMonitor) line: 1035
> SetClasspathOperation.executeOperation() line: 288
> SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> SetClasspathOperation(JavaModelOperation).runOperation(IProgressMonitor)
> line: 784
> JavaProject.setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor,
> boolean, IClasspathEntry[], boolean, boolean) line: 3016
> JavaCore$5.run(IProgressMonitor) line: 4215
> BatchOperation.executeOperation() line: 39
> BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> JavaCore.run(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line:
> 4024
> JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[],
> IProgressMonitor) line: 4198
> IvyClasspathContainer.notifyUpdateClasspathEntries() line: 682
> IvyClasspathContainer.access$7(IvyClasspathContainer) line: 678
> IvyClasspathContainer$4.run() line: 672
> RunnableLock.run() line: 35
> UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123
> Display.runAsyncMessages(boolean) line: 3157
> Display.readAndDispatch() line: 2859
> EventLoopProgressMonitor.runEventLoop() line: 123
> EventLoopProgressMonitor.isCanceled() line: 97
> ThreadJob.isCanceled(IProgressMonitor) line: 126
> ThreadJob.joinRun(IProgressMonitor) line: 161
> ImplicitJobs.begin(ISchedulingRule, IProgressMonitor, boolean) line: 87
> JobManager.beginRule(ISchedulingRule, IProgressMonitor) line: 219
> WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 96
> Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 1684
> Project.touch(IProgressMonitor) line: 1035
> SetClasspathOperation.executeOperation() line: 288
> SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> SetClasspathOperation(JavaModelOperation).runOperation(IProgressMonitor)
> line: 784
> JavaProject.setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor,
> boolean, IClasspathEntry[], boolean, boolean) line: 3016
> JavaCore$5.run(IProgressMonitor) line: 4215
> BatchOperation.executeOperation() line: 39
> BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> JavaCore.run(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line:
> 4024
> JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[],
> IProgressMonitor) line: 4198
> IvyClasspathContainer.notifyUpdateClasspathEntries() line: 682
> IvyClasspathContainer.access$7(IvyClasspathContainer) line: 678
> IvyClasspathContainer$4.run() line: 672
> RunnableLock.run() line: 35
> UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123
> Display.runAsyncMessages(boolean) line: 3157
> Display.readAndDispatch() line: 2859
> EventLoopProgressMonitor.runEventLoop() line: 123
> EventLoopProgressMonitor.isCanceled() line: 97
> ThreadJob.isCanceled(IProgressMonitor) line: 126
> ThreadJob.joinRun(IProgressMonitor) line: 161
> ImplicitJobs.begin(ISchedulingRule, IProgressMonitor, boolean) line: 87
> JobManager.beginRule(ISchedulingRule, IProgressMonitor) line: 219
> WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 96
> Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 1684
> Project.touch(IProgressMonitor) line: 1035
> SetClasspathOperation.executeOperation() line: 288
> SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> SetClasspathOperation(JavaModelOperation).runOperation(IProgressMonitor)
> line: 784
> JavaProject.setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor,
> boolean, IClasspathEntry[], boolean, boolean) line: 3016
> JavaCore$5.run(IProgressMonitor) line: 4215
> BatchOperation.executeOperation() line: 39
> BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> JavaCore.run(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line:
> 4024
> JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[],
> IProgressMonitor) line: 4198
> IvyClasspathContainer.notifyUpdateClasspathEntries() line: 682
> IvyClasspathContainer.access$7(IvyClasspathContainer) line: 678
> IvyClasspathContainer$4.run() line: 672
> RunnableLock.run() line: 35
> UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123
> Display.runAsyncMessages(boolean) line: 3157
> Display.readAndDispatch() line: 2859
> EventLoopProgressMonitor.runEventLoop() line: 123
> EventLoopProgressMonitor.isCanceled() line: 97
> ThreadJob.isCanceled(IProgressMonitor) line: 126
> ThreadJob.joinRun(IProgressMonitor) line: 161
> ImplicitJobs.begin(ISchedulingRule, IProgressMonitor, boolean) line: 87
> JobManager.beginRule(ISchedulingRule, IProgressMonitor) line: 219
> WorkManager.checkIn(ISchedulingRule, IProgressMonitor) line: 96
> Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 1684
> Project.touch(IProgressMonitor) line: 1035
> SetClasspathOperation.executeOperation() line: 288
> SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> SetClasspathOperation(JavaModelOperation).runOperation(IProgressMonitor)
> line: 784
> JavaProject.setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor,
> boolean, IClasspathEntry[], boolean, boolean) line: 3016
> JavaCore$5.run(IProgressMonitor) line: 4215
> BatchOperation.executeOperation() line: 39
> BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 720
> Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
> line: 1737
> JavaCore.run(IWorkspaceRunnable, ISchedulingRule, IProgressMonitor) line:
> 4024
> JavaCore.setClasspathContainer(IPath, IJavaProject[], IClasspathContainer[],
> IProgressMonitor) line: 4198
> IvyClasspathContainer.notifyUpdateClasspathEntries() line: 682
> IvyClasspathContainer.access$7(IvyClasspathContainer) line: 678
> IvyClasspathContainer$4.run() line: 672
> RunnableLock.run() line: 35
> UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 123
> Display.runAsyncMessages(boolean) line: 3157
> Display.readAndDispatch() line: 2859
> Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 1930
> Workbench.runUI() line: 1894
> Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 422
> PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149
> IDEApplication.run(Object) line: 95
> PlatformActivator$1.run(Object) line: 78
> EclipseAppLauncher.runApplication(Object) line: 92
> EclipseAppLauncher.start(Object) line: 68
> EclipseStarter.run(Object) line: 400
> EclipseStarter.run(String[], Runnable) line: 177
> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
> available [native method]
> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
> Method.invoke(Object, Object...) line: 597
> Main.invokeFramework(String[], URL[]) line: 336
> Main.basicRun(String[]) line: 280
> Main.run(String[]) line: 977
> Main.main(String[]) line: 952
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.