From 14f861b5f1c49d9ccc2eb0cda088753e6b63d349 Mon Sep 17 00:00:00 2001 From: Jan Rieke Date: Fri, 12 Mar 2021 11:51:18 +0100 Subject: [fixes #2701] fix NPE on customized SuperBuilder with Singular --- .../SuperBuilderSingularCustomized.java | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 test/transform/resource/after-delombok/SuperBuilderSingularCustomized.java (limited to 'test/transform/resource/after-delombok/SuperBuilderSingularCustomized.java') diff --git a/test/transform/resource/after-delombok/SuperBuilderSingularCustomized.java b/test/transform/resource/after-delombok/SuperBuilderSingularCustomized.java new file mode 100644 index 00000000..04cfd9f2 --- /dev/null +++ b/test/transform/resource/after-delombok/SuperBuilderSingularCustomized.java @@ -0,0 +1,77 @@ +import java.util.Set; +class SuperBuilderSingularCustomized { + private Set foos; + public static abstract class SuperBuilderSingularCustomizedBuilder> { + @java.lang.SuppressWarnings("all") + private java.util.ArrayList foos; + public B custom(final String value) { + return self(); + } + @java.lang.SuppressWarnings("all") + protected abstract B self(); + @java.lang.SuppressWarnings("all") + public abstract C build(); + @java.lang.SuppressWarnings("all") + public B foo(final String foo) { + if (this.foos == null) this.foos = new java.util.ArrayList(); + this.foos.add(foo); + return self(); + } + @java.lang.SuppressWarnings("all") + public B foos(final java.util.Collection foos) { + if (foos == null) { + throw new java.lang.NullPointerException("foos cannot be null"); + } + if (this.foos == null) this.foos = new java.util.ArrayList(); + this.foos.addAll(foos); + return self(); + } + @java.lang.SuppressWarnings("all") + public B clearFoos() { + if (this.foos != null) this.foos.clear(); + return self(); + } + @java.lang.Override + @java.lang.SuppressWarnings("all") + public java.lang.String toString() { + return "SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder(foos=" + this.foos + ")"; + } + } + @java.lang.SuppressWarnings("all") + private static final class SuperBuilderSingularCustomizedBuilderImpl extends SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder { + @java.lang.SuppressWarnings("all") + private SuperBuilderSingularCustomizedBuilderImpl() { + } + @java.lang.Override + @java.lang.SuppressWarnings("all") + protected SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilderImpl self() { + return this; + } + @java.lang.Override + @java.lang.SuppressWarnings("all") + public SuperBuilderSingularCustomized build() { + return new SuperBuilderSingularCustomized(this); + } + } + @java.lang.SuppressWarnings("all") + protected SuperBuilderSingularCustomized(final SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder b) { + java.util.Set foos; + switch (b.foos == null ? 0 : b.foos.size()) { + case 0: + foos = java.util.Collections.emptySet(); + break; + case 1: + foos = java.util.Collections.singleton(b.foos.get(0)); + break; + default: + foos = new java.util.LinkedHashSet(b.foos.size() < 1073741824 ? 1 + b.foos.size() + (b.foos.size() - 3) / 3 : java.lang.Integer.MAX_VALUE); + foos.addAll(b.foos); + foos = java.util.Collections.unmodifiableSet(foos); + } + this.foos = foos; + } + @java.lang.SuppressWarnings("all") + public static SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilder builder() { + return new SuperBuilderSingularCustomized.SuperBuilderSingularCustomizedBuilderImpl(); + } +} \ No newline at end of file -- cgit