[
https://issues.apache.org/jira/browse/VALIDATOR-463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17140660#comment-17140660
]
Sebb commented on VALIDATOR-463:
--------------------------------
Patches welcome
> The DomainValidator doesn't work in a hot-reloading context because of the
> inUse flag
> -------------------------------------------------------------------------------------
>
> Key: VALIDATOR-463
> URL: https://issues.apache.org/jira/browse/VALIDATOR-463
> Project: Commons Validator
> Issue Type: Bug
> Affects Versions: 1.6
> Environment: {code:java}
> {code}
> Reporter: Christian Kaps
> Priority: Major
>
> We use the DomainValidator in a Play Framework application. The issue is,
> that it breaks the development cycle, because of the following exception:
> {code:java}
> java.lang.IllegalStateException: Can only invoke this method before calling
> getInstance at
> org.apache.commons.validator.routines.DomainValidator.updateTLDOverride(DomainValidator.java:1919)
> {code}
> Play uses hot-reloading, which means that the application compiles changed
> code and reloads the Play server with the changes. So if I change some code,
> then the error occurs because the DomainValidator stores its internal state
> in a global variable. The code that calls `updateTLDOverride` is loaded by
> Guice as an eager singleton. There is no other earliest entry point for the
> application. There is a `clearTLDOverrides` method but this isn't accessible
> from my code. If I had access to this method, then I could add a shutdown
> hook, which could call it.
> The same issue occurs also in our integration tests.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)