title: JSF 1.2 on JBoss 6 and EL expression not being resolved
body: <p>I have been hitting my head against the wall with this one for few hours already and I dont have a clue why this is happening...</p>
  
  <p>Recently we have began process of moving from JBoss 4.2.3 to JBoss 6 Final. We are using JSF 1.2. I have sucessfully adapted application to new JBoss (mostly by removing some JARs from WEB-INF/lib and tunning web.xml a bit) and app starts nicely.</p>
  
  <p>The problem is that some EL expressions are not being resolved, while others do. I also get 0 exceptions or warnings in the logs.</p>
  
  <p>I have a bean called "mapContext" which is defined in one of the JSF xml config files. It is being created just fine. On my JSF page I have:</p>
  
  <pre><code>&lt;h:inputHidden id="mapContextId" value="#{mapContext.webContextId}" /&gt;   
  </code></pre>
  
  <p>and in the rendered page it becomes:</p>
  
  <pre><code>&lt;input id="mapForm:mapContextId" type="hidden" name="mapForm:mapContextId" value="#{mapContext.webContextId}" /&gt;
  </code></pre>
  
  <p>As you can see, JSF tag is rendered just fine, but EL is not interpreted.</p>
  
  <p>There are no logs in the server.log indicating any problems.</p>
  
  <p>JSF 1.2, JSTL 1.2, Jboss 6, JDK 6.</p>
  
  <p>Web.xml:</p>
  
  <pre><code>    &lt;context-param&gt;
      &lt;param-name&gt;org.jboss.jbossfaces.JSF_CONFIG_NAME&lt;/param-name&gt;
      &lt;param-value&gt;Mojarra-1.2&lt;/param-value&gt;
  &lt;/context-param&gt;
  </code></pre>
  
  <p>Any help would be greatly appreciated!</p>
  
  <hr>
  
  <p>More details:</p>
  
  <p>Well I have doublechecked my code and configuration. Also I have added some logging to the Custom Variable Resolver I am using, to see what beans are used by JSF. Results are weird.</p>
  
  <p>First of all I have enhanced my JSF page with different outputs, and it now looks like this:</p>
  
  <pre><code>    &lt;h:inputHidden id="mapContextId1" value="#{mapContext}" /&gt;
  &lt;h:inputHidden id="mapContextId2" value="#{selectionPointSymbol.width}" /&gt;    
  &lt;h:inputHidden id="mapContextId" value="#{mapContext.webContextId}" /&gt;    
  &lt;h:inputHidden id="mapContextId3" value="#{selectionPointSymbol4.width}" /&gt;
  </code></pre>
  
  <p>and is rendered as:</p>
  
  <pre><code>&lt;input type="hidden" name="mapForm" value="mapForm" /&gt;
  &lt;input id="mapForm:mapContextId1" type="hidden" name="mapForm:mapContextId1" value="#{mapContext}" /&gt;
  &lt;input id="mapForm:mapContextId2" type="hidden" name="mapForm:mapContextId2" value="#{selectionPointSymbol.width}" /&gt;
  &lt;input id="mapForm:mapContextId" type="hidden" name="mapForm:mapContextId" value="#{mapContext.webContextId}" /&gt;
  &lt;input id="mapForm:mapContextId3" type="hidden" name="mapForm:mapContextId3" value="#{selectionPointSymbol4.width}" /&gt;
  </code></pre>
  
  <p>I checked the logs and I can see that mapContext is being resolved just fine by non-standard JSF tags:</p>
  
  <pre><code>12:27:24,911 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver asked to resolve: mapContext
  12:27:24,911 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver delegated to: com.sun.faces.el.ChainAwareVariableResolver@ab4f3c and resulted with: mb.ags.adf.map.MbWebContext@20
  12:27:24,927 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver asked to resolve: mapContext
  12:27:24,927 ERROR [mb.ags.adf.resolvers.AGSUserResolver] AGSUserResolver delegated to: com.sun.faces.el.ChainAwareVariableResolver@ab4f3c and resulted with: mb.ags.adf.map.MbWebContext@20
  </code></pre>
  
  <p>(lots of them in the logs).</p>
  
  <p>But there is no single log about: selectionPointSymbol or selectionPointSymbol4 (no such bean defined at all!), which are only used in standard  tags.</p>
  
  <p>Still no errors or warnings in the server log :(</p>
  
  <hr>
  
  <p>More details: simple test.</p>
  
  <p>JSF page:</p>
  
  <pre><code>&lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&gt;
  &lt;%@ page import="java.util.*" %&gt;
  &lt;%@ page buffer="96kb" autoFlush="true" %&gt;
  &lt;%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%&gt;
  &lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt;
  &lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;
  
  &lt;f:view&gt;
  &lt;f:loadBundle basename="mb.ags.res.AGSClient" var="msg"/&gt;
  &lt;html&gt;
  &lt;head&gt;
  &lt;title&gt;*********&lt;/title&gt;
  &lt;link rel="stylesheet" title="base" href="/gis/css/base-style.css" type="text/css" media="screen" /&gt;
  &lt;style type="text/css"&gt;
    body { overflow:auto; }
  &lt;/style&gt;
  &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;
  &lt;/head&gt;
  &lt;body&gt;
  
  &lt;div id="loading_table_container" style="position:absolute; text-align:center; left:0; top:0; width:100%; height:100%; z-index:20000; background-color:white;"&gt;
      &lt;table id="loading" style="z-index:20001;" height="100%" width="100%"&gt;
          &lt;tr&gt;
              &lt;td align="center" valign="middle" style="font-size: 12px"&gt;
                  &lt;img src="/gis/images/loading_big.gif" alt="Loading..." align="absmiddle"/&gt;&lt;br/&gt;&lt;br/&gt;
                  &lt;h:outputText value="#{msg.welcome_page_map_client_loading}"/&gt;
                  &lt;h:outputText id="mapContextId2" value="#{selectionPointSymbol.width}" /&gt;
              &lt;/td&gt;
          &lt;/tr&gt;
      &lt;/table&gt;
  &lt;/div&gt;        
  
  &lt;script&gt;
      var url = "&lt;%= redirectUrl %&gt;";
      var refresh = "&lt;meta http-equiv=\"refresh\" content=\"1000; URL=" + url + "\" /&gt;";
      document.writeln(refresh);
  &lt;/script&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  &lt;/f:view&gt;
  </code></pre>
  
  <p>is rendered as:</p>
  
  <pre><code>&lt;html&gt;
    &lt;head&gt;
      &lt;title&gt;GIS&lt;/title&gt;
  
      &lt;link rel="stylesheet" title="base" href="/gis/css/base-style.css" type="text/css" media="screen" /&gt;
      &lt;style type="text/css"&gt;
        body { overflow:auto; }
      &lt;/style&gt;
      &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;
      &lt;script type="text/javascript" language="javascript" src="/gis/js/prototype.js"&gt;&lt;/script&gt;  
      &lt;script type="text/javascript" language="javascript" src="/gis/js/scriptaculous/scriptaculous.js?load=effects"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" language="javascript" src="/gis/js/ext/ext-prototype-adapter.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" language="javascript" src="/gis/js/ext/ext-all.js"&gt;&lt;/script&gt;
  
      &lt;script type="text/javascript" language="javascript" src="/gis/js/mb_errors.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" language="Javascript" src="/gis/js/esri_core.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" language="Javascript" src="/gis/js/mapviewer.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" language="javascript" src="/gis/js/ExternalClient.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" language="Javascript" src="/gis/js/index_init.js"&gt;&lt;/script&gt;
    &lt;/head&gt;
  
    &lt;body&gt;
  
      &lt;div id="loading_table_container" style="position:absolute; text-align:center; left:0; top:0; width:100%; height:100%; z-index:20000; background-color:white;"&gt;
          &lt;table id="loading" style="z-index:20001;" height="100%" width="100%"&gt;
              &lt;tr&gt;
                  &lt;td align="center" valign="middle" style="font-size: 12px"&gt;
                      &lt;img src="/gis/images/loading_big.gif" alt="Loading..." align="absmiddle"/&gt;&lt;br/&gt;&lt;br/&gt;
                      #{msg.welcome_page_map_client_loading}&lt;span id="mapContextId2"&gt;#{selectionPointSymbol.width}&lt;/span&gt;
  
  
                  &lt;/td&gt;
              &lt;/tr&gt;
          &lt;/table&gt;
      &lt;/div&gt;        
  
      &lt;script&gt;
          var url = "/gis/mapviewer.jsf?msid=1000005&amp;uid=1&amp;cid=1&amp;mapContextId=1";
          var refresh = "&lt;meta http-equiv=\"refresh\" content=\"1000; URL=" + url + "\" /&gt;";
          document.writeln(refresh);
      &lt;/script&gt;
    &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Still no clue what is happening, as there are no logs indicating any problems.</p>