@@ -0,0 +1,2158 @@
+package com.fasterxml.jackson.failing;%0A%0Aimport java.util.Objects;%0A%0Aimport com.fasterxml.jackson.annotation.JacksonInject;%0Aimport com.fasterxml.jackson.annotation.JsonProperty;%0Aimport com.fasterxml.jackson.annotation.OptBoolean;%0A%0Aimport com.fasterxml.jackson.databind.*;%0Aimport com.fasterxml.jackson.databind.json.JsonMapper;%0A%0Apublic class Inject2678Test extends BaseMapTest%0A%7B%0A    protected static class Some %7B%0A        private final String field1;%0A%0A        @JacksonInject(value = %22defaultValueForField2%22, useInput = OptBoolean.TRUE)%0A        private final String field2;%0A%0A        public Some(@JsonProperty(%22field1%22) final String field1,%0A                  @JsonProperty(%22field2%22) @JacksonInject(value = %22defaultValueForField2%22,%0A                            useInput = OptBoolean.TRUE) final String field2) %7B%0A             this.field1 = Objects.requireNonNull(field1);%0A             this.field2 = Objects.requireNonNull(field2);%0A        %7D%0A%0A        public String getField1() %7B%0A             return field1;%0A        %7D%0A%0A        public String getField2() %7B%0A             return field2;%0A        %7D%0A    %7D%0A%0A    public void testReadValueInjectables() throws Exception %7B%0A        final InjectableValues injectableValues =%0A                  new InjectableValues.Std().addValue(%22defaultValueForField2%22, %22somedefaultValue%22);%0A        final ObjectMapper mapper = JsonMapper.builder()%0A                .injectableValues(injectableValues)%0A                .build();%0A%0A        final Some actualValueMissing = mapper.readValue(%22%7B%5C%22field1%5C%22: %5C%22field1value%5C%22%7D%22, Some.class);%0A        assertEquals(actualValueMissing.getField1(), %22field1value%22);%0A        assertEquals(actualValueMissing.getField2(), %22somedefaultValue%22);%0A%0A        final Some actualValuePresent = mapper.readValue(%0A                %22%7B%5C%22field1%5C%22: %5C%22field1value%5C%22, %5C%22field2%5C%22: %5C%22field2value%5C%22%7D%22, Some.class);%0A        assertEquals(actualValuePresent.getField1(), %22field1value%22);%0A        assertEquals(actualValuePresent.getField2(), %22somedefaultValue%22);%0A%0A        // if I comment @JacksonInject that is next to the property the valid assert is the correct one:%0A        assertEquals(actualValuePresent.getField2(), %22field2value%22);%0A   %7D%0A%7D%0A

Add a failing test for #2678