diff --git a/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java index 6c20af6dc573..2736a83c721a 100644 --- a/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java +++ b/plugins/lombok/src/test/java/com/intellij/java/lomboktest/LombokHighlightingTest.java @@ -52,6 +52,11 @@ public class LombokHighlightingTest extends LightDaemonAnalyzerTestCase { doTest(); } + public void testBuilderJacksonized() { + // shouldn't throw any exceptions (like StackOverflowError) + doTest(); + } + @Override protected void setUp() throws Exception { super.setUp(); diff --git a/plugins/lombok/testData/highlighting/BuilderJacksonized.java b/plugins/lombok/testData/highlighting/BuilderJacksonized.java new file mode 100644 index 000000000000..ef760f9a6b79 --- /dev/null +++ b/plugins/lombok/testData/highlighting/BuilderJacksonized.java @@ -0,0 +1,38 @@ +package com.test; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import lombok.extern.jackson.Jacksonized; + +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; +import static com.test.BuilderJacksonized.*; + +@Value +@Builder(toBuilder = true) +@Jacksonized +@JsonPropertyOrder({ + ID_PROP, + SERVICE_PROP, + COMPONENT_PROP +}) +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(NON_NULL) +public class BuilderJacksonized { + public static final String ID_PROP = "id"; + public static final String SERVICE_PROP = "service"; + public static final String COMPONENT_PROP = "component"; + + @JsonProperty(value = ID_PROP, required = true) + @NonNull String id; + + @JsonProperty(value = SERVICE_PROP, required = true) + @NonNull String service; + + @JsonProperty(value = COMPONENT_PROP, required = true) + @NonNull String component; +}