Tapestry
  1. Tapestry
  2. TAPESTRY-618

No location provided when an unknown library prefix is used.

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 4.0
    • Fix Version/s: 4.1.1
    • Component/s: Framework
    • Labels:
      None

      Description

      When a component (in a template for sure) uses a prefix, say "contrib:" that isn't defined in the containing library/application specification, the exception doesn't identify the line in the template that's in erorr.

      org.apache.hivemind.ApplicationRuntimeException
      Library 'contrib' not found in namespace 'contrib.inspector'.
      Stack Trace:

      • org.apache.tapestry.engine.Namespace.createNamespace(Namespace.java:288)
      • org.apache.tapestry.engine.Namespace.getChildNamespace(Namespace.java:151)
      • org.apache.tapestry.resolver.AbstractSpecificationResolver.findNamespaceForId(AbstractSpecificationResolver.java:204)
      • org.apache.tapestry.resolver.ComponentSpecificationResolverImpl.resolve(ComponentSpecificationResolverImpl.java:138)
      • $ComponentSpecificationResolver_10611d647b5.resolve($ComponentSpecificationResolver_10611d647b5.java)
      • $ComponentSpecificationResolver_10611d647b6.resolve($ComponentSpecificationResolver_10611d647b6.java)
      • org.apache.tapestry.services.impl.DefaultParserDelegate.getAllowBody(DefaultParserDelegate.java:70)
      • org.apache.tapestry.parse.TemplateParser.processComponentStart(TemplateParser.java:984)
      • org.apache.tapestry.parse.TemplateParser.startTag(TemplateParser.java:858)
      • org.apache.tapestry.parse.TemplateParser.parse(TemplateParser.java:493)
      • org.apache.tapestry.parse.TemplateParser.parse(TemplateParser.java:325)
      • $ITemplateParser_10611d647eb.parse($ITemplateParser_10611d647eb.java)
      • $ITemplateParser_10611d647ec.parse($ITemplateParser_10611d647ec.java)
      • org.apache.tapestry.services.impl.TemplateSourceImpl.constructTemplateInstance(TemplateSourceImpl.java:339)
      • org.apache.tapestry.services.impl.TemplateSourceImpl.parseTemplate(TemplateSourceImpl.java:316)
      • org.apache.tapestry.services.impl.TemplateSourceImpl.getOrParseTemplate(TemplateSourceImpl.java:293)
      • org.apache.tapestry.services.impl.TemplateSourceImpl.findStandardTemplate(TemplateSourceImpl.java:273)
      • org.apache.tapestry.services.impl.TemplateSourceImpl.findTemplate(TemplateSourceImpl.java:180)
      • org.apache.tapestry.services.impl.TemplateSourceImpl.getTemplate(TemplateSourceImpl.java:123)
      • $TemplateSource_10611d6473c.getTemplate($TemplateSource_10611d6473c.java)
      • org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(ComponentTemplateLoaderImpl.java:55)
      • $ComponentTemplateLoader_10611d647b7.loadTemplate($ComponentTemplateLoader_10611d647b7.java)
      • org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.java:657)
      • org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77)
      • org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107)
      • $ShowEngine_468.finishLoad($ShowEngine_468.java)
      • org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:465)
      • org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:516)
      • $IPageLoader_10611d647af.createImplicitComponent($IPageLoader_10611d647af.java)
      • $IPageLoader_10611d647b0.createImplicitComponent($IPageLoader_10611d647b0.java)
      • org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplicitComponent(ComponentTemplateLoaderLogic.java:218)
      • org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:172)
      • org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(ComponentTemplateLoaderLogic.java:111)
      • org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate(ComponentTemplateLoaderLogic.java:88)
      • org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(ComponentTemplateLoaderImpl.java:60)
      • $ComponentTemplateLoader_10611d647b7.loadTemplate($ComponentTemplateLoader_10611d647b7.java)
      • org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.java:657)
      • org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77)
      • org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107)
      • $Inspector_456.finishLoad($Inspector_456.java)
      • org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:465)
      • org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:628)
      • $IPageLoader_10611d647af.loadPage($IPageLoader_10611d647af.java)
      • $IPageLoader_10611d647b0.loadPage($IPageLoader_10611d647b0.java)
      • org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:118)
      • $IPageSource_10611d6470e.getPage($IPageSource_10611d6470e.java)
      • org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:265)
      • org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:248)

        Activity

        Mark Thomas made changes -
        Workflow Default workflow, editable Closed status [ 12567460 ] jira [ 12591953 ]
        Mark Thomas made changes -
        Workflow jira [ 12324096 ] Default workflow, editable Closed status [ 12567460 ]
        Andreas Andreou made changes -
        Fix Version/s 4.1.1 [ 12312021 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Andreas Andreou made changes -
        Assignee Andreas Andreou [ andyhot ]
        Andreas Andreou made changes -
        Field Original Value New Value
        Attachment ComponentSpecificationResolverImpl.patch [ 12314406 ]
        Hide
        Andreas Andreou added a comment -

        Here's a fix for this.
        In ComponentSpecificationResolverImpl.resolve(), when trying to find the namespace from the given id,
        if an ApplicationRuntimeException is thrown, catch it, and throw another one
        with the same message and the correct location appended.

        Show
        Andreas Andreou added a comment - Here's a fix for this. In ComponentSpecificationResolverImpl.resolve(), when trying to find the namespace from the given id, if an ApplicationRuntimeException is thrown, catch it, and throw another one with the same message and the correct location appended.
        Howard M. Lewis Ship created issue -

          People

          • Assignee:
            Andreas Andreou
            Reporter:
            Howard M. Lewis Ship
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development