This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 200048 - @TopComponent.Registration annotation can not be used on methods.
Summary: @TopComponent.Registration annotation can not be used on methods.
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Window System (show other bugs)
Version: 7.0
Hardware: All All
: P3 normal (vote)
Assignee: Jaroslav Tulach
URL:
Keywords: API
Depends on:
Blocks: 191407
  Show dependency tree
 
Reported: 2011-07-11 13:43 UTC by Martin Entlicher
Modified: 2011-07-30 13:47 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
NullPointerException (3.15 KB, text/plain)
2011-07-12 09:32 UTC, Martin Entlicher
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Entlicher 2011-07-11 13:43:56 UTC
When I put the annotation on a method that returns TopComponent, I get attached exception during compilation.
After going to the source code to see what's wrong, I've found that the code looks for @Description annotation on the element. But @Description can not be added to methods. Therefore @Registration annotation can not be used on methods.
Comment 1 Stanislav Aubrecht 2011-07-12 09:06:02 UTC
no exception message attached...
Comment 2 Martin Entlicher 2011-07-12 09:32:23 UTC
Created attachment 109388 [details]
NullPointerException
Comment 3 Martin Entlicher 2011-07-12 09:34:20 UTC
The exception is not really important here, although the requirement of the @Description annotation could be expressed in a better way.
Comment 4 Stanislav Aubrecht 2011-07-12 09:36:22 UTC
reassigning to the author of the processor
Comment 5 Jaroslav Tulach 2011-07-14 09:25:49 UTC
ergonomics#0f5a34096965
Comment 6 Jaroslav Tulach 2011-07-14 09:26:50 UTC
I fixed the NPE and modified the test to show how to use @Registration on a method. But I am not sure, you'll be very pleased...
Comment 7 Jesse Glick 2011-07-14 11:22:00 UTC
The fix does not make much sense; there is no point in using factory methods if they all must share the same preferredId. Better to admit that @TC.R is useless on methods and just remove that target from the annotation declaration. Due to this NPE, nobody could be using it in that capacity yet anyway, so it would not be an incompatible change.
Comment 8 Quality Engineering 2011-07-17 13:59:05 UTC
Integrated into 'main-golden', will be available in build *201107170600* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/0f5a34096965
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #200048: @TopComponent.Registration annotation can not be used on methods.
Don't throw NPE when registering TopComponent via factory method
Comment 9 Jaroslav Tulach 2011-07-27 12:29:51 UTC
OK, removed in ergonomics#6de28830a6c6
Comment 10 Quality Engineering 2011-07-30 13:47:48 UTC
Integrated into 'main-golden'
Changeset: http://hg.netbeans.org/main-golden/rev/6de28830a6c6
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #200048: Changing the @Target of TopComponent.Registration. Generally it makes sense only on types