Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 341393 - Possible NPE on shutdown
Summary: Possible NPE on shutdown
Status: RESOLVED WORKSFORME
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: P2 Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-30 12:54 EDT by Ian Bull CLA
Modified: 2014-04-08 15:35 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ian Bull CLA 2011-03-30 12:54:49 EDT
On shutdown, we may hit an NPE trying to lock an artifact repository. I managed to hit this while testing (I had some break points set, so this might not be a 'normal' execution).

Exception in thread "Thread-3" java.lang.NullPointerException
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getLockLocation(SimpleArtifactRepository.java:1401)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.canLock(SimpleArtifactRepository.java:1345)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.addDescriptor(SimpleArtifactRepository.java:356)
	at org.eclipse.equinox.p2.repository.artifact.spi.AbstractArtifactRepository.addDescriptor(AbstractArtifactRepository.java:65)
	at org.eclipse.equinox.p2.tests.artifact.repository.BatchExecuteArtifactRepositoryTest$8$1$1.run(BatchExecuteArtifactRepositoryTest.java:250)
Comment 1 Ian Bull CLA 2011-04-21 13:28:23 EDT
I'm going to mark this as invalid as I can't reproduce it.
Comment 2 Dani Megert CLA 2011-07-29 01:08:24 EDT
Our build just failed due the NPE:


Caused by: /builds/I201107282000/org.eclipse.releng.basebuilder/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/scripts/genericTargets.xml:241: A problem occured while invoking the director.
	at org.eclipse.equinox.p2.director.app.ant.DirectorTask.execute(DirectorTask.java:82)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
	at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.Target.execute(Target.java:390)
	at org.apache.tools.ant.Target.performTasks(Target.java:411)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
	at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
	at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
	... 36 more
Caused by: java.lang.NullPointerException
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getLockLocation(SimpleArtifactRepository.java:1443)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.canLock(SimpleArtifactRepository.java:1384)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.(SimpleArtifactRepository.java:328)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepositoryFactory.create(SimpleArtifactRepositoryFactory.java:134)
	at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.factoryCreate(ArtifactRepositoryManager.java:61)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.doCreateRepository(AbstractRepositoryManager.java:286)
	at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.createRepository(ArtifactRepositoryManager.java:49)
	at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.restoreSpecialRepositories(ArtifactRepositoryManager.java:133)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.restoreRepositories(AbstractRepositoryManager.java:995)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.removeRepository(AbstractRepositoryManager.java:909)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.removeRepository(AbstractRepositoryManager.java:901)
	at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.cleanupRepositories(DirectorApplication.java:385)
	at org.eclipse.equinox.internal.p2.director.app.DirectorApplication.run(DirectorApplication.java:999)
	at org.eclipse.equinox.p2.director.app.ant.DirectorTask.execute(DirectorTask.java:79)
Comment 4 Pascal Rapicault CLA 2014-04-08 15:35:24 EDT
this no longer seems to be possible