[ 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.