<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
  <title>jsf / facelets / jstl</title>
  <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_category?p_l_id=39899&amp;categoryId=44393" />
  <subtitle />
  <entry>
    <title>RE: Facelet compilation error handling in portlet</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44652" />
    <author>
      <name>Artur Vilsov</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44652</id>
    <updated>2010-08-05T07:13:12Z</updated>
    <published>2010-08-05T07:11:28Z</published>
    <summary type="html">This bug is fixed in current trunk - Mojarra 2.1.0&lt;br /&gt;&lt;br /&gt;But I think the first release of bridge will not support 2.1 version :-(</summary>
    <dc:creator>Artur Vilsov</dc:creator>
    <dc:date>2010-08-05T07:11:28Z</dc:date>
  </entry>
  <entry>
    <title>RE: Facelet compilation error handling in portlet</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44648" />
    <author>
      <name>Artur Vilsov</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44648</id>
    <updated>2010-08-04T07:12:50Z</updated>
    <published>2010-08-04T07:12:50Z</published>
    <summary type="html">&lt;div class='quote-title'&gt;Neil Griffin:&lt;/div&gt;&lt;div class='quote'&gt;&lt;div class='quote-content'&gt;I think this might be a case of Mojarra swallowing an exception, and perhaps they should be logging it. Would you agree? If so, then you can create an issue for the Mojarra team at Oracle here: https://javaserverfaces.dev.java.net/issues/&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Post this issue to mojarra team:&lt;br /&gt;https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1759</summary>
    <dc:creator>Artur Vilsov</dc:creator>
    <dc:date>2010-08-04T07:12:50Z</dc:date>
  </entry>
  <entry>
    <title>Facelet compilation error handling in portlet</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44632" />
    <author>
      <name>Artur Vilsov</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44632</id>
    <updated>2010-08-03T08:06:52Z</updated>
    <published>2010-08-03T08:06:52Z</published>
    <summary type="html">Environment: Liferay 6.0.4, Jsf 2.0.3, Bridge ALPHA4&lt;br /&gt;&lt;br /&gt;After creating one simple facelet, I made a  mistake and did not put a closing span tag after the opening.&lt;br /&gt;&lt;br /&gt;It took me about half a day to understand why my portlet brokes, because in stack-trace I only see this.&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;2&lt;/span&gt;07:33:26,109 ERROR [jsp:154] java.lang.IllegalArgumentException: null source&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp; &amp;nbsp; at java.util.EventObject.&amp;lt;init&amp;gt;(EventObject.java:38)&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.faces.event.SystemEvent.&amp;lt;init&amp;gt;(SystemEvent.java:67)&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.faces.event.ComponentSystemEvent.&amp;lt;init&amp;gt;(ComponentSystemEvent.java:69)&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.faces.event.PostRestoreStateEvent.&amp;lt;init&amp;gt;(PostRestoreStateEvent.java:69)&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:256)&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:245)&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)&lt;br /&gt;&lt;span class='code-lines'&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)&lt;br /&gt;&lt;span class='code-lines'&gt;11&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)&lt;br /&gt;&lt;span class='code-lines'&gt;12&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.portletfaces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:221)&lt;br /&gt;&lt;span class='code-lines'&gt;13&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.portletfaces.bridge.GenericFacesPortlet.doView(GenericFacesPortlet.java:194)&lt;br /&gt;&lt;span class='code-lines'&gt;14&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)&lt;br /&gt;&lt;span class='code-lines'&gt;15&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)&lt;br /&gt;&lt;span class='code-lines'&gt;16&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101)&lt;br /&gt;&lt;span class='code-lines'&gt;17&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)&lt;br /&gt;&lt;span class='code-lines'&gt;18&lt;/span&gt;&amp;nbsp; &amp;nbsp; at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)&lt;br /&gt;&lt;span class='code-lines'&gt;19&lt;/span&gt;&amp;nbsp; &amp;nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)&lt;br /&gt;&lt;span class='code-lines'&gt;20&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)&lt;br /&gt;&lt;span class='code-lines'&gt;21&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;&lt;span class='code-lines'&gt;22&lt;/span&gt;&amp;nbsp; &amp;nbsp; at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;	&lt;br /&gt;	&lt;br /&gt;After debugging with Jsf-sources I found that RuntimeException of type javax.faces.view.facelets.FaceletException: Error parsing ....&lt;br /&gt; is created after a call:&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;1&lt;/span&gt;ViewMetadata metadata = vdl.getViewMetadata(facesContext, viewId);&lt;/div&gt;&lt;br /&gt;in RestoreViewPhase.class&lt;br /&gt;&lt;br /&gt;which executes line&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;1&lt;/span&gt;Facelet f = faceletFactory.getMetadataFacelet(result.getViewId());&lt;/div&gt;&lt;br /&gt;in ViewMetadataImpl.class&lt;br /&gt;&lt;br /&gt;This call is actually executing this line in DefaultFaceletsFactory.class:&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;1&lt;/span&gt;FaceletHandler h = this.compiler.metadataCompile(url, alias);&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;During execution of this line exception is thrown and than catched in DefaultFaceletCache.class in method:&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;2&lt;/span&gt;public DefaultFacelet getFacelet(URL url) throws IOException {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; DefaultFacelet f = null;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; try {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;f =&amp;nbsp; _faceletCache.get(url).getFacelet();&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; } catch (ExecutionException e) {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;_unwrapIOException(e);&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; return f;&lt;br /&gt;&lt;span class='code-lines'&gt;10&lt;/span&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And then rethrown as RuntimeException in this DefaultFaceletCache.class method:&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;2&lt;/span&gt;private void _unwrapIOException(ExecutionException e) throws IOException {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; Throwable t = e.getCause();&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (t instanceof IOException) {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;throw (IOException)t;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (t instanceof RuntimeException) {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;throw (RuntimeException)t;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;span class='code-lines'&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; throw new FacesException(t);&lt;br /&gt;&lt;span class='code-lines'&gt;11&lt;/span&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Then this exception is returning to RestoreViewPhase.class, but stays uncatched there, so the execution is going to the finally block to line&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;1&lt;/span&gt;deliverPostRestoreStateEvent(facesContext);&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Which then causes the null exception due to ViewRoot is null.&lt;br /&gt;&lt;br /&gt;I wonder, is there a way to catch those kind of errors and display error description in porltet body, without the need to debug JSF sources?&lt;br /&gt;Because during development, it is easy to make some mistakes in xhtml markup of facelet and then it is hard to find what line causes the error.</summary>
    <dc:creator>Artur Vilsov</dc:creator>
    <dc:date>2010-08-03T08:06:52Z</dc:date>
  </entry>
  <entry>
    <title>RE: More JSTL features in facelets ?</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44627" />
    <author>
      <name>Artur Vilsov</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44627</id>
    <updated>2010-08-03T06:02:13Z</updated>
    <published>2010-08-03T06:02:13Z</published>
    <summary type="html">What about &amp;lt;portlet:actionUrl/&amp;gt;, &amp;lt;portlet:defineObjects/&amp;gt; and other useful standard portlet tags in faceletes? Is there any analogous to these tags in faceletes environment?</summary>
    <dc:creator>Artur Vilsov</dc:creator>
    <dc:date>2010-08-03T06:02:13Z</dc:date>
  </entry>
  <entry>
    <title>RE: More JSTL features in facelets ?</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44415" />
    <author>
      <name>Petar Banicevic</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44415</id>
    <updated>2010-07-27T21:09:16Z</updated>
    <published>2010-07-27T21:09:16Z</published>
    <summary type="html">I wonder why did I ask this question and what&amp;#039;s happening to me ....  &lt;img alt='emoticon' src='http://www.portletfaces.org/portletfaces-theme/images/emoticons/wacko.gif' /&gt;   Sure I use setPropertyActionListener ....</summary>
    <dc:creator>Petar Banicevic</dc:creator>
    <dc:date>2010-07-27T21:09:16Z</dc:date>
  </entry>
  <entry>
    <title>More JSTL features in facelets ?</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44382" />
    <author>
      <name>Petar Banicevic</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=44382</id>
    <updated>2010-07-27T12:13:22Z</updated>
    <published>2010-07-27T12:13:22Z</published>
    <summary type="html">Hello all !&lt;br /&gt;&lt;br /&gt;Maybe this isn&amp;#039;t best place to ask about JSTL and Facelets, but I count on your tolerance ;) - &lt;br /&gt;&lt;br /&gt;Is there any newer version of &lt;br /&gt;&lt;br /&gt;com.sun.faces.facelets.tag.jstl.core  that would let me do this:&lt;br /&gt;&lt;br /&gt;			&amp;lt;c:set var=&amp;#034;userId&amp;#034; value=&amp;#034;#{jobOffersModel.getSelectedJobOffer().getUserId()}&amp;#034; /&amp;gt;&lt;br /&gt;			&amp;lt;c:set target=&amp;#034;#{vjfUserActionsModel}&amp;#034; property=&amp;#034;userId&amp;#034; value=&amp;#034;#{userId}&amp;#034; /&amp;gt; &lt;br /&gt;&lt;br /&gt;as for now c:set target is not supported...&lt;br /&gt;&lt;br /&gt;Thanks to jobss I can do &lt;br /&gt;&lt;br /&gt;#{vjfUserActionsModel.setUserId(jobOffersModel.getSelectedJobOffer().getUserId())} but I was &lt;br /&gt;&lt;br /&gt;wondering whether there is something else ?&lt;br /&gt;&lt;br /&gt;Is there a good forum for JBoss EL and/or facelet questions... ?</summary>
    <dc:creator>Petar Banicevic</dc:creator>
    <dc:date>2010-07-27T12:13:22Z</dc:date>
  </entry>
</feed>

