anon-iclr-submission/benchname-bug-localization huggingface dataset:
Repository: zalando/logbook
Issue: All null JSON fields get masked

If some field is `null`, it gets replaced by `XXX` by default. I couldn't find any way to change it other than copy-pasting and tweaking `JsonBodyFilters`.

```
public static void main(String[] args) {
    val result = BodyFilters.defaultValue().filter(MediaType.APPLICATION_JSON_UTF8_VALUE, "{\\n" +
            "  \\"myRandomField\\": null\\n" +
            "}");
    System.out.println(result);
}
```
Prints this:
`{"myRandomField":"XXX"}`

Changed files:
logbook-json/src/test/java/org/zalando/logbook/json/JsonBodyFiltersTest.java, logbook-json/src/main/java/org/zalando/logbook/json/JsonBodyFilters.java

diff --git a/logbook-json/src/main/java/org/zalando/logbook/json/JsonBodyFilters.java b/logbook-json/src/main/java/org/zalando/logbook/json/JsonBodyFilters.java
index a9f32ad0..0e951e14 100644
--- a/logbook-json/src/main/java/org/zalando/logbook/json/JsonBodyFilters.java
+++ b/logbook-json/src/main/java/org/zalando/logbook/json/JsonBodyFilters.java
@@ -27,7 +27,6 @@ public final class JsonBodyFilters {
         return replaceJsonStringProperty(properties, "XXX");
     }
 
-
     /**
      * Creates a {@link BodyFilter} that replaces the properties in the json response with the replacement passed as argument.
      * This {@link BodyFilter} works on all levels inside the json tree and it only works with string values<br><br>
@@ -61,7 +60,7 @@ public final class JsonBodyFilters {
     private static BodyFilter replacePrimitiveJsonProperty(final Set<String> properties, final String value, final String replacement) {
         final String regex = properties.stream().map(Pattern::quote).collect(joining("|"));
         final String property = "\\"(?:" + regex + ")\\"";
-        final Pattern pattern = compile("(" + property + "\\\\s*:\\\\s*)" + value + "|null");
+        final Pattern pattern = compile("(" + property + "\\\\s*:\\\\s*)(" + value + "|null)");
         final UnaryOperator<String> delegate = body -> pattern.matcher(body).replaceAll("$1" + replacement);
 
         return (contentType, body) ->
diff --git a/logbook-json/src/test/java/org/zalando/logbook/json/JsonBodyFiltersTest.java b/logbook-json/src/test/java/org/zalando/logbook/json/JsonBodyFiltersTest.java
index 2abb91b9..df0e93f6 100644
--- a/logbook-json/src/test/java/org/zalando/logbook/json/JsonBodyFiltersTest.java
+++ b/logbook-json/src/test/java/org/zalando/logbook/json/JsonBodyFiltersTest.java
@@ -93,6 +93,15 @@ class JsonBodyFiltersTest {
         assertThat(actual, is("{\\"foo\\":\\"XXX\\",\\"bar\\":\\"public\\"}"));
     }
 
+    @Test
+    void shouldFilterMatchingNullPropertyOnly() {
+        final BodyFilter unit = replaceJsonStringProperty(singleton("foo"), "XXX");
+
+        final String actual = unit.filter(contentType, "{\\"foo\\":null,\\"bar\\":null}");
+
+        assertThat(actual, is("{\\"foo\\":\\"XXX\\",\\"bar\\":null}"));
+    }
+
     @Test
     void shouldFilterAccessTokens() {
         final BodyFilter unit = new AccessTokenBodyFilter();
Repository: zalando/logbook
Issue: Missing setter for FormRequestMode in compiled/released JAR

## Description
I upgraded the dependency logbook-spring-boot-starter to the latest version (2.1.2). When I wanted to set the formRequestMode via `logbook.filter.form-request-mode`, I was greeted with the following message on startup:

```
***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'logbook.filter' to org.zalando.logbook.autoconfigure.LogbookProperties$Filter:

    Property: logbook.filter.form-request-mode
    Value: parameter
    Origin: class path resource [application.yml]:76:29
    Reason: No setter found for property: form-request-mode
```

I was a little confused since the code contains a @Setter lombok annotation. But checking the decompiled class code shows the following:

```
public final class LogbookProperties {

[...]

    public static class Filter {
        private final FormRequestMode formRequestMode = FormRequestMode.fromProperties();

        public Filter() {
        }

        @Generated
        public FormRequestMode getFormRequestMode() {
            return this.formRequestMode;
        }
    }
}
```

Turns out, the setter is actually missing.

## Expected Behavior
* Lombok setter annotation is processed correctly
* configuration works as intended

## Actual Behavior
* configuring the form-request-mode results in the application not starting up.

## Possible Fix
Remove final from the respective variable.

## Steps to Reproduce
1. Use dependency of logbook-spring-boot-starter in version 2.1.2
2. Configure logbook.filter.form-request-mode
3. Try to start spring boot application.
4. Application does not start.

## Your Environment
* Version used: 2.1.2



Changed files:
logbook-spring-boot-autoconfigure/src/main/java/org/zalando/logbook/autoconfigure/LogbookProperties.java

diff --git a/logbook-spring-boot-autoconfigure/src/main/java/org/zalando/logbook/autoconfigure/LogbookProperties.java b/logbook-spring-boot-autoconfigure/src/main/java/org/zalando/logbook/autoconfigure/LogbookProperties.java
index 4afb650f..0ec93e0b 100644
--- a/logbook-spring-boot-autoconfigure/src/main/java/org/zalando/logbook/autoconfigure/LogbookProperties.java
+++ b/logbook-spring-boot-autoconfigure/src/main/java/org/zalando/logbook/autoconfigure/LogbookProperties.java
@@ -39,7 +39,7 @@ public final class LogbookProperties {
     @Getter
     @Setter
     public static class Filter {
-        private final FormRequestMode formRequestMode = FormRequestMode.fromProperties();
+        private FormRequestMode formRequestMode = FormRequestMode.fromProperties();
     }
 
 }