Skip to content

EmailValidator cannot be reused #6

@liamjones

Description

@liamjones

Currently, EmailValidator4J's Parsers maintain internal state related to Warnings. The Parsers are instantiated at Validator construction time and then reused.

As such, as soon as a Warning is in a Parser the EmailValidator will incorrectly give that Warning back for any subsequent address checked.

Test case:

@Test
public void validatorCanBeReused() {
    EmailValidator validator = new EmailValidator();
    validator.isValid("test@[127.0.0.0]");
    Assert.assertFalse(validator.getWarnings().isEmpty());
    validator.isValid("[email protected]");
    Assert.assertFalse(validator.hasWarnings()); // Fails due to previous Warning still being present
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions