private ArrayList<?> getLoaders() 
            throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException 
    {
        Field ucpField = URLClassLoader.class.getDeclaredField("ucp");
        Object urlClassPath = getField(this, ucpField);
        if (urlClassPath == null)
            throw new AssertionError("urlClassPath not set in URLClassLoader");
        Field loadersField = urlClassPath.getClass().getDeclaredField("loaders");
        return (ArrayList<?>) getField(urlClassPath, loadersField);
    }