tiles-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Saminda Abeyruwan" <samin...@gmail.com>
Subject Bug in resolving locale
Date Wed, 20 Feb 2008 16:23:41 GMT
Hi Devs,

I'm using Tiles2 2.0.5  on top of an environment written in Embedded Tomcat
5.5.15.

I've a layout exactly as the samples are showing and in my index.jsp, i did
the following,

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>

<tiles:insertDefinition name="main.layout" />

which leads to following exception.
==================================================
ERROR [2008-02-20 20:44:20,564]  Error executing tag: I/O error processing
configuration.
org.apache.tiles.definition.DefinitionsFactoryException: I/O error
processing configuration.
        at org.apache.tiles.definition.UrlDefinitionsFactory.addDefinitions(
UrlDefinitionsFactory.java:256)
        at org.apache.tiles.definition.UrlDefinitionsFactory.getDefinition(
UrlDefinitionsFactory.java:167)
        at org.apache.tiles.impl.BasicTilesContainer.getDefinition(
BasicTilesContainer.java:513)
        at org.apache.tiles.impl.BasicTilesContainer.render(
BasicTilesContainer.java:387)
        at org.apache.tiles.impl.BasicTilesContainer.render(
BasicTilesContainer.java:370)
        at org.apache.tiles.jsp.taglib.InsertDefinitionTag.render(
InsertDefinitionTag.java:63)
        at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(
RenderTagSupport.java:171)
        at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(
RoleSecurityTagSupport.java:75)
        at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(
ContainerTagSupport.java:80)
        at org.apache.jsp.main_jsp._jspx_meth_tiles_insertDefinition_0(
org.apache.jsp.main_jsp:82)
        at org.apache.jsp.main_jsp._jspService(org.apache.jsp.main_jsp:53)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:332)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(
JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
===========================================

When  I debug the code, following problems are found in
org.apache.tiles.definition.UrlDefinitionsFactory

[1]. Go to line 165, if (!isContextProcessed(tilesContext)) {...

      This line check if the locales are  resolved.  At the initial loading
locales are not processed.

[2]. Thus, this will execute the line 167, addDefinitions(definitions,
tilesContext), where the top part will add the locale to  processedLocales
List.

[3]. After that it will load the "sources". Each will create an URL newUrl =
new URL(newPath); and loads.  This sources are simply tiles_defs.xml s that
I've listed in the web.xml.

[4]. When I debug more I found out that "newPath" contains a URL as for
example, "jndi:/localhost/WEB-INF/tiles_defs.xml". When protocols like jndi
is used, URL object should be given with a URLStreamHandler. This caused the
above exception.

So the above "jndi" cause the problem.  At the moment I've written a
URLStreamHandler and tweak the 2.0.5 code to fix the bug.

I would love to send a patch for this.  But due to my lack of experience
with Tiles 2 code, my tweak wouldn't be the optimum solution. Shall I create
a JIRA for this issue.

Thank you

Saminda


-- 
Saminda Abeyruwan

Senior Software Engineer
WSO2 Inc. - www.wso2.org

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message