    public void invalidExample() throws Exception {
        assertThat(ConstraintViolations.format(validator.validate(new InvalidExample())))
                .isEmpty();
        assertThat(TestLoggerFactory.getAllLoggingEvents())
                .containsExactlyInAnyOrder(
                        new LoggingEvent(
                                Level.ERROR,
                                "The method {} is annotated with @SelfValidation but does not have a single parameter of type {}",
                                InvalidExample.class.getMethod("validateFailAdditionalParameters", ViolationCollector.class, int.class),
                                ViolationCollector.class
                        ),
                        new LoggingEvent(
                                Level.ERROR,
                                "The method {} is annotated with @SelfValidation but does not return void. It is ignored",
                                InvalidExample.class.getMethod("validateFailReturn", ViolationCollector.class)
                        ),
                        new LoggingEvent(
                                Level.ERROR,
                                "The method {} is annotated with @SelfValidation but is not public",
                                InvalidExample.class.getDeclaredMethod("validateFailPrivate", ViolationCollector.class)
                        )
                );
    }
The software constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.