NullPointerException from skinning framework code (SkinUtils)
-------------------------------------------------------------
Key: TRINIDAD-2080
URL: https://issues.apache.org/jira/browse/TRINIDAD-2080
Project: MyFaces Trinidad
Issue Type: Bug
Components: Skinning
Affects Versions: 2.0.0-beta-2
Environment: n/a
Reporter: Prakash Udupa
In our application, where we use Trinidad, we hit on the following exception...
Mar 10, 2011 1:25:33 PM org.apache.myfaces.trinidad.webapp.TrinidadFilter
SEVERE:
java.lang.NullPointerException
at org.apache.myfaces.trinidadinternal.skin.SkinUtils._registerSkinExtensionsA
ndAdditions(SkinUtils.java:379)
at org.apache.myfaces.trinidadinternal.skin.SkinUtils.registerSkinExtensions(S
kinUtils.java:129)
at org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl.init(Glob
alConfiguratorImpl.java:406)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.init(Registrat
ionFilter.java:53)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.init(Trinidad
FilterImpl.java:110)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.init(TrinidadFilter.java:
54)
The culprit code is here...
private static void _registerSkinExtensionsAndAdditions(
ExternalContext context,
SkinFactory skinFactory)
{
if (context == null)
return;
// Add META-INF/trinidad-skins.xml skins to skin factory. (sorted first to
make sure
// we register the most 'base' skins first)
if (_LOG.isFine()) _LOG.fine("Parse META-INF/trinidad-skins.xml files");
List<SkinsNode> metaInfSkinsNodeList = _getMetaInfSkinsNodeList();
// Go through each SkinsNode object
// (contains List of SkinNodes and List of SkinAdditionNodes)
// and return a List of the SkinNodes.
List<SkinNode> metaInfSkinNodes = new ArrayList<SkinNode>();
for (SkinsNode skinsNode : metaInfSkinsNodeList)
{
metaInfSkinNodes.addAll(skinsNode.getSkinNodes());
}
----------------
addAll (from its doc) assumes that supplied collection is non-null. The
supplier does not guarantee this, so we will need some defensive code here to
avoid the NPE.
Will provide a patch.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira