Bug 118073 - QuickFix is broken
Summary: QuickFix is broken
Status: RESOLVED FIXED
Alias: None
Product: AJDT
Classification: Tools
Component: UI (show other bugs)
Version: 1.2.0   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 1.2.1   Edit
Assignee: Matt Chapman CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-25 10:54 EST by Sian January CLA
Modified: 2005-11-28 12:28 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sian January CLA 2005-11-25 10:54:11 EST
If you run manual test QFIX_4 a NoClassDefFoundError occurs when you press Ctrl+1 or click on the quick fix icon.  This is serious because it also happens in QFIX_6 (a .java file in the Java editor). I haven't been able to get a proper stack trace but the three below may help:

java.lang.NoClassDefFoundError: org.eclipse.ajdt.internal.ui.editor.quickfix.CorrectionMessages
at java.lang.Class.initialize(Class.java:318)
at org.eclipse.ajdt.internal.ui.editor.quickfix.AspectsProcessor.convertToAJProjectProposal(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.AJQuickFixProcessor.process(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.AJQuickFixProcessor.getCorrections(Unknown Source)
at org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.collectCorrections(Unknown Source)
at org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.processAnnotations(Unknown Source)
at org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.computeCompletionProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run(Unknown Source)
at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(Unknown Source)
at org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionAssistant.showPossibleCompletions(Unknown Source)
at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(Unknown Source)
at org.eclipse.jdt.internal.ui.javaeditor.JavaSelectAnnotationRulerAction.run(Unknown Source)
at org.eclipse.ui.texteditor.AbstractRulerActionDelegate.run(Unknown Source)
at org.eclipse.ui.internal.PluginAction.runWithEvent(Unknown Source)
at org.eclipse.ui.internal.PluginAction.run(Unknown Source)
at org.eclipse.ui.texteditor.AbstractTextEditor$11.triggerAction(Unknown Source)
at org.eclipse.ui.texteditor.AbstractTextEditor$11.mouseUp(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.ui.internal.Workbench.runEventLoop(Unknown Source)
at org.eclipse.ui.internal.Workbench.runUI(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.IDEApplication.run(Unknown Source)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:704)
at org.eclipse.core.launcher.Main.main(Main.java:688)



java.lang.NullPointerException
at org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsSubProcessor.getTypeProposals(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.QuickFixProcessor.process(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.QuickFixProcessor.getCorrections(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.JavaCorrectionProcessor.collectCorrections(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.JavaCorrectionProcessor.processAnnotations(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.JavaCorrectionProcessor.computeCompletionProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run(Unknown Source)
at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(Unknown Source)
at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.quickfix.JavaCorrectionAssistant.showPossibleCompletions(Unknown Source)
at org.eclipse.ajdt.internal.ui.editor.AspectJEditor$AJTextOperationTarget.doOperation(Unknown Source)
at org.eclipse.ui.texteditor.TextOperationAction$1.run(Unknown Source)
at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
at org.eclipse.ui.texteditor.TextOperationAction.run(Unknown Source)
at org.eclipse.jface.action.Action.runWithEvent(Unknown Source)
at org.eclipse.ui.commands.ActionHandler.execute(Unknown Source)
at org.eclipse.ui.internal.commands.Command.execute(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.WorkbenchKeyboard.filterKeySequenceBindings(Unknown Source)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(Unknown Source)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.filterEvent(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.Control.sendKeyEvent(Unknown Source)
at org.eclipse.swt.widgets.Control.sendKeyEvent(Unknown Source)
at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Unknown Source)
at org.eclipse.swt.widgets.Control.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.createAndRunWorkbench(Unknown Source)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
at org.eclipse.ui.internal.ide.IDEApplication.run(Unknown Source)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:704)
at org.eclipse.core.launcher.Main.main(Main.java:688)





org.eclipse.ajdt.internal.ui.editor.quickfix.JavaCorrectionProcessor.collectCorrections(JavaCorrectionProcessor.java:257)
Comment 1 Matt Chapman CLA 2005-11-28 06:50:28 EST
The NPE from UnresolvedElementsSubProcessor is a duplicate of bug 76146, and is present in 1.2.0. There is not much we can do about this, as it is happening down in JDT. I've just put in a change to avoid reporting the error on the status line - the NPE is still written to the log.

I performed the manual tests up to and including QFIX_6 and they all passed for me. Could you try them again and see if you get the NoClassDefFoundError again? Or are additional steps required to reproduce that? We should only be able to get into convertToAJProjectProposal if the project is not an AspectJ project, or it is closed, or if project.hasNature throws an exception.
Comment 2 Sian January CLA 2005-11-28 07:31:51 EST
I think this is a RAD problem.  I double checked and I do still see the problem there, but not in Eclipse.
Comment 3 Matt Chapman CLA 2005-11-28 12:28:00 EST
The NoClassDefFoundError/ExceptionInInitializer problem is now fixed for 1.2.1. It's not a problem on 1.3.0. The properties files was being missed from the build process. As noted above, the NPE is covered by another bug.