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.
I have an abstract class that has such a method: protected abstract String doStuff( String request ); It's protected because I want users of my code to access it via the superclass. In my subclass, to match, I have: protected final String doStuff( String request ) { // [...] } When I run Tools->Synchronize on that subclass, the Confirm Changes dialog says: Update Method protected final java.lang.String doStuff(String) to protected abstract java.lang.String doStuff(String). That kindof makes sense.. so when I process that, this is the change it makes in my subclass: protected final String doStuff( String request ) { // [...] } to public final String doStuff( String request ) { // [...] } Why would it change the visibility to public after it says it needs to satisfy it as protected - especially after it says it needs to be protected? I think it should use the same visibility as the abstract class defines. I definetly feel it shouldn't change method visibility that already satisfies the abstract method. This isn't an Interface, not everything needs to be public.
Dan, please look at it.
Tools->Synchronize was removed. This bug is not valid any more.
Maybe the menu option for Tools->Synchronize was removed, but the synchronized checks are still run on classes, and this problem still exists in IDE 4.1. As soon as a class with the characteristics I describe before is changed, the same "Confirm Changes" dialogue box comes up, and it wants to make the same inappropriate changes.
As you can see from the target milestone, Tools->Synchronization was removed from 4.2. NB 4.1 still contains it.