1 // 2 // ======================================================================== 3 // Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. 4 // ------------------------------------------------------------------------ 5 // All rights reserved. This program and the accompanying materials 6 // are made available under the terms of the Eclipse Public License v1.0 7 // and Apache License v2.0 which accompanies this distribution. 8 // 9 // The Eclipse Public License is available at 10 // http://www.eclipse.org/legal/epl-v10.html 11 // 12 // The Apache License v2.0 is available at 13 // http://www.opensource.org/licenses/apache2.0.php 14 // 15 // You may elect to redistribute this code under either of these licenses. 16 // ======================================================================== 17 // 18 19 package org.eclipse.jetty.util.preventers; 20 21 import javax.imageio.ImageIO; 22 23 /** 24 * AppContextLeakPreventer 25 * 26 * Cause the classloader that is pinned by AppContext.getAppContext() to be 27 * a container or system classloader, not a webapp classloader. 28 * 29 * Inspired by Tomcat JreMemoryLeakPrevention. 30 */ 31 public class AppContextLeakPreventer extends AbstractLeakPreventer 32 { 33 /* ------------------------------------------------------------ */ 34 @Override prevent(ClassLoader loader)35 public void prevent(ClassLoader loader) 36 { 37 LOG.debug("Pinning classloader for AppContext.getContext() with "+loader); 38 ImageIO.getUseCache(); 39 } 40 41 } 42