Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-6136

Consider Equinox-style exception formatting

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Framework
    • Labels:
      None

      Description

      Hello!

      One common complaint with OSGi implementations is that requirements issues often produce unreadable error messages. In Eclipse Equinox, requirements messages are carefully formatted and this tends to improve readability a lot. Consider this Felix error message:

      ERROR: Bundle org.sakaiproject.nakamura.world [76] Error startingfile:bundles/org.sakaiproject.nakamura.world_1.4.0.SNAPSHOT.jar(org.osgi.framework.BundleException: Unresolved constraint in bundleorg.sakaiproject.nakamura.world [76]: Unable to resolve 76.0: missingrequirement [76.0] osgi.wiring.package;(&(osgi.wiring.package=javax.servlet)(version>=3.0.0))) 11.07.2012  17:01:43.297 *ERROR* [FelixDispatchQueue]org.sakaiproject.nakamura.world FrameworkEvent ERROR(org.osgi.framework.BundleException: Unresolved constraint in bundleorg.sakaiproject.nakamura.world [76]: Unable to resolve 76.0: missingrequirement [76.0] osgi.wiring.package;(&(osgi.wiring.package=javax.servlet)(version>=3.0.0)))  org.osgi.framework.BundleException: Unresolved constraint in bundleorg.sakaiproject.nakamura.world [76]: Unable to resolve 76.0: missingrequirement [76.0] osgi.wiring.package;(&(osgi.wiring.package=javax.servlet)(version>=3.0.0))  
      

      Now consider this similar message from Equinox:

      org.osgi.framework.BundleException: Could not resolve module: z.resolveError [9]
        Unresolved requirement: Import-Package: unresolved.exporter
          -> Export-Package: unresolved.exporter; bundle-symbolic-name="z.unresolved.exporter"; bundle-version="1.0.0.qualifier"; version="0.0.0"
            z.unresolved.exporter [10]
              Unresolved requirement: Import-Package: does.not.exist
      

      According to Thomas Watson, this is achieved by "indenting the chains until we get to a requirement that has no available candidates".

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              io7m Mark Raynsford
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: