diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index a2ef05c60a..198ba5d84b 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -23,6 +23,8 @@ This is a {{ site.pmd.release_type }} release. * [#3160](https://github.com/pmd/pmd/issues/3160): \[java] MethodReturnsInternalArray does not consider static final fields and fields initialized with empty array * java-errorprone * [#3146](https://github.com/pmd/pmd/issues/3146): \[java] InvalidLogMessageFormat detection failing when String.format used +* java-performance + * [#2427](https://github.com/pmd/pmd/issues/2427): \[java] ConsecutiveLiteralAppend false-positive with builder inside lambda ### API Changes diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml index c72fd4f721..1722019d90 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/performance/xml/ConsecutiveLiteralAppends.xml @@ -1497,4 +1497,32 @@ public class Foo { } ]]> + + [java] ConsecutiveLiteralAppend false-positive with builder inside lambda #2427 + 0 + , Consumer> consumerMap, final StringBuilder builder) { + consumerMap.put(Collection.class, o -> { + builder.append('['); + Collection collection = (Collection) o; + collection.forEach(t -> builder.append(t)); + builder.append(']'); // here reported (with pmd 6.22.0) + }); + + consumerMap.put(Map.class, o -> { + builder.append('{'); + Map map = (Map) o; + map.forEach((k, v) -> builder.append(k).append('=').append(v)); + builder.append('}'); + }); + } +} + ]]> +