You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Christopher Meyer (JIRA)" <de...@myfaces.apache.org> on 2015/04/28 21:29:06 UTC

[jira] [Created] (MYFACES-3988) An empty tag in a custom tag-lib causes an Exception

Christopher Meyer created MYFACES-3988:
------------------------------------------

             Summary: An empty tag in a custom tag-lib causes an Exception
                 Key: MYFACES-3988
                 URL: https://issues.apache.org/jira/browse/MYFACES-3988
             Project: MyFaces Core
          Issue Type: Bug
          Components: JSR-344
    Affects Versions: 2.2.8
            Reporter: Christopher Meyer
            Priority: Minor


While developing a custom tag library we added an empty renderer-type tag like this:

<tag>
     <tag-name>myinput</tag-name>
     <component>
           <component-type>my.test.MyInput</component-type>
          <renderer-type></renderer-type>
     </component>
</tag>

This causes the following exception:

Caused by: java.lang.Exception: Value Cannot be Empty
	at org.apache.myfaces.view.facelets.compiler.TagLibraryConfigUnmarshallerImpl$LibraryHandler.endElement(TagLibraryConfigUnmarshallerImpl.java:395)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
...

This appears to be expected based on the code in TagLibraryConfigUnmarshallerImpl. From what I can see the exception appears to be thrown on elements which are used in another spot. If any of them are empty they will throw the above exception. Wildfly/Glassfish does not have the same behavior, so my assumption is they just ignore it.

Should the MyFaces code be modified to just continue on without the exception, based on the reference implementation? I can quickly create something if so, I just wanted to bring this up to the community at large since I don't know the reasoning behind the difference of the implementations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)