boolean adapterAvailable = false; SVNException javahlException = null; SVNException javaSvnException = null; SVNException cliException = null; try { JhlClientAdapterFactory.setup(); adapterAvailable = true; } catch (SVNClientException e) {   javahlException = SVNException.wrapException(e); } try { JavaSvnClientAdapterFactory.setup(); adapterAvailable = true; } catch (SVNClientException e) {   javaSvnException = SVNException.wrapException(e); } try { CmdLineClientAdapterFactory.setup(); adapterAvailable = true; } catch (SVNClientException e) {   cliException = SVNException.wrapException(e); }  if (!adapterAvailable) { System.out.println("No SVN Client Adapter available"); if (javahlException != null) SVNProviderPlugin.log(javahlException); if (javaSvnException != null) SVNProviderPlugin.log(javaSvnException); if (cliException != null) SVNProviderPlugin.log(cliException); }      try { svnClientInterface = SVNClientAdapterFactory.getPreferredSVNClientType(); } catch (SVNClientException e) { throw new CoreException(new Status(IStatus.ERROR, SVNProviderPlugin.ID, IStatus.OK, e .getMessage(), e)); }  setFetchChangePathOnDemand(fetchChangePathOnDemand);       SVNProviderPlugin.getPlugin().getAdminDirectoryName();
    public void startup(IProgressMonitor monitor) throws CoreException {        boolean adapterAvailable = false;        SVNException javahlException = null;        SVNException javaSvnException = null;        SVNException cliException = null;        try {            JhlClientAdapterFactory.setup();            adapterAvailable = true;        } catch (SVNClientException e) {            // if an exception is thrown, javahl is not available or             // already registered ...            javahlException = SVNException.wrapException(e);        }        try {            JavaSvnClientAdapterFactory.setup();            adapterAvailable = true;        } catch (SVNClientException e) {            // if an exception is thrown, JavaSVN is not available or             // already registered ...            javaSvnException = SVNException.wrapException(e);        }        try {            CmdLineClientAdapterFactory.setup();            adapterAvailable = true;        } catch (SVNClientException e) {            // if an exception is thrown, command line interface is not available or             // already registered ...            cliException = SVNException.wrapException(e);        }                if (!adapterAvailable) {            System.out.println("No SVN Client Adapter available");            if (javahlException != null)                SVNProviderPlugin.log(javahlException);            if (javaSvnException != null)                SVNProviderPlugin.log(javaSvnException);            if (cliException != null)                SVNProviderPlugin.log(cliException);        }                                // by default, we set the svn client interface to the best available        // (JNI if available or command line interface)        try {            svnClientInterface = SVNClientAdapterFactory.getPreferredSVNClientType();        } catch (SVNClientException e) {            throw new CoreException(new Status(IStatus.ERROR, SVNProviderPlugin.ID, IStatus.OK, e                    .getMessage(), e));        }                setFetchChangePathOnDemand(fetchChangePathOnDemand);                // Initialize the admin directory name -- fixes a crash scenario with JavaHL        // Since the method being called internally caches the result it        // avoids a race condition later on, when someone runs an action like        // checkout that forces us to call this method for the first time        // in the middle of another action.  That is the theory anyway.        SVNProviderPlugin.getPlugin().getAdminDirectoryName();        }