private static InputStream getInputStreamForFileInClassLoaderResources()

in src/main/java/org/apache/directory/fortress/core/util/ResourceUtil.java [94:156]


    private static InputStream getInputStreamForFileInClassLoaderResources(String _reference)
    {
        InputStream result = null;
        URL url = ResourceUtil.class.getClassLoader().getResource(_reference);
        if (null != url)
        {
            if (url.getProtocol().equals("file"))
            {
                File file = new File(url.getPath());
                if (file.exists())
                {
                    if (!file.isDirectory())
                    {
                        try
                        {
                            result = new FileInputStream(file);
                        }
                        catch (FileNotFoundException e)
                        {
                            // Don't care
                        }
                    }
                }
            }
            else if (url.getProtocol().equals("jar"))
            {
                result = ResourceUtil.class.getClassLoader().getResourceAsStream(_reference);
                if (null != result)
                {
                    try ( PushbackInputStream pushbackInputStream = new PushbackInputStream(result) )
                    {
                        int b = -1;
                        try
                        {
                            b = pushbackInputStream.read();
                        }
                        catch (IOException e)
                        {
                            // Don't care
                        }
                        if (b != -1)
                        {
                            result = pushbackInputStream;
                            try
                            {
                                pushbackInputStream.unread(b);
                            }
                            catch (IOException e)
                            {
                                result = null;
                            }
                        }
                    }
                    catch ( IOException ioe )
                    {
                        // Problem while closing the input stream... Nothing we can do
                        ioe.printStackTrace();
                    }
                }
            }
        }
        return result;
    }