blob: f806fe8aad1deef195f16ee241a01e65e6a8324a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0051)https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146 -->
<!-- 1.0@bugzilla.org --><!-- 1.0@bugzilla.org --><HTML><HEAD><TITLE>Bug 76146 - NPE using quickfix in Aspect opened with java editor</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
href="show_bug.cgi?id=36310" rel=Next><LINK href="show_bug.cgi?id=76101"
rel=Last><LINK href="buglist.cgi?regetlastlist=1" rel=Up><LINK
href="buglist.cgi?regetlastlist=1" rel=Contents>
<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000ee bgColor=#ffffff
onload=""><!-- 1.0@bugzilla.org -->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%">
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#006699
border=0><TBODY>
<TR>
<TD width=116 bgColor=#000000><IMG height=50
src="76146_files/EclipseBannerPic.jpg" width=115></TD>
<TD width=637><A href="http://www.eclipse.org/"><IMG height=50
src="76146_files/gradient.jpg" width=282 border=0></A></TD>
<TD width=250><IMG height=48 src="76146_files/eproject-simple.gif"
width=250></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left>
<TABLE cellSpacing=2 cellPadding=0 border=0>
<TBODY>
<TR>
<TD vAlign=top noWrap align=left><FONT size=+1><B>Bugzilla Bug
76146</B></FONT> </TD></TR></TBODY></TABLE></TD>
<TD vAlign=center>&nbsp;</TD>
<TD vAlign=center align=left>NPE using quickfix in Aspect opened with java
editor</TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
not in your list) &nbsp;&nbsp;<A
href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A>
<HR>
<FORM name=changeform action=process_bug.cgi method=post><INPUT type=hidden
value=20041013045125 name=delta_ts> <INPUT type=hidden value=1
name=longdesclength> <INPUT type=hidden value=76146 name=id>
<TABLE cellSpacing=1 cellPadding=1 border=0>
<TBODY>
<TR>
<TD align=right><B>Bug#:</B> </TD>
<TD><A
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146">76146</A> </TD>
<TD>&nbsp;</TD>
<TD align=right><B>Platform:</B> </TD>
<TD><SELECT name=rep_platform> <OPTION value=All>All</OPTION> <OPTION
value=Macintosh>Macintosh</OPTION> <OPTION value=PC selected>PC</OPTION>
<OPTION value="Power PC">Power PC</OPTION> <OPTION
value=Sun>Sun</OPTION> <OPTION value=Other>Other</OPTION></SELECT> </TD>
<TD>&nbsp;</TD>
<TD align=right><B>Reporter:</B> </TD>
<TD>hawkinsh@uk.ibm.com (Helen Hawkins) </TD></TR>
<TR>
<TD align=right><B>Product:</B> </TD>
<TD><SELECT name=product> <OPTION value=AJDT selected>AJDT</OPTION>
<OPTION value=AspectJ>AspectJ</OPTION> <OPTION value=Birt>Birt</OPTION>
<OPTION value=CDT>CDT</OPTION> <OPTION value=CME>CME</OPTION> <OPTION
value=Community>Community</OPTION> <OPTION value=ECESIS>ECESIS</OPTION>
<OPTION value=ECF>ECF</OPTION> <OPTION value=EMF>EMF</OPTION> <OPTION
value=Equinox>Equinox</OPTION> <OPTION value=ERCP>ERCP</OPTION> <OPTION
value=GEF>GEF</OPTION> <OPTION value=GMT>GMT</OPTION> <OPTION
value=Hyades>Hyades</OPTION> <OPTION value=JDT>JDT</OPTION> <OPTION
value=OMELET>OMELET</OPTION> <OPTION value=PDE>PDE</OPTION> <OPTION
value=Platform>Platform</OPTION> <OPTION
value=Pollinate>Pollinate</OPTION> <OPTION
value=Stellation>Stellation</OPTION> <OPTION value=UML2>UML2</OPTION>
<OPTION value=VE>VE</OPTION> <OPTION value="Web Tools">Web
Tools</OPTION> <OPTION value=WSVT>WSVT</OPTION> <OPTION
value=XSD>XSD</OPTION></SELECT> </TD>
<TD>&nbsp;</TD>
<TD align=right><B>OS:</B> </TD>
<TD><SELECT name=op_sys> <OPTION value=All>All</OPTION> <OPTION
value="AIX Motif">AIX Motif</OPTION> <OPTION value="Windows 95">Windows
95</OPTION> <OPTION value="Windows 98">Windows 98</OPTION> <OPTION
value="Windows CE">Windows CE</OPTION> <OPTION
value="Windows ME">Windows ME</OPTION> <OPTION
value="Windows 2000">Windows 2000</OPTION> <OPTION
value="Windows NT">Windows NT</OPTION> <OPTION value="Windows XP"
selected>Windows XP</OPTION> <OPTION value="Windows All">Windows
All</OPTION> <OPTION value="MacOS X">MacOS X</OPTION> <OPTION
value=Linux>Linux</OPTION> <OPTION value=Linux-GTK>Linux-GTK</OPTION>
<OPTION value=Linux-Motif>Linux-Motif</OPTION> <OPTION
value=HP-UX>HP-UX</OPTION> <OPTION value=Neutrino>Neutrino</OPTION>
<OPTION value=QNX-Photon>QNX-Photon</OPTION> <OPTION
value=Solaris>Solaris</OPTION> <OPTION
value=Solaris-GTK>Solaris-GTK</OPTION> <OPTION
value=Solaris-Motif>Solaris-Motif</OPTION> <OPTION value="Unix All">Unix
All</OPTION> <OPTION value=other>other</OPTION></SELECT> </TD>
<TD>&nbsp;</TD>
<TD align=right><B>Add&nbsp;CC:</B> </TD>
<TD><INPUT size=30 name=newcc> </TD></TR>
<TR>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/describecomponents.cgi?product=AJDT">Component</A>:
</B></TD>
<TD><SELECT name=component> <OPTION value=Core>Core</OPTION> <OPTION
value=Doc>Doc</OPTION> <OPTION value=UI selected>UI</OPTION></SELECT> </TD>
<TD>&nbsp;</TD>
<TD align=right><B>Version:</B> </TD>
<TD><SELECT name=version> <OPTION value=1.1.11>1.1.11</OPTION> <OPTION
value=1.1.12 selected>1.1.12</OPTION> <OPTION value=1.1.3>1.1.3</OPTION>
<OPTION value=1.1.4>1.1.4</OPTION> <OPTION value=1.1.7>1.1.7</OPTION>
<OPTION value=1.2.0>1.2.0</OPTION> <OPTION value="1.2.0 M1">1.2.0
M1</OPTION> <OPTION value=unspecified>unspecified</OPTION></SELECT> </TD>
<TD>&nbsp;</TD>
<TD vAlign=top align=right rowSpan=4><B>CC:</B> </TD>
<TD vAlign=top rowSpan=4><INPUT type=hidden name=cc> </TD></TR>
<TR>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/bug_status.html">Status</A>: </B></TD>
<TD>NEW</TD>
<TD>&nbsp;</TD>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/bug_status.html#priority">Priority</A>:</B>
</TD>
<TD><SELECT name=priority> <OPTION value=P1>P1</OPTION> <OPTION
value=P2>P2</OPTION> <OPTION value=P3 selected>P3</OPTION> <OPTION
value=P4>P4</OPTION> <OPTION value=P5>P5</OPTION></SELECT> </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/bug_status.html">Resolution</A>:
</B></TD>
<TD></TD>
<TD>&nbsp;</TD>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/bug_status.html#severity">Severity</A>:</B>
</TD>
<TD><SELECT name=bug_severity> <OPTION value=blocker>blocker</OPTION>
<OPTION value=critical>critical</OPTION> <OPTION
value=major>major</OPTION> <OPTION value=normal selected>normal</OPTION>
<OPTION value=minor>minor</OPTION> <OPTION
value=trivial>trivial</OPTION> <OPTION
value=enhancement>enhancement</OPTION></SELECT> </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Assigned&nbsp;To</A>:
</B></TD>
<TD>mchapman@uk.ibm.com (Matt Chapman)</TD>
<TD>&nbsp;</TD>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/notargetmilestone.html">Target
Milestone</A>: </B></TD>
<TD><SELECT name=target_milestone> <OPTION value=---
selected>---</OPTION> <OPTION value=1.1.12>1.1.12</OPTION> <OPTION
value=1.1.13>1.1.13</OPTION> <OPTION value=1.1.3>1.1.3</OPTION> <OPTION
value=1.1.4>1.1.4</OPTION> <OPTION value=1.2.0>1.2.0</OPTION> <OPTION
value="1.2.0 M1">1.2.0 M1</OPTION> <OPTION value="1.2.0 M2">1.2.0
M2</OPTION></SELECT> </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD align=right><B>URL: </B></TD>
<TD colSpan=7><INPUT size=60 name=bug_file_loc> </TD></TR>
<TR>
<TD align=right><B>Summary:</B> </TD>
<TD colSpan=7><INPUT size=60
value="NPE using quickfix in Aspect opened with java editor"
name=short_desc> </TD></TR>
<TR>
<TD align=right><B><A
href="https://bugs.eclipse.org/bugs/describekeywords.cgi">Keywords</A>:
</B>
<TD colSpan=7><INPUT size=60 name=keywords> </TD></TR></TBODY></TABLE><!-- 1.0@bugzilla.org --><BR>
<TABLE cellSpacing=0 cellPadding=4 border=1>
<TBODY>
<TR>
<TH align=left bgColor=#cccccc>Attachment</TH>
<TH align=left bgColor=#cccccc>Type</TH>
<TH align=left bgColor=#cccccc>Modified</TH>
<TH align=left bgColor=#cccccc>Status</TH>
<TH align=left bgColor=#cccccc>Actions</TH></TR>
<TR>
<TD colSpan=4><A
href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76146&amp;action=enter">Create
a New Attachment</A> (proposed patch, testcase, etc.) </TD>
<TD><A
href="https://bugs.eclipse.org/bugs/attachment.cgi?bugid=76146&amp;action=viewall">View
All</A> </TD></TR></TBODY></TABLE><BR>
<TABLE>
<TBODY>
<TR>
<TH align=right>Bug 76146 depends on:</TH>
<TD></TD>
<TD><INPUT name=dependson> </TD>
<TD rowSpan=2><A
href="https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=76146">Show
dependency tree</A> </TD></TR>
<TR>
<TH align=right>Bug 76146 blocks:</TH>
<TD></TD>
<TD><INPUT name=blocked> </TD></TR></TBODY></TABLE><BR><B>Additional
Comments:</B> <BR><TEXTAREA accessKey=c name=comment rows=10 wrap=hard cols=80></TEXTAREA>
<BR><BR><INPUT type=radio CHECKED value=none name=knob> Leave as
<B>NEW&nbsp;</B> <BR><INPUT type=radio value=accept name=knob> Accept bug
(change status to <B>ASSIGNED</B>) <BR><INPUT type=radio value=resolve
name=knob> Resolve bug, changing <A
href="https://bugs.eclipse.org/bugs/bug_status.html">resolution</A> to <SELECT
onchange=document.changeform.knob[2].checked=true name=resolution> <OPTION
value=FIXED selected>FIXED</OPTION> <OPTION value=INVALID>INVALID</OPTION>
<OPTION value=WONTFIX>WONTFIX</OPTION> <OPTION value=LATER>LATER</OPTION>
<OPTION value=REMIND>REMIND</OPTION> <OPTION
value=WORKSFORME>WORKSFORME</OPTION></SELECT> <BR><INPUT type=radio
value=duplicate name=knob> Resolve bug, mark it as duplicate of bug # <INPUT
onchange="if (this.value != '')&#10; {document.changeform.knob[3].checked=true}"
size=6 name=dup_id> <BR><INPUT type=radio value=reassign name=knob> <A
href="https://bugs.eclipse.org/bugs/bug_status.html#assigned_to">Reassign</A>
bug to <INPUT
onchange="if ((this.value != 'mchapman@uk.ibm.com') &amp;&amp; &#10; (this.value != '')) {&#10; document.changeform.knob[4].checked=true; &#10; }"
size=32 value=mchapman@uk.ibm.com name=assigned_to> <BR><INPUT type=radio
value=reassignbycomponent name=knob> Reassign bug to owner of selected component
<BR><INPUT type=submit value=Commit> <INPUT type=hidden value=process_bug
name=form_name>
<P><FONT size=+1><B><A
href="https://bugs.eclipse.org/bugs/show_activity.cgi?id=76146">View Bug
Activity</A> &nbsp; | &nbsp; <A
href="https://bugs.eclipse.org/bugs/long_list.cgi?buglist=76146">Format For
Printing</A> </B></FONT></P></FORM>
<TABLE>
<TBODY>
<TR>
<TD align=left><B><A
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76146#c0"
name=c0>Description</A>: </B></TD>
<TD align=right width="100%">Opened: 2004-10-13 04:51 </TD></TR></TBODY></TABLE>
<HR>
<!-- 1.0@bugzilla.org --><PRE>To recreate:
- Check out the QuickFix project from ajdt.test project
- Open TestAspect.java in the Java Editor (right click &gt; open with &gt; Java
Editor)
- Click on the lightbulb with the error marker (the same line as File f = new
File("tmp");
- An Internal Error appear in the Error log with the following stack trace:
java.lang.NullPointerException
at
org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsSubProcessor.getT
ypeProposals(UnresolvedElementsSubProcessor.java:395)
at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.process
(QuickFixProcessor.java:270)
at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.getCorrections
(QuickFixProcessor.java:202)
at
org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.collectCorr
ections(JavaCorrectionProcessor.java:240)
at
org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.processAnno
tations(JavaCorrectionProcessor.java:208)
at
org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.computeComp
letionProposals(JavaCorrectionProcessor.java:177)
at
org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposal
s(ContentAssistant.java:1472)
at
org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals
(CompletionProposalPopup.java:242)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7
(CompletionProposalPopup.java:238)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run
(CompletionProposalPopup.java:197)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals
(CompletionProposalPopup.java:192)
at
org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions
(ContentAssistant.java:1320)
at
org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionAssistant.showPossibl
eCompletions(JavaCorrectionAssistant.java:159)
at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewe
r.doOperation(CompilationUnitEditor.java:184)
at org.eclipse.jdt.internal.ui.javaeditor.JavaSelectAnnotationRulerAction.run
(JavaSelectAnnotationRulerAction.java:78)
at org.eclipse.ui.texteditor.AbstractRulerActionDelegate.run
(AbstractRulerActionDelegate.java:99)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:276)
at org.eclipse.ui.internal.PluginAction.run(PluginAction.java:238)
at org.eclipse.ui.texteditor.AbstractTextEditor$11.triggerAction
(AbstractTextEditor.java:2110)
at org.eclipse.ui.texteditor.AbstractTextEditor$11.mouseUp
(AbstractTextEditor.java:2117)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:136)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:335)
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:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:183)
at org.eclipse.core.launcher.Main.run(Main.java:644)
at org.eclipse.core.launcher.Main.main(Main.java:628)
Looking at the jdt code in UnresolvedElementsSubProcessor.java, at line 395,
the parent field is null:
ASTNode parent= selectedNode.getParent();
while (parent.getLength() == selectedNode.getLength()) { // line 395
parent= parent.getParent();
}
There just needs to be a null check as there is above:
ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
if (selectedNode == null) {
return;
}
int kind= SimilarElementsRequestor.ALL_TYPES;
ASTNode parent= selectedNode.getParent();
while (parent.getLength() == selectedNode.getLength()) {
parent= parent.getParent();
}
should become:
ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
if (selectedNode == null) {
return;
}
int kind= SimilarElementsRequestor.ALL_TYPES;
ASTNode parent= selectedNode.getParent();
if (parent == null) {
return;
}
while (parent.getLength() == selectedNode.getLength()) {
parent= parent.getParent();
}
This needs to be raised as a jdt bug, since we don't pass through any ajdt
code in order to get here.
Raising this bug against ajdt is just for tracking.
(note this happens on 1.1.12, but also on the latest AJDT dev build).</PRE>
<HR>
<!-- 1.0@bugzilla.org --><B>Bug List:</B> <A
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36310">First</A> <A
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76101">Last</A> (This bug is
not in your list) &nbsp;&nbsp;<A
href="https://bugs.eclipse.org/bugs/buglist.cgi?regetlastlist=1">Show list</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
href="https://bugs.eclipse.org/bugs/query.cgi">Query page</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
href="https://bugs.eclipse.org/bugs/enter_bug.cgi">Enter new bug</A> <BR><!-- 1.0@bugzilla.org -->
<TABLE border=0>
<TBODY>
<TR>
<TD vAlign=top bgColor=#000000>
<TABLE cellSpacing=0 cellPadding=10 width="100%" bgColor=lightyellow
border=0>
<TBODY>
<TR>
<TD>This is <B>Bugzilla</B>: the Mozilla bug system. For more
information about what Bugzilla is and what it can do, see <A
href="http://www.bugzilla.org/">bugzilla.org</A>. <BR><!-- 1.0@bugzilla.org -->
<FORM action=show_bug.cgi method=get>
<TABLE width="100%">
<TBODY>
<TR>
<TD>Actions: </TD>
<TD vAlign=center noWrap><A
href="https://bugs.eclipse.org/bugs/enter_bug.cgi">New</A> |
<A href="https://bugs.eclipse.org/bugs/query.cgi">Query</A> | <INPUT type=submit value=Find> bug # <INPUT size=6 name=id> |
<A
href="https://bugs.eclipse.org/bugs/reports.cgi">Reports</A>
</TD>
<TD>&nbsp;</TD>
<TD vAlign=center align=right><A
href="https://bugs.eclipse.org/bugs/createaccount.cgi">New&nbsp;Account</A>
| <A
href="https://bugs.eclipse.org/bugs/query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</A>
</TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>