eclipse-jdt / eclipse-jdt/eclipse.jdt.ui
AssertionFailedException during refactoring operation "Extract interface"
- Dominant language
- Java
- Stars
- 59
- Forks
- 127
- Avg merge
- 22h 47m
- Merged PRs (30d)
- 28
Description
- I have a class FooImpl with several methods and I choose "Extract interface".
- Choose "Select all" to extract all methods
- Click on "Preview" or "OK"
=> "An unexpected exception occurred while creating a change object. See error log for details."
Sadly I was not yet able to create a reproducible case. But maybe the stack trace below is already useful?
**Session Data**
```
eclipse.buildId=4.24.0.I20220607-0700
java.version=17.0.3
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_DE
Framework arguments: -product org.eclipse.epp.package.jee.product -product org.eclipse.epp.package.jee.product -product org.eclipse.epp.package.jee.product -keyring /Users//.eclipse_keyring
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -product org.eclipse.epp.package.jee.product -data /Users// -product org.eclipse.epp.package.jee.product -keyring /Users//.eclipse_keyring
```
**Stack trace**
```
java.lang.reflect.InvocationTargetException
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:395)
at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:324)
at org.eclipse.ltk.ui.refactoring.RefactoringWizard.createChange(RefactoringWizard.java:662)
at org.eclipse.ltk.ui.refactoring.RefactoringWizard.computeUserInputSuccessorPage(RefactoringWizard.java:504)
at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.computeSuccessorPage(UserInputWizardPage.java:77)
at org.eclipse.ltk.ui.refactoring.UserInputWizardPage.getNextPage(UserInputWizardPage.java:113)
at org.eclipse.jdt.internal.ui.refactoring.ExtractInterfaceWizard$ExtractInterfaceInputPage.getNextPage(ExtractInterfaceWizard.java:343)
at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.nextOrPreviewPressed(RefactoringWizardDialog2.java:493)
at org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2$1.widgetSelected(RefactoringWizardDialog2.java:693)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4604)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1325)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4390)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3966)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.lambda$0(RefactoringWizardOpenOperation.java:190)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:209)
at org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:126)
at org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:41)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringExecutionStarter.startExtractInterfaceRefactoring(RefactoringExecutionStarter.java:296)
at org.eclipse.jdt.ui.actions.ExtractInterfaceAction.run(ExtractInterfaceAction.java:150)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:278)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:252)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4604)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1325)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4390)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3966)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
Caused by: org.eclipse.core.runtime.AssertionFailedException: null argument:
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:88)
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:76)
at org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.initialize(HierarchyType.java:35)
at org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.createStandardType(TypeEnvironment.java:377)
at org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.create(TypeEnvironment.java:219)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeConstraintsModel.createTType(SuperTypeConstraintsModel.java:472)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeConstraintsModel.createIndependentTypeVariable(SuperTypeConstraintsModel.java:392)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeConstraintsCreator.endVisit(SuperTypeConstraintsCreator.java:291)
at org.eclipse.jdt.core.dom.ConditionalExpression.accept0(ConditionalExpression.java:185)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:228)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:228)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3228)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:136)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.Block.accept0(Block.java:128)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3228)
at org.eclipse.jdt.core.dom.TryStatement.accept0(TryStatement.java:274)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.Block.accept0(Block.java:128)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3228)
at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:677)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:499)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:258)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeRefactoringProcessor.performFirstPass(SuperTypeRefactoringProcessor.java:720)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeRefactoringProcessor$3.acceptAST(SuperTypeRefactoringProcessor.java:1197)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1008)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:692)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:954)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeRefactoringProcessor.solveSuperTypeConstraints(SuperTypeRefactoringProcessor.java:1192)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.access$0(ExtractInterfaceProcessor.java:1)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor$1.acceptAST(ExtractInterfaceProcessor.java:1076)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1008)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:692)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:954)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.rewriteTypeOccurrences(ExtractInterfaceProcessor.java:1057)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.createChangeManager(ExtractInterfaceProcessor.java:423)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.checkFinalConditions(ExtractInterfaceProcessor.java:247)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:226)
at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:86)
at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:122)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405)
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:89)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
Root exception:
org.eclipse.core.runtime.AssertionFailedException: null argument:
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:88)
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:76)
at org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.initialize(HierarchyType.java:35)
at org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.createStandardType(TypeEnvironment.java:377)
at org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.create(TypeEnvironment.java:219)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeConstraintsModel.createTType(SuperTypeConstraintsModel.java:472)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeConstraintsModel.createIndependentTypeVariable(SuperTypeConstraintsModel.java:392)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeConstraintsCreator.endVisit(SuperTypeConstraintsCreator.java:291)
at org.eclipse.jdt.core.dom.ConditionalExpression.accept0(ConditionalExpression.java:185)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:228)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:228)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3228)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:136)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.Block.accept0(Block.java:128)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3228)
at org.eclipse.jdt.core.dom.TryStatement.accept0(TryStatement.java:274)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.Block.accept0(Block.java:128)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3228)
at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:677)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:499)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3251)
at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:258)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3180)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeRefactoringProcessor.performFirstPass(SuperTypeRefactoringProcessor.java:720)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeRefactoringProcessor$3.acceptAST(SuperTypeRefactoringProcessor.java:1197)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1008)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:692)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:954)
at org.eclipse.jdt.internal.corext.refactoring.structure.constraints.SuperTypeRefactoringProcessor.solveSuperTypeConstraints(SuperTypeRefactoringProcessor.java:1192)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.access$0(ExtractInterfaceProcessor.java:1)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor$1.acceptAST(ExtractInterfaceProcessor.java:1076)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1008)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:692)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:954)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.rewriteTypeOccurrences(ExtractInterfaceProcessor.java:1057)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.createChangeManager(ExtractInterfaceProcessor.java:423)
at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractInterfaceProcessor.checkFinalConditions(ExtractInterfaceProcessor.java:247)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:226)
at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:86)
at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:122)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405)
at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:89)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
```
Contributor guide
Assessment
This issue has not been assessed yet.