Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 360207

Summary: NPE during download when installing into my IDE
Product: [Eclipse Project] Equinox Reporter: Thomas Hallgren <thomas>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: major    
Priority: P3 CC: pascal
Version: 3.7.1   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Thomas Hallgren CLA 2011-10-07 05:18:54 EDT
I dialog with the text 'An internal error occurred during: "Install download3"'  popped up during install. Clicking details revealed a NullPointerException.

This happened during the actual download of the artifacts when I installed the latest egit/jgit. I dismissed the dialog and the install seemed to succeed anyway. But did it really?

This happened on a freshly installed classic IDE 3.7.1 on my 32-bit Ubuntu 11.04 running OpenJDK 1.6.0_22. I found the following trace in .metadata/.log:

!ENTRY org.eclipse.core.jobs 4 2 2011-10-07 11:03:46.595
!MESSAGE An internal error occurred during: "Install download3".
!STACK 0
java.lang.NullPointerException
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
	at java.security.Security.getImpl(Security.java:696)
	at java.security.MessageDigest.getInstance(MessageDigest.java:146)
	at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.getMessageDigest(SignatureBlockProcessor.java:313)
	at org.eclipse.osgi.internal.signedcontent.DigestedInputStream.<init>(DigestedInputStream.java:52)
	at org.eclipse.osgi.internal.signedcontent.SignedContentImpl.getDigestInputStream(SignedContentImpl.java:128)
	at org.eclipse.osgi.internal.signedcontent.SignedBundleFile$SignedBundleEntry.getInputStream(SignedBundleFile.java:153)
	at org.eclipse.osgi.baseadaptor.bundlefile.BundleEntry.getBytes(BundleEntry.java:90)
	at org.eclipse.osgi.internal.signedcontent.SignedContentImpl$SignedContentEntryImpl.verify(SignedContentImpl.java:165)
	at org.eclipse.osgi.internal.signedcontent.SignedContentFile.getSignedEntries(SignedContentFile.java:51)
	at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verifyContent(SignatureVerifier.java:82)
	at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verify(SignatureVerifier.java:59)
	at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.close(SignatureVerifier.java:100)
	at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep.close(ProcessingStep.java:85)
	at org.eclipse.equinox.internal.p2.artifact.processing.AbstractBufferingStep.close(AbstractBufferingStep.java:73)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.reportStatus(SimpleArtifactRepositor
y.java:1132)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepos
itory.java:570)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository
.java:680)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:260)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:235)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:191)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:122)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository
.java:664)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:63)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Thomas Hallgren CLA 2011-10-07 06:01:43 EDT
As it turned out my install didn't work. The expected views and preferences were missing although the installer reported that the features were successfully installed and present.

I uninstalled them and installed again. That went without problems but surprisingly it still didn't work.

I uninstalled again and then invoked the garbage collector:

eclipse -application org.eclipse.equinox.p2.garbagecollector.application -profile SDKProfile

After that, I installed again. This time it worked. This shows that the initial install somehow yielded a corrupt artifact. The dialog that popped up suggests that the problem was caught and propagated to the end user but in the end, although the problem was serious the install was allowed to succeed anyway. That's bad so I'm bumping this to 'major'.
Comment 2 Pascal Rapicault CLA 2014-04-07 13:41:25 EDT
We have not seen this error since then.