title: JSPG0122E: Unable to parse EL function in Websphere 8
body: <p>I am moving a web application from Websphere 6.1 to Websphere 8, and I am encountering the following error in one of my <code>JSP</code> pages:  </p>
  
  <blockquote>
    <p>com.ibm.ws.jsp.translator.JspTranslationException: JSPG0227E: Exception caught while translating /jsp/myJsp.jsp:  /jsp/myJsp.jsp(863,4) --> JSPG0122E: Unable to parse EL function ${not empty rowVo.operation.package}.  at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateElFunction(ELValidator.java:500) at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateELExpression(ELValidator.java:122)   at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateELExpression(ELValidator.java:149)   at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.validateCustomTagAttribute(ValidateVisitor.java:1757)    at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.validateCustomTagAttributeValues(ValidateVisitor.java:1405)  at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.visitCustomTagStart(ValidateVisitor.java:294)    at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:366)  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)    at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)    at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)  at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)    at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:234)  at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:216)  at com.ibm.ws.jsp.translator.JspTranslator.processVisitors(JspTranslator.java:127)  at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJsp(JspTranslatorUtil.java:254)   at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJspAndCompile(JspTranslatorUtil.java:121)</p>
  </blockquote>
  
  <p>The offending section in the <code>JSP</code> file looks like this:  </p>
  
  <pre><code>&lt;c:forEach var="rowVo"
    items="${searchResultContainer.searchResultRowsPage}"
    varStatus="opStatus"&gt;
      &lt;c:if test="${not empty rowVo.operation.jobscopeDescription}"&gt;
          &lt;td&gt;${rowVo.operation.jobscopeDescription}&lt;/td&gt;
      &lt;/c:if&gt;
      &lt;c:if test="${not empty rowVo.operation.package}"&gt;
          &lt;td&gt;${rowVo.operation.package}&lt;/td&gt;
      &lt;/c:if&gt;
  &lt;/c:forEach&gt;
  </code></pre>
  
  <p>What is really confusing me is that the exception is thrown from the third <code>EL</code> expression, when the second is almost identical.  </p>
  
  <p><code>Operation</code> is a generated class:  </p>
  
  <pre><code>public class Operation {
  
      //Other properties omitted
  
      @XmlElement(name = "package")
      protected List&lt;Package&gt; _package;
      protected List&lt;String&gt; jobscopeDescription;
      public List&lt;Package&gt; getPackage() {
          if (_package == null) {
              _package = new ArrayList&lt;Package&gt;();
          }
          return this._package;
      }    
      public List&lt;String&gt; getJobscopeDescription() {
          if (jobscopeDescription == null) {
              jobscopeDescription = new ArrayList&lt;String&gt;();
          }
          return this.jobscopeDescription;
      }
  }
  </code></pre>
  
  <p>These files have not changed during the migration, and worked fine on WAS 6.1. Does anyone have a clue what is wrong here?</p>