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

Bug 313299

Summary: Class cast exception in p2 engine
Product: [Eclipse Project] Equinox Reporter: Markus Schorn <mschorn.eclipse>
Component: p2Assignee: Thomas Hallgren <thomas>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: aniefer, pascal
Version: 3.6Flags: pascal: review+
aniefer: review+
Target Milestone: 3.6 RC2   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Patch that fixes the exception none

Description Markus Schorn CLA 2010-05-18 04:35:58 EDT
Using Galileo M7:

!ENTRY org.eclipse.equinox.p2.engine 4 4 2010-05-18 10:18:54.750
!MESSAGE An error occurred while unconfiguring the items to uninstall

java.lang.ClassCastException: org.eclipse.equinox.internal.p2.metadata.InstallableUnit
    at org.eclipse.equinox.internal.p2.metadata.IUMap.remove(IUMap.java:199)
    at org.eclipse.equinox.internal.p2.metadata.IUMap.removeAll(IUMap.java:224)
    at org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository.removeInstallableUnits(LocalMetadataRepository.java:260)
    at org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener.synchronizeMetadataRepository(RepositoryListener.java:212)
    at org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener.stopPoll(RepositoryListener.java:197)
    at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:171)
    at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109)
    at org.eclipse.equinox.internal.p2.extensionlocation.SiteListener.synchronizeRepositories(SiteListener.java:102)
    at org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationArtifactRepository.ensureInitialized(ExtensionLocationArtifactRepository.java:66)
    at org.eclipse.equinox.internal.p2.extensionlocation.ExtensionLocationArtifactRepository.getProperties(ExtensionLocationArtifactRepository.java:216)
    at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.addRepository(AbstractRepositoryManager.java:126)
    at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:667)
    at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository(ArtifactRepositoryManager.java:99)
    at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository(ArtifactRepositoryManager.java:95)
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util.getAggregatedBundleRepository(Util.java:134)
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util.getAggregatedBundleRepository(Util.java:95)
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util.getArtifactFile(Util.java:198)
    at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint.initializeOperand(EclipseTouchpoint.java:193)
    at org.eclipse.equinox.internal.p2.engine.Phase.initializeTouchpointParameters(Phase.java:198)
    at org.eclipse.equinox.internal.p2.engine.Phase.mainPerform(Phase.java:126)
    at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:78)
    at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:44)
    at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:73)
    at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:44)
    at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.executePlan(ProfileSynchronizer.java:567)
    at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.synchronize(ProfileSynchronizer.java:124)
    at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.synchronize(Activator.java:407)
    at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:164)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
Comment 1 Thomas Hallgren CLA 2010-05-18 05:11:08 EDT
Created attachment 168878 [details]
Patch that fixes the exception

One test too many in the same if statement. This patch takes care of that.
Comment 2 Thomas Hallgren CLA 2010-05-19 00:38:28 EDT
Patch released in HEAD.