#vulnerable code 
                                Driver [] scanDriversOLD(String line)
    {
        long start = System.currentTimeMillis();

        Set paths = new HashSet();
        Set driverClasses = new HashSet();

        for (
            StringTokenizer tok =
                new StringTokenizer(
                    System.getProperty("java.ext.dirs"),
                    System.getProperty("path.separator"));
            tok.hasMoreTokens();)
        {
            File [] files = new File(tok.nextToken()).listFiles();
            for (int i = 0; (files != null) && (i < files.length); i++) {
                paths.add(files[i].getAbsolutePath());
            }
        }

        for (
            StringTokenizer tok =
                new StringTokenizer(
                    System.getProperty("java.class.path"),
                    System.getProperty("path.separator"));
            tok.hasMoreTokens();)
        {
            paths.add(new File(tok.nextToken()).getAbsolutePath());
        }

        for (Iterator i = paths.iterator(); i.hasNext();) {
            File f = new File((String) i.next());
            output(
                color().pad(loc("scanning", f.getAbsolutePath()), 60),
                false);

            try {
                ZipFile zf = new ZipFile(f);
                int total = zf.size();
                int index = 0;

                for (
                    Enumeration zfEnum = zf.entries();
                    zfEnum.hasMoreElements();)
                {
                    ZipEntry entry = (ZipEntry) zfEnum.nextElement();
                    String name = entry.getName();
                    progress(index++, total);

                    if (name.endsWith(".class")) {
                        name = name.replace('/', '.');
                        name = name.substring(0, name.length() - 6);

                        try {
                            // check for the string "driver" in the class
                            // to see if we should load it. Not perfect, but
                            // it is far too slow otherwise.
                            if (name.toLowerCase().indexOf("driver") != -1) {
                                Class c =
                                    Class.forName(
                                        name,
                                        false,
                                        getClass().getClassLoader());
                                if (Driver.class.isAssignableFrom(c)
                                    && !(Modifier.isAbstract(
                                            c.getModifiers())))
                                {
                                    try {
                                        // load and initialize
                                        Class.forName(name);
                                    } catch (Exception e) {
                                    }
                                    driverClasses.add(c.newInstance());
                                }
                            }
                        } catch (Throwable t) {
                        }
                    }
                }

                progress(total, total);
            } catch (Exception e) {
            }
        }

        info("scan complete in "
            + (System.currentTimeMillis() - start) + "ms");
        return (Driver []) driverClasses.toArray(new Driver[0]);
    } 
                            #location 81 
                            #vulnerability type RESOURCE_LEAK
#fixed code
                                SqlLine()
    {
        sqlLineCommandCompleter = new SQLLineCommandCompleter();

        // attempt to dynamically load signal handler
        try {
            Class handlerClass = Class.forName("sqlline.SunSignalHandler");
            signalHandler = (SqlLineSignalHandler) handlerClass.newInstance();
        } catch (Throwable t) {
            handleException(t);
        }
    }