IvyDE
  1. IvyDE
  2. IVYDE-229

IvyDE fail on project close to trigger resolve on dependent project

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0.final
    • Fix Version/s: 2.1.0
    • Component/s: classpath container
    • Labels:
      None
    • Environment:

      we use Windows XP sp2 as operating system with RAD 7.5.4 as software development tool

      Description

      Hi,

      we are using RAD 7.5.4 as our development tool and work with the IVY plugin. Now we encounter some problems.
      A ticket to IBM was already been opened but after some investigating of them they think the issue is related to the IVY plugin.
      they found some related problems already here :
      https://issues.apache.org/jira/browse/IVYDE-195
      http://issues.apache.org/jira/browse/IVYDE-221

      problems is as followed :

      • Compile errors sometimes occur out of the blue, all of a sudden libraries on the build path are no longer found
      • In some cases, multiple cleans of the project(s) are necessary to fix the error, sometimes RAD has to be restarted
      • In the worst cases the machine had to be rebooted to fix the error
        !ENTRY org.eclipse.core.resources 4 380 2009-11-24 08:38:57.184         
        !MESSAGE The resource tree is locked for modifications.                 
                                                                                
        !ENTRY org.eclipse.core.resources 4 368 2009-11-24 08:38:57.200         
        !MESSAGE Resource '/ICFWeb/src/web/wsdl/2009/09/23/ValueLists.xsd' does 
        not exist.                                                              
                                                                                
        !ENTRY org.apache.ivyde.eclipse 4 0 2009-11-24 08:42:44.855             
        !MESSAGE IvyDE internal error                                           
        !STACK 1                                                                
        Java Model Exception: Java Model Status [ICFCommon does not exist]      
         at org.eclipse.core.runtime.CoreException.<init>(Unknown Source)
         at org.eclipse.jdt.core.JavaModelException.<init>(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaModelManager.getPerProjectInfoCheckExistence(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaProject.getPerProjectInfo(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaProject.getRawClasspath(Unknown Source)
         at org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil.getIvyClasspathContainers(Unknown Source)
         at org.apache.ivyde.eclipse.workspaceresolver.WorkspaceResourceChangeListener.projectClosed(Unknown Source)
         at org.apache.ivyde.eclipse.workspaceresolver.WorkspaceResourceChangeListener.resourceChanged(Unknown Source)
         at org.eclipse.core.internal.events.NotificationManager$2.run(Unknown Source)
         at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
         at org.eclipse.core.internal.events.NotificationManager.notify(Unknown Source)
         at org.eclipse.core.internal.events.NotificationManager.handleEvent(Unknown Source)
         at org.eclipse.core.internal.resources.Workspace.broadcastEvent(Unknown Source)
         at org.eclipse.core.internal.resources.Resource.broadcastPreDeleteEvent(Unknown Source)
         at org.eclipse.core.internal.resources.Resource.delete(Unknown Source)
         at org.eclipse.core.internal.resources.Project.delete(Unknown Source)
         at org.eclipse.ltk.core.refactoring.resource.DeleteResourceChange.perform(Unknown Source)
         at org.eclipse.ltk.core.refactoring.CompositeChange.perform(Unknown Source)
         at org.eclipse.ltk.core.refactoring.CompositeChange.perform(Unknown Source)
         at org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(Unknown Source)
         at org.eclipse.core.internal.resources.Workspace.run(Unknown Source)
         at org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.access$1(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$1.run(Unknown Source)
         at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$2.run(Unknown Source)
         at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
         at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
         at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
         at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(Unknown Source)
         at org.eclipse.jface.operation.ModalContext.run(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.performFinish(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.resource.DeleteResourcesWizard$DeleteResourcesRefactoringConfigurationPage.performFinish(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(Unknown Source)
         at org.eclipse.jface.dialogs.Dialog.buttonPressed(Unknown Source)
         at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Unknown Source)
         at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
         at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
         at org.eclipse.jface.window.Window.runEventLoop(Unknown Source)
         at org.eclipse.jface.window.Window.open(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(Unknown Source)
         at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.actions.DeleteResourcesHandler.execute(Unknown Source)
         at org.eclipse.ui.internal.handlers.HandlerProxy.execute(Unknown Source)
         at org.eclipse.core.commands.Command.executeWithChecks(Unknown Source)
         at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(Unknown Source)
         at org.eclipse.ui.internal.handlers.HandlerService.executeCommandInContext(Unknown Source)
         at org.eclipse.ui.internal.ide.actions.LTKLauncher.runCommand(Unknown Source)
         at org.eclipse.ui.internal.ide.actions.LTKLauncher.openDeleteWizard(Unknown Source)
         at org.eclipse.ui.actions.DeleteResourceAction.run(Unknown Source)     
         at org.eclipse.jdt.internal.ui.refactoring.reorg.DeleteAction.run(Unknown Source)
         at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(Unknown Source)
         at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Unknown Source)
         at org.eclipse.jface.action.Action.runWithEvent(Unknown Source)
         at org.eclipse.jface.commands.ActionHandler.execute(Unknown Source)
         at org.eclipse.core.commands.Command.executeWithChecks(Unknown Source)
         at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(Unknown Source)
         at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(Unknown Source)
         at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(Unknown Source)
         at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(Unknown Source)
         at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(Unknown Source)
         at org.eclipse.ui.internal.keys.OutOfOrderListener.handleEvent(Unknown Source)
         at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendKeyEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendKeyEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.wmKeyDown(Unknown Source)
         at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Unknown Source)
         at org.eclipse.swt.widgets.Tree.WM_KEYDOWN(Unknown Source)
         at org.eclipse.swt.widgets.Control.windowProc(Unknown Source)
         at org.eclipse.swt.widgets.Tree.windowProc(Unknown Source)
         at org.eclipse.swt.widgets.Display.windowProc(Unknown Source)
         at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
         at org.eclipse.swt.internal.win32.OS.DispatchMessage(Unknown Source)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
         at org.eclipse.ui.internal.Workbench.runEventLoop(Unknown Source)
         at org.eclipse.ui.internal.Workbench.runUI(Unknown Source)
         at org.eclipse.ui.internal.Workbench.access$4(Unknown Source)
         at org.eclipse.ui.internal.Workbench$5.run(Unknown Source)
         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)                                                                 
         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
         at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)                                                                 
         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
         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.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
         at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
         at org.eclipse.equinox.launcher.Main.run(Unknown Source)
         at org.eclipse.equinox.launcher.Main.main(Unknown Source)
        !SUBENTRY 1 org.eclipse.jdt.core 4 969 2009-11-24 08:42:44.855          
        !MESSAGE ICFCommon does not exist
        
        !ENTRY org.apache.ivyde.eclipse 4 0 2009-11-24 08:42:45.776
        !MESSAGE IvyDE internal error
        !STACK 1
        Java Model Exception: Java Model Status [ICFEAR does not exist]
         at org.eclipse.core.runtime.CoreException.<init>(Unknown Source)
         at org.eclipse.jdt.core.JavaModelException.<init>(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaModelManager.getPerProjectInfoCheckExistence(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaProject.getPerProjectInfo(Unknown Source)
         at org.eclipse.jdt.internal.core.JavaProject.getRawClasspath(Unknown Source)
         at org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil.getIvyClasspathContainers(Unknown Source)
         at org.apache.ivyde.eclipse.workspaceresolver.WorkspaceResourceChangeListener.projectClosed(Unknown Source)
         at org.apache.ivyde.eclipse.workspaceresolver.WorkspaceResourceChangeListener.resourceChanged(Unknown Source)
         at org.eclipse.core.internal.events.NotificationManager$2.run(Unknown Source)
         at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
         at org.eclipse.core.internal.events.NotificationManager.notify(Unknown Source)
         at org.eclipse.core.internal.events.NotificationManager.handleEvent(Unknown Source)
         at org.eclipse.core.internal.resources.Workspace.broadcastEvent(Unknown Source)
         at org.eclipse.core.internal.resources.Resource.broadcastPreDeleteEvent(Unknown Source)
         at org.eclipse.core.internal.resources.Resource.delete(Unknown Source)
         at org.eclipse.core.internal.resources.Project.delete(Unknown Source)
         at org.eclipse.ltk.core.refactoring.resource.DeleteResourceChange.perform(Unknown Source)
         at org.eclipse.ltk.core.refactoring.CompositeChange.perform(Unknown Source)
         at org.eclipse.ltk.core.refactoring.CompositeChange.perform(Unknown Source)
         at org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(Unknown Source)
         at org.eclipse.core.internal.resources.Workspace.run(Unknown Source)
         at org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.access$1(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$1.run(Unknown Source)
         at org.eclipse.core.runtime.SafeRunner.run(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation$2.run(Unknown Source)
         at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
         at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
         at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
         at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(Unknown Source)
         at org.eclipse.jface.operation.ModalContext.run(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.performFinish(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.resource.DeleteResourcesWizard$DeleteResourcesRefactoringConfigurationPage.performFinish(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(Unknown Source)
         at org.eclipse.jface.dialogs.Dialog.buttonPressed(Unknown Source)
         at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Unknown Source)
         at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
         at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
         at org.eclipse.jface.window.Window.runEventLoop(Unknown Source)
         at org.eclipse.jface.window.Window.open(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(Unknown Source)
         at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
         at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(Unknown Source)
         at org.eclipse.ltk.internal.ui.refactoring.actions.DeleteResourcesHandler.execute(Unknown Source)
         at org.eclipse.ui.internal.handlers.HandlerProxy.execute(Unknown Source)
         at org.eclipse.core.commands.Command.executeWithChecks(Unknown Source)
         at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(Unknown Source)
         at org.eclipse.ui.internal.handlers.HandlerService.executeCommandInContext(Unknown Source)
         at org.eclipse.ui.internal.ide.actions.LTKLauncher.runCommand(Unknown Source)
         at org.eclipse.ui.internal.ide.actions.LTKLauncher.openDeleteWizard(Unknown Source)
         at org.eclipse.ui.actions.DeleteResourceAction.run(Unknown Source)
         at org.eclipse.jdt.internal.ui.refactoring.reorg.DeleteAction.run(Unknown Source)
         at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(Unknown Source)
         at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Unknown Source)
         at org.eclipse.jface.action.Action.runWithEvent(Unknown Source)
         at org.eclipse.jface.commands.ActionHandler.execute(Unknown Source)
         at org.eclipse.core.commands.Command.executeWithChecks(Unknown Source)
         at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(Unknown Source)
         at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(Unknown Source)
         at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(Unknown Source)
         at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(Unknown Source)
         at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(Unknown Source)
         at org.eclipse.ui.internal.keys.OutOfOrderListener.handleEvent(Unknown Source)
         at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendKeyEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.sendKeyEvent(Unknown Source)
         at org.eclipse.swt.widgets.Widget.wmKeyDown(Unknown Source)
         at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Unknown Source)
         at org.eclipse.swt.widgets.Tree.WM_KEYDOWN(Unknown Source)
         at org.eclipse.swt.widgets.Control.windowProc(Unknown Source)
         at org.eclipse.swt.widgets.Tree.windowProc(Unknown Source)
         at org.eclipse.swt.widgets.Display.windowProc(Unknown Source)
         at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
         at org.eclipse.swt.internal.win32.OS.DispatchMessage(Unknown Source)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
         at org.eclipse.ui.internal.Workbench.runEventLoop(Unknown Source)
         at org.eclipse.ui.internal.Workbench.runUI(Unknown Source)
         at org.eclipse.ui.internal.Workbench.access$4(Unknown Source)
         at org.eclipse.ui.internal.Workbench$5.run(Unknown Source)
         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)
         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
         at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        

      this is what the IBM team answers :
      I am afraid this is pretty standard mistake in all projects that try to
      manipulate with Eclipse resources.

      3rd party plug-in (apache Ivy) listens to workspace changes. When a
      project is closed (or deleted) it tries to process those changes, and
      tries to read projects info, which is impossible because the project is
      closed (or deleted).
      Ivy is responsible for managing classpath. It uses JDT API to set
      libraries and jars etc. If the exception happens, the workbench is left
      in unpredictable state.

      Can somebody help us out with this problem

      thank you

        Activity

        Hide
        Nicolas Lalevée added a comment -

        I have fixed the issue. Now IvyDE will properly resolve the dependent project on a project we just closed.

        Show
        Nicolas Lalevée added a comment - I have fixed the issue. Now IvyDE will properly resolve the dependent project on a project we just closed.
        Hide
        Jonas Brisart added a comment -

        Hi Nicolas,

        Thank you very much for the fast fix. we will try the new version and keep you informed if it is solved for us.

        Show
        Jonas Brisart added a comment - Hi Nicolas, Thank you very much for the fast fix. we will try the new version and keep you informed if it is solved for us.

          People

          • Assignee:
            Nicolas Lalevée
            Reporter:
            Jonas Brisart
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development