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 201973 - [push down method] introduces behavioral change: Disables overloading
Summary: [push down method] introduces behavioral change: Disables overloading
Status: RESOLVED WONTFIX
Alias: None
Product: java
Classification: Unclassified
Component: Refactoring (show other bugs)
Version: 7.0.1
Hardware: PC Mac OS X
: P3 normal (vote)
Assignee: Ralph Ruijs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-12 00:37 UTC by GustavoSoares
Modified: 2015-09-17 11:15 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description GustavoSoares 2011-09-12 00:37:06 UTC
Create the classes:

package p2;
public class C {
  public long k(  long a){
    return 2;
  }
}

package p1;
public class B extends A {
  public long test(){
    return m();
  }
}

package p1;
import p2.*;
public class A extends C {
  private long k(  int a){
    return 1;
  }
  public long m(){
    return new A().k(2);
  }
}

apply the push down method refactoring to m 

package p2;
public class C {
  public long k(  long a){
    return 2;
  }
}

package p1;
public class B extends A {
  public long test(){
    return m();
  }
    public long m() {
        return new A().k(2);
    }
}

package p1;
import p2.*;
public class A extends C {
  private long k(  int a){
    return 1;
  }
}

The transformation changes behavior. After the transformation the test method returns 2 instead of 1
Comment 1 Martin Balin 2015-09-17 11:15:57 UTC
Report from old NetBeans version. Due to code changes since it was reported likely not reproducible now. Feel free to reopen if happens in 8.0.2 or 8.1.