1

When I tried to do SVN synchronize I got this error. I wonder why it has happen, any ideas? It works great after restarting eclipse, but I wonder what could cause it and how its possible that the jar was not found.

!ENTRY org.eclipse.team.svn.core.svnnature 4 0 2011-12-09 14:22:15.534
!MESSAGE SVN: '0x00000107: Synchronizing' operation finished with error
!SUBENTRY 1 org.eclipse.team.svn.core.svnnature 4 0 2011-12-09 14:22:15.534
!MESSAGE Synchronize operation failed.
!STACK 0
java.lang.InternalError
    at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:755)
    at sun.misc.URLClassPath.getResource(URLClassPath.java:169)
    at sun.misc.URLClassPath.getResource(URLClassPath.java:221)
    at java.lang.ClassLoader.getBootstrapResource(ClassLoader.java:1151)
    at java.lang.ClassLoader.getResource(ClassLoader.java:1000)
    at java.lang.ClassLoader.getResource(ClassLoader.java:998)
    at java.lang.ClassLoader.getSystemResource(ClassLoader.java:1101)
    at javax.crypto.SunJCE_b.i(DashoA13*..)
    at javax.crypto.SunJCE_b.g(DashoA13*..)
    at javax.crypto.SunJCE_b$1.run(DashoA13*..)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.crypto.SunJCE_b.<clinit>(DashoA13*..)
    at javax.crypto.KeyAgreement.getInstance(DashoA13*..)
    at com.sun.net.ssl.internal.ssl.JsseJce.getKeyAgreement(JsseJce.java:241)
    at com.sun.net.ssl.internal.ssl.JsseJce.isEcAvailable(JsseJce.java:158)
    at com.sun.net.ssl.internal.ssl.CipherSuite$KeyExchange.isAvailable(CipherSuite.java:271)
    at com.sun.net.ssl.internal.ssl.CipherSuite.isAvailable(CipherSuite.java:143)
    at com.sun.net.ssl.internal.ssl.CipherSuiteList.buildAvailableCache(CipherSuiteList.java:210)
    at com.sun.net.ssl.internal.ssl.CipherSuiteList.getDefault(CipherSuiteList.java:233)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.init(SSLSocketImpl.java:508)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:451)
    at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:56)
    at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:73)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:186)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:327)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:275)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:263)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:999)
    at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getRepositoryUUID(DAVRepository.java:146)
    at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:342)
    at org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:330)
    at org.tmatesoft.svn.core.wc.SVNStatusClient.doStatus(SVNStatusClient.java:338)
    at org.tmatesoft.svn.core.javahl.SVNClientImpl.status(SVNClientImpl.java:300)
    at org.tmatesoft.svn.core.javahl.SVNClientImpl.status(SVNClientImpl.java:282)
    at org.polarion.team.svn.connector.svnkit.SVNKitConnector.status(SVNKitConnector.java:341)
    at org.eclipse.team.svn.core.extension.factory.ThreadNameModifier.status(ThreadNameModifier.java:608)
    at org.eclipse.team.svn.core.operation.local.RemoteStatusOperation$2.run(RemoteStatusOperation.java:147)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doSubTask(ProgressMonitorUtility.java:118)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:154)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:149)
    at org.eclipse.team.svn.core.operation.local.RemoteStatusOperation.runImpl(RemoteStatusOperation.java:145)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:81)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
    at org.eclipse.team.svn.core.operation.CompositeOperation.runImpl(CompositeOperation.java:95)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:81)
    at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:39)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90)
    at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber.findChanges(AbstractSVNSubscriber.java:314)
    at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber$UpdateStatusOperation$2.run(AbstractSVNSubscriber.java:349)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doSubTask(ProgressMonitorUtility.java:118)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:154)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:149)
    at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber$UpdateStatusOperation.runImpl(AbstractSVNSubscriber.java:347)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:81)
    at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:39)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:81)
    at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber.refresh(AbstractSVNSubscriber.java:186)
    at org.eclipse.team.svn.core.synchronize.UpdateSubscriber.refresh(UpdateSubscriber.java:73)
    at org.eclipse.team.core.subscribers.Subscriber.refresh(Subscriber.java:466)
    at org.eclipse.team.core.subscribers.SubscriberMergeContext.refresh(SubscriberMergeContext.java:85)
    at org.eclipse.team.core.mapping.provider.SynchronizationContext.refresh(SynchronizationContext.java:109)
    at org.eclipse.team.internal.ui.synchronize.RefreshModelParticipantJob.doRefresh(RefreshModelParticipantJob.java:69)
    at org.eclipse.team.internal.ui.synchronize.RefreshParticipantJob.run(RefreshParticipantJob.java:309)
    at org.eclipse.team.internal.ui.synchronize.RefreshModelParticipantJob.run(RefreshModelParticipantJob.java:117)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.io.FileNotFoundException: /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/jce.jar
    at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:644)
    at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:540)
    at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:607)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:599)
    at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:753)
    ... 69 more

no, it always works. just one time it did not.

3 Answers 3

3
+50

Looking at the JDK source code of sun.misc.URLClassPath and sun.misc.FileURLMapper, there is code in FileURLMapper.exists() that does the following:

public boolean exists() {
    String path = getPath();
    File f = new File (path);
    return f.exists();
}

Assuming nothing crazy has happened like the jce.jar file was actually deleted (such as through upgrading version of Java while Eclipse is running), the File.exists() call might fail because of some other reason (out of memory / file descriptors possibly? On Unix file.exists() eventually calls the stat/stat64 function)

Sign up to request clarification or add additional context in comments.

1 Comment

I agree, a file descriptor leak leading to file-not-found is the most likely culprit.
2

Drilling down to the code found here the things I can see: Invocation of sun.misc.URLClassPath.JarLoader.ensureOpen() at line 753 leads to InternalError raised at line 755.

The method is like as below:

private void ensureOpen() throws IOException {
    if (jar == null) {
        try {
            java.security.AccessController.doPrivileged(new java.security.PrivilegedExceptionAction() {
                        public Object run() throws IOException {
                            ....
                        }
                    });
        } catch (java.security.PrivilegedActionException pae) {
            throw (IOException) pae.getException(); // this exception is thrown
        }
    }
}

Here java.security.AccessController.doPrivileged(PrivilegedExceptionAction<T>) is a native method. Documentation is here.

As it can be understood from document, that error is thrown possibly for chekced exception that occur while processing public Object run() throws IOException {.

1 Comment

but why was this exception thrown? any ideas?
0

Check this file

/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/jce.jar

probably your eclipse tries to authenticate with repository but lacks classes needed to process and perform auth.

2 Comments

¿Do you have more than one jdk installed?
yup, just guessed it couldn't find it for a reason... well, gave up, sorry

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.