My favorites | Sign in
Project Logo
                
New issue | Search
for
| Advanced search | Search tips
Issue 5: DirInstaller (Felix bindle) on Windows XP continuously realoads bundles
1 person starred this issue and may be notified of changes. Back to list
Status:  Verified
Owner:  roman.roelofsen
Closed:  May 2009
Type-Defect
Priority-Critical


Sign in to add a comment
 
Reported by james.gu...@accenture.com, Dec 03, 2008
What steps will reproduce the problem?

Inside our BootStrap.groovy:
  def init = { servletContext ->
    ...
    def configMap = new StringMap(false)
    configMap.put(FelixConstants.EMBEDDED_EXECUTION_PROP, "true")
    configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES,
		  "org.osgi.util.tracker; version=1.3.2," +
		  "javax.swing.border;," +
		  "javax.swing.event;," +
		  "javax.swing.table;," +
		  "javax.swing.tree;," +
		  "javax.naming;," +
		  "javax.naming.spi;," +
		  "javax.net;," +
		  "javax.net.ssl;," +
		  "javax.sql;," +
		  "javax.swing;," +
		  "javax.xml.parsers;," +
		  "javax.xml.namespace;," +
		  "javax.xml.xpath;," +
		  "javax.servlet.http;," +
		  "javax.security.auth.x500;," +
		  "javax.servlet;," +
		  "org.w3c.dom;," +
		  "org.xml.sax;," +
		  "org.xml.sax.helpers;," +
		  "net.sf.json;," +
		  "org.osgi.framework; version=1.4.0," +
		  "org.osgi.service.packageadmin; version=1.2.0," +
		  "org.osgi.service.startlevel; version=1.1.0," +
		  "org.osgi.service.url; version=1.0.0," +
          	  "javax.xml.transform," +
    		  "javax.xml.transform.dom," +
    		  "javax.xml.transform.stream,"        
    );

    def bundles = 
      ...
      this.getClass().getClassLoader().getResource(BUNDLE_LOCATION +
"org.modulefusion.dirinstaller.jar").toString()
  
    configMap.put(AutoActivator.AUTO_START_PROP + ".1", bundles)
    configMap.put("dirinstaller.dir", LISTENER_DIR)

    List list = new ArrayList()
    list.add(new AutoActivator(configMap))

    ...
    Felix felix = new Felix(configMap, list)
    felix.start();
    ...
  }


What is the expected output? What do you see instead?
Expected: bundles are loaded once and only attempt to reload if new or
changed bundle
Observed: DirInstaller attempts to reload all the bundles every 2-3 seconds
resulting in "Bundle symbolic name and version are not unique." exceptions

What version of the product are you using? On what operating system?
Product Version: 1.0.2
OS: Windows XP Pro SP2

Please provide any additional information below.


Comment 1 by roman.roelofsen, Dec 04, 2008
The error message "Bundle symbolic name and version are not unique." indicates that
DirInstaller tries to install the bundles repeatedly. To find out if a bundle should
be get installed or updated, DirInstaller compares the path to the bundle file in the
filesystem with the bundle.getLocation() of all installed bundles. It seems that
something in your setup confuses DirInstaller.

- Can you post the console output?
- Is there something special in your filesystem layout?

Owner: roman.roelofsen
Comment 2 by roman.roelofsen, Dec 04, 2008
(No comment was entered for this change.)
Labels: -Priority-Medium Priority-Critical
Comment 3 by james.gu...@accenture.com, Dec 04, 2008
AH HA!  OK, the problem was that we initially loaded the bundle from the lib
directory but had the dirInstaller polling from a bundles directory.  Sorry about
that.   

Now, I'm curious why we _don't_ see these errors on our Macs
Comment 4 by kitplummer, Dec 19, 2008
Here's some of the output:

Installing bundle from file:
C:\cygwin\home\christopher.plummer\dds_trunk\datadiscovery\web-app\WEB-
INF\bundles\httpcore-osgi-4.0-beta3.jar
org.osgi.framework.BundleException: Bundle symbolic name and version are not unique.
        at org.apache.felix.framework.Felix.createModule(Felix.java:3395)
        at org.apache.felix.framework.Felix.createBundleInfo(Felix.java:3316)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2315)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2227)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:132)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:110)
        at
org.modulefusion.dirinstaller.DirWatcher.installOrUpdateBundle(DirWatcher.java:194)
        at org.modulefusion.dirinstaller.DirWatcher.analyseNewState(DirWatcher.java:101)
        at org.modulefusion.dirinstaller.DirWatcher.access$3(DirWatcher.java:90)
        at org.modulefusion.dirinstaller.DirWatcher$1.run(DirWatcher.java:63)
Problems installing or updating bundle. File: httpcore-osgi-4.0-beta3.jar
org.osgi.framework.BundleException: Could not create bundle object.
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2370)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2227)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:132)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:110)
        at
org.modulefusion.dirinstaller.DirWatcher.installOrUpdateBundle(DirWatcher.java:194)
        at org.modulefusion.dirinstaller.DirWatcher.analyseNewState(DirWatcher.java:101)
        at org.modulefusion.dirinstaller.DirWatcher.access$3(DirWatcher.java:90)
        at org.modulefusion.dirinstaller.DirWatcher$1.run(DirWatcher.java:63)
Caused by: org.osgi.framework.BundleException: Bundle symbolic name and version are
not unique.
        at org.apache.felix.framework.Felix.createModule(Felix.java:3395)
        at org.apache.felix.framework.Felix.createBundleInfo(Felix.java:3316)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2315)
        ... 7 more
2008-12-19 10:04:30.328:/ddservice:INFO:  Initializing Spring FrameworkServlet 'grails'
Installing bundle from file:
C:\cygwin\home\christopher.plummer\dds_trunk\datadiscovery\web-app\WEB-
INF\bundles\org.apache.felix.eventadmin-1.0.0.jar
Installing bundle from file:
C:\cygwin\home\christopher.plummer\dds_trunk\datadiscovery\web-app\WEB-
INF\bundles\org.apache.felix.http.jetty-0.9.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Bundle symbolic name and version are not unique.
        at org.apache.felix.framework.Felix.createModule(Felix.java:3395)
        at org.apache.felix.framework.Felix.createBundleInfo(Felix.java:3316)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2315)
        at org.apache.felix.framework.Felix.installBundle(Felix.java:2227)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:132)
        at
org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:110)
        at
org.modulefusion.dirinstaller.DirWatcher.installOrUpdateBundle(DirWatcher.java:194)

The bundles in the configured directory actually do get installed...but, it appears
that DirInstaller keeps trying to install (not just update either).
Comment 5 by roman.roelofsen, Jan 28, 2009
Does this still happen with the latest version?
Comment 6 by roman.roelofsen, May 12, 2009
(No comment was entered for this change.)
Status: Verified
Sign in to add a comment

Hosted by Google Code