Utilizzando un applicativo creato con il framework Java Spring e MongoDB come base di dati su cui era attivo il sistema di autenticazione, di ricevere il seguente errore: "java.lang.IllegalStateException: state should be: open".
Questo errore si riferisci all'impossibilità per Spring di effettuare una connessione al DB e nel mio caso specifico ciò era dovuto a causa della chiusura dell'Application Context:
Codice: Seleziona tutto
public void run(String... args) throws Exception {
ConfigurableApplicationContext cctx = new ClassPathXmlApplicationContext("META-INF/spring/repository-context.xml");
//Fai qualcosa
cctx.close();
}
Questo accade perchè quando si chiude l'application context nel main dell'applicazione, vengono tirati giù anche i beans e a sua volta viene chiuso anche il MongoClient con il risultato che se c'e' un Thread che tenta di usare un mongo client che risulta essere in IllegalStateException quando un thread in Background tenta di utilizzarlo.
Roberto Basile