Announcement Announcement Module
Collapse
No announcement yet.
Odd Error Deploying Bundles from EBR on dm Server 2 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Odd Error Deploying Bundles from EBR on dm Server 2

    I think I've narrowed this down to a test case but am not sure if it is a bug or just incompatible bundles.

    We've got a legacy application using struts 1.1. Bottom line here is that the struts 1.1 bundle (see EBR artifact names and versions below) requires several other bundles in play, which we have, but they don't seem to play well together.

    To reproduce simply, I can drop the following into the pickup folder of a CLEAN dm server 2 (I have tried M5, CI-453 and CI-458) in the order listed here:
    1. com.springsource.org.apache.commons.collections-3.2.1
    2. com.springsource.org.apache.commons.beanutils-1.8.0
    3. com.springsource.org.apache.commons.digester-1.8.1
    4. com.springsource.org.apache.struts-1.1.0

    The error that you get is very unhelpful, however:
    Code:
    [2009-11-11 17:24:12.389] fs-watcher                   <DE0018E> Unable to install application from location 'file:/R:/bin/springsource/springsource-dm-server-2.0.0.CI-453/pickup/com.springsource.org.apache.struts-1.1.0.jar'. Could not satisfy constraints for bundle 'com.springsource.org.apache.struts' at version '1.1.0'. Cannot resolve: com.springsource.org.apache.struts
        Unsatisfied leaf constraints:
    . 
    com.springsource.kernel.deployer.core.DeploymentException: Dependency satisfaction failed
    	at com.springsource.kernel.deployer.core.internal.PipelinedApplicationDeployer.performInstall(PipelinedApplicationDeployer.java:250)
    	at com.springsource.kernel.deployer.core.internal.PipelinedApplicationDeployer.deploy(PipelinedApplicationDeployer.java:167)
    	at com.springsource.kernel.deployer.hot.HotDeploymentFileSystemListener.deploy(HotDeploymentFileSystemListener.java:192)
    	at com.springsource.kernel.deployer.hot.HotDeploymentFileSystemListener.onChange(HotDeploymentFileSystemListener.java:89)
    	at com.springsource.util.io.FileSystemChecker.notifyListeners(FileSystemChecker.java:182)
    	at com.springsource.util.io.FileSystemChecker.check(FileSystemChecker.java:145)
    	at com.springsource.kernel.deployer.hot.WatchTask.run(WatchTask.java:69)
    	at java.lang.Thread.run(Thread.java:619)
    Caused by: com.springsource.kernel.osgi.framework.UnableToSatisfyBundleDependenciesException: Unable to satisfy dependencies of bundle 'com.springsource.org.apache.struts' at version '1.1.0': Cannot resolve: com.springsource.org.apache.struts
        Unsatisfied leaf constraints:
    
    	at com.springsource.kernel.install.pipeline.stage.resolve.internal.ResolveStage.diagnoseResolutionFailure(ResolveStage.java:105)
    	at com.springsource.kernel.install.pipeline.stage.resolve.internal.ResolveStage.process(ResolveStage.java:74)
    	at com.springsource.kernel.install.pipeline.internal.StandardPipeline.doProcessTree(StandardPipeline.java:71)
    	at com.springsource.kernel.install.pipeline.internal.CompensatingPipeline.doProcessTree(CompensatingPipeline.java:80)
    	at com.springsource.kernel.install.pipeline.stage.AbstractPipelineStage.process(AbstractPipelineStage.java:50)
    	at com.springsource.kernel.install.pipeline.internal.StandardPipeline.doProcessTree(StandardPipeline.java:71)
    	at com.springsource.kernel.install.pipeline.stage.AbstractPipelineStage.process(AbstractPipelineStage.java:50)
    	at com.springsource.kernel.deployer.core.internal.PipelinedApplicationDeployer.performInstall(PipelinedApplicationDeployer.java:247)
    	... 7 more
    [2009-11-11 17:24:12.389] fs-watcher                   <HD0002E> Hot deploy failed for resource 'R:\bin\springsource\springsource-dm-server-2.0.0.CI-453\pickup\com.springsource.org.apache.struts-1.1.0.jar'.
    What's more, from the console I see that the struts module is installed, but not started, obviously, so if I start it, I get:
    Code:
    Error occured while starting bundle '[62] com.springsource.org.apache.struts-1.1.0' : The bundle could not be resolved. Reason: Package uses conflict: Import-Package: org.apache.commons.digester; version="[1.8.0,2.0.0)"
    But digester is now active at 1.8.0 (here's a snippet from executing bundles in the console):
    Code:
    57  Active        com.springsource.server.splash-2.0.0.D-20091027131059
    58  Active        com.springsource.org.apache.commons.collections-3.2.1
    59  Active        com.springsource.org.apache.commons.beanutils-1.8.0
    60  Active        com.springsource.org.apache.commons.digester-1.8.1
    61  Active        com.springsource.slf4j.org.apache.commons.logging-1.5.6
    62  Installed     com.springsource.org.apache.struts-1.1.0
    The best I've been able to come up with is that digester has pulled in com.springsource.slf4j.org.apache.commons.logging-1.5.6 to satisfy the import for org.apache.commons.logging. However, once that is done, any subsequent request for that package resolves to two bundles:

    Code:
    Package:org.apache.commons.logging
    Importers:
    2   Resolved      org.springframework.aop-3.0.0.RC1
    5   Resolved      org.springframework.beans-3.0.0.RC1
    6   Resolved      org.springframework.core-3.0.0.RC1
    7   Resolved      org.springframework.context-3.0.0.RC1
    8   Resolved      org.springframework.osgi.core-1.2.1
    9   Resolved      org.springframework.osgi.extender-1.2.1
    10  Resolved      org.springframework.osgi.io-1.2.1
    33  Resolved      com.springsource.org.apache.commons.httpclient-3.1.0
    43  Resolved      org.springframework.oxm-3.0.0.RC1
    44  Resolved      org.springframework.web-3.0.0.RC1
    45  Resolved      com.springsource.server.admin.content-2.0.0.D-20091027131059
    46  Resolved      com.springsource.server.admin.web-2.0.0.D-20091027131059
    49  Resolved      org.springframework.context.support-3.0.0.RC1
    50  Resolved      org.springframework.jdbc-3.0.0.RC1
    51  Resolved      org.springframework.js-2.0.8.RELEASE
    52  Resolved      org.springframework.transaction-3.0.0.RC1
    53  Resolved      org.springframework.web.servlet-3.0.0.RC1
    59  Resolved      com.springsource.org.apache.commons.beanutils-1.8.0
    60  Resolved      com.springsource.org.apache.commons.digester-1.8.1
    62  Resolved      com.springsource.org.apache.struts-1.1.0
    Exporters:
    1   Resolved      com.springsource.region.user-0.0.0
    61  Resolved      com.springsource.slf4j.org.apache.commons.logging-1.5.6
    So my questions:
    1. Am I on the right track trying to figure this out?
    2. What is com.springsource.region.user-0.0.0 doing exporting this package?
    3. How can this be resolved? The two things exporting this package come from dm server's default install - I've provided neither of these.

  • #2
    This certainly looks like a bug. Please would you raise a JIRA defect and attach your testcase?

    Since the package in question is provided to the user region from the kernel, there should be no need for dm Server to automatically provision the bundle to the user region.

    Comment


    • #3
      Thanks - JIRA created.

      https://issuetracker.springsource.com/browse/DMS-2029

      Comment


      • #4
        This one's really become a showstopper for us. Any chance at getting this one fixed soon?

        Comment


        • #5
          Scott, I'll take a look at this today and see what I can do.

          Comment


          • #6
            You can apply the fix to your current build by adding one line to a properties file. Please see the defect for details.

            Comment


            • #7
              Awesome, thanks!

              Comment


              • #8
                It works. Thank you very much!

                Comment


                • #9
                  Excellent. Thanks for letting us know.

                  Comment

                  Working...
                  X