When deploying and removing bundles via STS, there often arises an issue which appears to be a failure to clean up removed bundles. When starting clean, the bundles can be dragged down to Virgo and installed as expected. Very often when the bundle is removed, the bundle is not removed and there will be two entries for each bundle in the listing in STS. Later, if you try to deploy the bundle again, you'll get the error below. The bundle is most assuredly not installed, however. This then requires a clean restart and manually deleting the stage. Inspecting the stage show no file there. (So in this example, amacremedy.repository is not in the stage directory.)
I have the issue quite often, as do just about everyone on the team. When dragging bundles down to Virgo in STS, they seem to install, but after removing them they are still there. If one goes to the web admin console, they can sometimes be seen in the bundles list. Uninstalling them from the console does not solve the following problem. The solution is to clean everything out and restart the server. If this seems worthy of an issue I will go ahead and raise one.
[2010-12-21 09:26:12.676] TCP Connection(27)-127.0.0.1 <DE0002E> Installation of bundle 'amacremedy.repository' version '0.0.1' failed. org.eclipse.virgo.kernel.deployer.core.DeploymentException: commit failed
at org.eclipse.virgo.kernel.install.pipeline.stage.resolve.internal.CommitStage.process(CommitStage.java:41)
at org.eclipse.virgo.kernel.install.pipeline.internal.StandardPipeline.doProcessTree(StandardPipeline.java:62)
at org.eclipse.virgo.kernel.install.pipeline.internal.CompensatingPipeline.doProcessTree(CompensatingPipeline.java:72)
at org.eclipse.virgo.kernel.install.pipeline.stage.AbstractPipelineStage.process(AbstractPipelineStage.java:41)
at org.eclipse.virgo.kernel.install.pipeline.internal.StandardPipeline.doProcessTree(StandardPipeline.java:62)
at org.eclipse.virgo.kernel.install.pipeline.stage.AbstractPipelineStage.process(AbstractPipelineStage.java:41)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.driveInstallPipeline(PipelinedApplicationDeployer.java:271)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.doInstall(PipelinedApplicationDeployer.java:151)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.install(PipelinedApplicationDeployer.java:123)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.deploy(PipelinedApplicationDeployer.java:190)
at org.eclipse.virgo.kernel.deployer.management.StandardDeployer.deploy(StandardDeployer.java:52)
at sun.reflect.GeneratedMethodAccessor83.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.eclipse.osgi.framework.internal.core.Framework$DuplicateBundleException: Bundle "amacremedy.repository" version "0.0.1" has already been installed from: file:/C:/vrt/./stage/amacremedy.repository.jar/
at org.eclipse.osgi.framework.internal.core.Framework.createAndVerifyBundle(Framework.java:714)
at org.eclipse.osgi.framework.internal.core.Framework.installWorkerPrivileged(Framework.java:922)
at org.eclipse.osgi.framework.internal.core.Framework$1.run(Framework.java:837)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.Framework.installWorker(Framework.java:888)
at org.eclipse.osgi.framework.internal.core.Framework.installBundle(Framework.java:832)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.installBundle(BundleContextImpl.java:167)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.installBundle(BundleContextImpl.java:161)
at org.eclipse.virgo.kernel.userregion.internal.quasi.StandardQuasiFramework.installQuasiBundles(StandardQuasiFramework.java:365)
at org.eclipse.virgo.kernel.userregion.internal.quasi.StandardQuasiFramework.commit(StandardQuasiFramework.java:296)
at org.eclipse.virgo.kernel.install.pipeline.stage.resolve.internal.CommitStage.process(CommitStage.java:39)
... 39 common frames omitted