Skip to content

I20210526-2310

tagged this 24 May 12:46
makes NPE on default package

"Unnecessary array creation" cleanup rule makes a null pointer when the
class is in the default package.

Given:
public class A {
    public class B {
        public void foo(Object elementsOrTreePaths, Integer obj, Integer
obj2) {
            return;
        }
    }

    public class C extends B {
        public void foo(Object... elementsOrTreePaths) {
            return;
        }

        public void foo(Object elementsOrTreePaths, Integer obj) {
            foo(new Object[] {elementsOrTreePaths, obj});
            foo(new Object[] {elementsOrTreePaths,
elementsOrTreePaths});
            foo(new Object[] {elementsOrTreePaths, obj, obj});
            foo(new Object[] {elementsOrTreePaths, obj,
elementsOrTreePaths});
        }
    }
}

When:
Applying "Unnecessary array creation" rule...

Expected:
public class A {
    public class B {
        public void foo(Object elementsOrTreePaths, Integer obj, Integer
obj2) {
            return;
        }
    }

    public class C extends B {
        public void foo(Object... elementsOrTreePaths) {
            return;
        }

        public void foo(Object elementsOrTreePaths, Integer obj) {
            foo(elementsOrTreePaths, obj);
            foo(elementsOrTreePaths, elementsOrTreePaths);
            foo(elementsOrTreePaths, obj, obj);
            foo(elementsOrTreePaths, obj, elementsOrTreePaths);
        }
    }
}

Actual:
NPE

Change-Id: I821543924ea6437a3386b449b31199e2715b9d0c
Signed-off-by: Fabrice Tiercelin <fabrice.tiercelin@yahoo.fr>
Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.ui/+/180819
Tested-by: JDT Bot <jdt-bot@eclipse.org>
Reviewed-by: Noopur Gupta <noopur_gupta@in.ibm.com>
Assets 2
Loading