A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/2398 below:

[java] AbstractClassWithoutAbstractMethod false negative with inner abstract classes · Issue #2398 · pmd/pmd · GitHub

Affects PMD Version: 6.22.0

Rule: AbstractClassWithoutAbstractMethod

Description:

When a abstract class contains a abstract inner class which has some abstract methods, then the outer abstract class is not detected, that it has no abstract methods.

Code Sample demonstrating the issue:

Test cases "Abstract class with inner classes false-negative 2" and "Abstract class with inner classes false-negative 3" are failing right now.

    <test-code>
        <description>Abstract class with inner classes false-negative 1</description>
        <expected-problems>1</expected-problems>
        <expected-linenumbers>1</expected-linenumbers>
        <code><![CDATA[
public abstract class Foo {
    public void concreteMethod() {}
    public abstract static class MyInner implements Other {
    }
}
        ]]></code>
    </test-code>

    <test-code>
        <description>Abstract class with inner classes false-negative 2</description>
        <expected-problems>1</expected-problems>
        <expected-linenumbers>1</expected-linenumbers>
        <code><![CDATA[
public abstract class Foo {
    public void concreteMethod() {}
    public abstract static class MyInner extends Other {
    }
}
        ]]></code>
    </test-code>

    <test-code>
        <description>Abstract class with inner classes false-negative 3</description>
        <expected-problems>1</expected-problems>
        <expected-linenumbers>1</expected-linenumbers>
        <code><![CDATA[
public abstract class Foo {
    public void concreteMethod() {}
    public abstract static class MyInner {
        public abstract void someMethod();
    }
}
        ]]></code>
    </test-code>

    <test-code>
        <description>Class with abstract inner class false-negative</description>
        <expected-problems>1</expected-problems>
        <expected-linenumbers>2</expected-linenumbers>
        <code><![CDATA[
public class Foo {
    public abstract static class MyInner {
        public void concreteMethod() {}
    }
}
        ]]></code>
    </test-code>

Expected outcome:

Additional notes:


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4