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 98057

Summary: [encapsulate field] Encapsulating a field referenced by a super call is not performed correctly
Product: java Reporter: kely_garcia <kely_garcia>
Component: RefactoringAssignee: Jan Pokorsky <jpokorsky>
Status: RESOLVED FIXED    
Severity: blocker    
Priority: P3    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:

Description kely_garcia 2007-03-16 04:19:25 UTC
Build ID: 200609161800 (Netbeans 6.0 M3)

Steps To Reproduce:
Encapsulate field f on the following:

class A {
        int f;
}
class B extends A {
        void m() {
                super.f = 0; 
        }
}

Yields the following refactored code:
class A {
        private int f;

    public int getF() {
        return f;
    }

    public void setF(int f) {
        this.f = f;
    }
}
class B extends A {
        void m() {
                setF(0); 
        }
}

Note: Instead of changing "super.f = 0" to "super.setF(0)" it was changed 
to "setF(0)"
Comment 1 Pavel Flaska 2007-03-23 13:14:38 UTC
Encapsulate field refactoring is not available in current builds. It has to be
brought back with fixes.
Comment 2 Jan Pokorsky 2007-10-15 13:28:39 UTC
Already implemented. Please try the latest daily build.

Note that the result depends also on your Field Visibility and Use Accessors Visibility settings.