title: The web application [] appears to have started a thread named [Abandoned connection cleanup thread] com.mysql.jdbc.AbandonedConnectionCleanupThread
body: <p>In the middle of my web-development I just close my web-app in my eclipse IDE, about a minute, I just saw a <strong>WARNING</strong> in my eclipse console.</p>
  
  <pre><code>WARNING: The web application [/Spring.MVC] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
  Sep 06, 2014 8:31:55 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
  WARNING: The web application [/Spring.MVC] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
   java.lang.Object.wait(Native Method)
   java.lang.ref.ReferenceQueue.remove(Unknown Source)
   com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:40)
  Sep 06, 2014 8:32:00 PM org.apache.catalina.core.ApplicationContext log
  INFO: No Spring WebApplicationInitializer types detected on classpath
  SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
  SLF4J: Defaulting to no-operation (NOP) logger implementation
  SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
  Sep 06, 2014 8:32:00 PM org.apache.catalina.core.ApplicationContext log
  INFO: Initializing Spring root WebApplicationContext
  Sep 06, 2014 8:32:03 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
  INFO: HHH000204: Processing PersistenceUnitInfo [
      name: personPU
      ...]
  </code></pre>
  
  <p>It did not caused any memory leak so far, I checked my VisualVM, everything is working as usual, but as I search more about this thing I realize that this warning is caused by the MySQL driver not releasing resources or not being closed properly(I dont know how to say it exactly) and I ended up in this post at SO <a href="https://stackoverflow.com/questions/11872316/tomcat-guice-jdbc-memory-leak">related issue</a></p>
  
  <p>and the OP is right  <em>the answer of "don't worry about it" won't be sufficient</em>. This warning bothers me because it may give me some <strong>future persistence problems</strong> and that worries me a lot, I tried the code the OP has written but I'm having a problem <strong>what Libraries</strong> should I use to make this code work. This is what I got sor far..</p>
  
  <pre><code>import java.sql.Driver;
  import java.sql.DriverManager;
  import java.sql.SQLException;
  import java.util.Enumeration;
  import javax.servlet.ServletContextEvent;
  import javax.servlet.ServletContextListener;
  import javax.servlet.annotation.WebListener;
  import org.hibernate.annotations.common.util.impl.LoggerFactory;
  import com.mysql.jdbc.AbandonedConnectionCleanupThread;
  @WebListener
  public class ContextFinalizer implements ServletContextListener {
  
  private static final Logger LOGGER = LoggerFactory.getLogger(ContextFinalizer.class);
  
  public void contextInitialized(ServletContextEvent sce) {
  }
  
  public void contextDestroyed(ServletContextEvent sce) {
      Enumeration&lt;Driver&gt; drivers = DriverManager.getDrivers();
      Driver d = null;
      while (drivers.hasMoreElements()) {
          try {
              d = drivers.nextElement();
              DriverManager.deregisterDriver(d);
              LOGGER.warn(String.format("Driver %s deregistered", d));
          }
          catch (SQLException ex) {
              LOGGER.warn(String.format("Error deregistering driver %s", d), ex);
          }
      }
      try {
          AbandonedConnectionCleanupThread.shutdown();
      }
      catch (InterruptedException e) {
          logger.warn("SEVERE problem cleaning up: " + e.getMessage());
          e.printStackTrace();
      }
    }
  }
  </code></pre>
  
  <p>I just want to know what Libraries do I need or If I'm using the right libraries to implement this properly, I do not even know what Logger should I use, thank you for any help, </p>