1 Reply Latest reply: Mar 31, 2010 7:46 AM by Ales Justin RSS

    setRequiredStage should also setRequiredState

    Adrian Brock Master

      This patch in OSGi shows that there is something wrong with AbstractDeploymentContext.setRequiredStage().

       

      You shouldn't have to explicitly do the ControllerContext.setRequiredState(), that is an implementation detail.

       

      Index: PackageAdminImpl.java
      ===================================================================
      --- PackageAdminImpl.java    (revision 103305)
      +++ PackageAdminImpl.java    (working copy)
      @@ -347,6 +347,18 @@
             {
                log.error("Error resolving bundles: " + resolvableBundles, ex);
                allResolved = false;
      +        
      +         // Reset the required state for bundles that didn't get resolved
      +         for (OSGiBundleState bundleState : resolvableBundles)
      +         {
      +            if (bundleState.getState() == Bundle.INSTALLED)
      +            {
      +               DeploymentUnit unit = bundleState.getDeploymentUnit();
      +               unit.setRequiredStage(DeploymentStages.DESCRIBE);
      +               ControllerContext ctx = unit.getAttachment(ControllerContext.class);
      +               ctx.setRequiredState(ControllerState.newState(DeploymentStages.DESCRIBE.getName()));
      +            }
      +         }
             }
            
             return allResolved;