Skip to content

Commit 1e3b26a

Browse files
committed
Catch IllegalArgumentException when resolving target platform
When the target editor is opened, PDE tries to delete the old target handle as part of "Bug 545681 - UI Freeze of >800s in TargetEditor when opening editor". If the profile is not locked (due to whatever reasons), an IllegalArgumentException is thrown, blocking the resolution of this file.
1 parent 86c6465 commit 1e3b26a

File tree

1 file changed

+9
-6
lines changed
  • ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition

1 file changed

+9
-6
lines changed

ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/TargetEditor.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@
3939
import org.eclipse.core.runtime.CoreException;
4040
import org.eclipse.core.runtime.IPath;
4141
import org.eclipse.core.runtime.IProgressMonitor;
42+
import org.eclipse.core.runtime.ISafeRunnable;
4243
import org.eclipse.core.runtime.IStatus;
44+
import org.eclipse.core.runtime.SafeRunner;
4345
import org.eclipse.core.runtime.Status;
4446
import org.eclipse.core.runtime.jobs.Job;
4547
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
@@ -683,12 +685,13 @@ public void contentsChanged(ITargetDefinition definition, Object source, boolean
683685
@Override
684686
protected IStatus run(IProgressMonitor monitor) {
685687
// delete profile
686-
try {
687-
P2TargetUtils.forceCheckTarget(getTarget());
688-
P2TargetUtils.deleteProfile(getTarget().getHandle());
689-
} catch (CoreException e) {
690-
PDEPlugin.log(e);
691-
}
688+
SafeRunner.run(new ISafeRunnable() {
689+
@Override
690+
public void run() throws Exception {
691+
P2TargetUtils.forceCheckTarget(getTarget());
692+
P2TargetUtils.deleteProfile(getTarget().getHandle());
693+
}
694+
});
692695
getTarget().resolve(monitor);
693696
if (monitor.isCanceled()) {
694697
return Status.CANCEL_STATUS;

0 commit comments

Comments
 (0)