13 Replies Latest reply on Nov 15, 2007 8:12 AM by pmuir

    Custom Converter

    terryb

      I have simple jsf converter, which works fine and throws ConverterException(facesMsg) exception when conversion failes.

      However, when exception is thrown Seam debug page comes up rather than faces message being show on jsf page using h:messages tag ?

      MyConverter.java
      ...
      if (conversionFailed) {
       FacesMessage facesMsg = new FacesMessage("Conversion error.", String.format("Invalid member status %s.", ((String) value)));
       facesMsg.setSeverity(FacesMessage.SEVERITY_ERROR);
       FacesMessages.instance().add(facesMsg);
      
       throw new ConverterException(facesMsg);
      }
      
      
      JSF Page
      ...
      <h:messages id="globalMessages" globalOnly="true" layout="table" errorClass="message-error" infoClass="message-info"/>
      ...
      ...
      <s:span id="source">
       <h:outputText value="#{clientHome.instance.source}" converter="#{onlineConverters.memberSource}"></h:outputText>
      </s:span>
      ...
      
      


        • 1. Re: Custom Converter
          pmuir

          You need to use @BypassInterceptors on the Converter.

          • 2. Re: Custom Converter
            terryb

            Pete does it exist in seam 1.2.1GA? Seems it can't find it.

            • 3. Re: Custom Converter

              In 1.2.1GA it is something like:

              @Intercept(NEVER)

              • 4. Re: Custom Converter
                terryb

                No luck for me yet, its still going to seam debug page. please see my code below...


                @Name("onlineConverters")
                @Scope(ScopeType.APPLICATION)
                public class Converters {
                
                 private Converter memberSource;
                
                 @Create
                 public void init() {
                 this.memberSource = new MemberSource();
                 }
                
                 public Converter getMemberSource() {
                 return this.memberSource;
                 }
                 
                 @Intercept(InterceptionType.NEVER)
                 public class MemberSource implements Converter {
                
                
                 ...
                 if (conversionFailed) {
                 FacesMessage facesMsg = new FacesMessage("Conversion error.", String.format("Invalid member status %s.", ((String) value)));
                 facesMsg.setSeverity(FacesMessage.SEVERITY_ERROR);
                 FacesMessages.instance().add(facesMsg);
                
                 throw new ConverterException(facesMsg);
                 }
                 ...
                 }
                 ...
                }
                
                
                Seam Debug Page
                - Exception
                Exception during request processing: javax.servlet.ServletException: Conversion error.
                javax.faces.webapp.FacesServlet.service(FacesServlet.java:249)
                org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                ...
                ...
                13:36:39,887 ERROR [DebugPageHandler] redirecting to debug page
                javax.faces.convert.ConverterException: Conversion error.
                at au.edu.tisc.session.Converters$MemberSource.getAsString(Converters.java:61)
                at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                
                



                • 5. Re: Custom Converter
                  terryb

                  In addition to my last post, I have not added as below but still it goes to debug page.

                  Can it be because my converter class is actually a subclass? (please code in previous post).

                  
                  @org.jboss.seam.annotations.jsf.Converter
                  @Intercept(InterceptionType.NEVER)
                  public class MemberSource implements Converter {
                  ...
                  }
                  


                  • 6. Re: Custom Converter
                    terryb

                    correction in last post "...I have now added @org.jboss.seam.annotations.jsf.Converter...'

                    • 7. Re: Custom Converter
                      pmuir

                      Ok, start again from the beginning, post all the code relevant to the converter, including class level annotations and any wiring code you use, the xhtml your using to test it and the exception thrown.

                      • 8. Re: Custom Converter
                        terryb

                        please let me know if need further info. my xhtml file is pretty big so I have only pasted relevent sections.

                        Converts class
                        package au.edu.tisc.session;

                        import javax.faces.application.FacesMessage;
                        import javax.faces.component.UIComponent;
                        import javax.faces.context.FacesContext;
                        import javax.faces.convert.Converter;
                        import javax.faces.convert.ConverterException;

                        import org.jboss.seam.InterceptionType;
                        import org.jboss.seam.ScopeType;
                        import org.jboss.seam.annotations.Create;
                        import org.jboss.seam.annotations.Intercept;
                        import org.jboss.seam.annotations.Name;
                        import org.jboss.seam.annotations.Scope;
                        import org.jboss.seam.core.FacesMessages;

                        @Name("onlineConverters")
                        @Scope(ScopeType.APPLICATION)
                        public class Converters {

                        private Converter memberSource;

                        @Create
                        public void init() {
                        this.memberSource = new MemberSource();
                        }


                        public Converter getMemberSource() {
                        return this.memberSource;
                        }


                        public void setMemberSource(Converter memberSource) {
                        this.memberSource = memberSource;
                        }


                        @org.jboss.seam.annotations.jsf.Converter
                        @Intercept(InterceptionType.NEVER)
                        public class MemberSource implements Converter {

                        @Override
                        public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value) throws ConverterException {
                        return value;
                        }

                        @Override
                        public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) throws ConverterException {

                        String convertedValue = "";

                        if (Constant.Member.Source.ONLINE.equalsIgnoreCase((String)value)) {
                        convertedValue = "Online";
                        } else if (Constant.Member.Source.QTISC.equalsIgnoreCase((String)value)) {
                        convertedValue = "QTISC";
                        } else if (Constant.Member.Source.CURRICULUM_COUNCIL_RESULT.equalsIgnoreCase((String)value)) {
                        convertedValue = "CC Year11";
                        } else {

                        FacesMessage facesMsg = new FacesMessage("Converstion error.", String.format("Invalid member status %s.", ((String) value)));
                        facesMsg.setSeverity(FacesMessage.SEVERITY_ERROR);
                        FacesMessages.instance().add(facesMsg);
                        throw new ConverterException(facesMsg); <-- exception thrown here...
                        }
                        return convertedValue;
                        }
                        }
                        }

                        XHTML bits
                        ...

                        <h:messages id="globalMessages" globalOnly="true" layout="table" errorClass="message-error" infoClass="message-info"/>

                        ...
                        <h:panelGroup>Source</h:panelGroup>
                        <s:span id="source">
                        <h:outputText value="#{clientHome.instance.source}" converter="#{onlineConverters.memberSource}"></h:outputText>
                        </s:span>
                        ...

                        Exception
                        21:02:36,578 ERROR [STDERR] 6/11/2007 21:02:36 com.sun.facelets.FaceletViewHandler handleRenderException
                        SEVERE: Error Rendering View[/client.xhtml]
                        javax.faces.convert.ConverterException: Converstion error.
                        at au.edu.tisc.session.Converters$MemberSource.getAsString(Converters.java:64)
                        at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                        at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:322)
                        at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
                        at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
                        at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
                        at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:276)
                        at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
                        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
                        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                        at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
                        at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                        at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
                        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                        at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                        at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                        at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                        at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                        at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                        at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                        at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
                        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                        at java.lang.Thread.run(Thread.java:619)

                        • 9. Re: Custom Converter
                          terryb

                          please let me know if need further info. my xhtml file is pretty big so I have only pasted relevent sections.

                          Converts class
                          package au.edu.tisc.session;

                          import javax.faces.application.FacesMessage;
                          import javax.faces.component.UIComponent;
                          import javax.faces.context.FacesContext;
                          import javax.faces.convert.Converter;
                          import javax.faces.convert.ConverterException;

                          import org.jboss.seam.InterceptionType;
                          import org.jboss.seam.ScopeType;
                          import org.jboss.seam.annotations.Create;
                          import org.jboss.seam.annotations.Intercept;
                          import org.jboss.seam.annotations.Name;
                          import org.jboss.seam.annotations.Scope;
                          import org.jboss.seam.core.FacesMessages;

                          @Name("onlineConverters")
                          @Scope(ScopeType.APPLICATION)
                          public class Converters {

                          private Converter memberSource;

                          @Create
                          public void init() {
                          this.memberSource = new MemberSource();
                          }


                          public Converter getMemberSource() {
                          return this.memberSource;
                          }


                          public void setMemberSource(Converter memberSource) {
                          this.memberSource = memberSource;
                          }


                          @org.jboss.seam.annotations.jsf.Converter
                          @Intercept(InterceptionType.NEVER)
                          public class MemberSource implements Converter {

                          @Override
                          public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value) throws ConverterException {
                          return value;
                          }

                          @Override
                          public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) throws ConverterException {

                          String convertedValue = "";

                          if (Constant.Member.Source.ONLINE.equalsIgnoreCase((String)value)) {
                          convertedValue = "Online";
                          } else if (Constant.Member.Source.QTISC.equalsIgnoreCase((String)value)) {
                          convertedValue = "QTISC";
                          } else if (Constant.Member.Source.CURRICULUM_COUNCIL_RESULT.equalsIgnoreCase((String)value)) {
                          convertedValue = "CC Year11";
                          } else {

                          FacesMessage facesMsg = new FacesMessage("Converstion error.", String.format("Invalid member status %s.", ((String) value)));
                          facesMsg.setSeverity(FacesMessage.SEVERITY_ERROR);
                          FacesMessages.instance().add(facesMsg);
                          throw new ConverterException(facesMsg); <-- exception thrown here...
                          }
                          return convertedValue;
                          }
                          }
                          }

                          XHTML bits
                          ...

                          <h:messages id="globalMessages" globalOnly="true" layout="table" errorClass="message-error" infoClass="message-info"/>

                          ...
                          <h:panelGroup>Source</h:panelGroup>
                          <s:span id="source">
                          <h:outputText value="#{clientHome.instance.source}" converter="#{onlineConverters.memberSource}"></h:outputText>
                          </s:span>
                          ...

                          Exception
                          21:02:36,578 ERROR [STDERR] 6/11/2007 21:02:36 com.sun.facelets.FaceletViewHandler handleRenderException
                          SEVERE: Error Rendering View[/client.xhtml]
                          javax.faces.convert.ConverterException: Converstion error.
                          at au.edu.tisc.session.Converters$MemberSource.getAsString(Converters.java:64)
                          at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                          at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:322)
                          at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
                          at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
                          at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
                          at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:276)
                          at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
                          at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
                          at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                          at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                          at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
                          at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                          at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
                          at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                          at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                          at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                          at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                          at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                          at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                          at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                          at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                          at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                          at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                          at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                          at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                          at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                          at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
                          at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                          at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                          at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                          at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                          at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                          at java.lang.Thread.run(Thread.java:619)

                          • 10. Re: Custom Converter
                            pmuir

                            Try

                            @org.jboss.seam.annotations.jsf.Converter
                            @Intercept(InterceptionType.NEVER)
                            @Name("memberSourceConverter")
                            public class MemberSource implements Converter {
                            
                             @Override
                             public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value) throws ConverterException {
                             return value;
                             }
                            
                             @Override
                             public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) throws ConverterException {
                             String convertedValue = "";
                             if (Constant.Member.Source.ONLINE.equalsIgnoreCase((String)value)) {
                             convertedValue = "Online";
                             } else if (Constant.Member.Source.QTISC.equalsIgnoreCase((String)value)) {
                             convertedValue = "QTISC";
                             } else if (Constant.Member.Source.CURRICULUM_COUNCIL_RESULT.equalsIgnoreCase((String)value)) {
                             convertedValue = "CC Year11";
                             } else {
                             FacesMessage facesMsg = new FacesMessage("Converstion error.", String.format("Invalid member status %s.", ((String) value)));
                             facesMsg.setSeverity(FacesMessage.SEVERITY_ERROR);
                             FacesMessages.instance().add(facesMsg);
                             throw new ConverterException(facesMsg); <-- exception thrown here...
                             }
                             return convertedValue;
                            }


                            <h:outputText value="#{clientHome.instance.source}" converter="memberSourceConverter"></h:outputText>


                            • 11. Re: Custom Converter
                              terryb

                              Pete, thanks for taking interest. no luck yet though. still going to seam debug page when exception is thrown.
                              new code below as you suggested. this time I have attached all exception messages. For info, I'm using seam 1.2.1GA RHDS beta2 setup.

                              package au.edu.tisc.converter;
                              
                              import javax.faces.application.FacesMessage;
                              import javax.faces.component.UIComponent;
                              import javax.faces.context.FacesContext;
                              import javax.faces.convert.Converter;
                              import javax.faces.convert.ConverterException;
                              
                              import org.jboss.seam.InterceptionType;
                              import org.jboss.seam.annotations.Intercept;
                              import org.jboss.seam.annotations.Name;
                              import org.jboss.seam.core.FacesMessages;
                              
                              import au.edu.tisc.session.Constant;
                              
                              @org.jboss.seam.annotations.jsf.Converter
                              @Intercept(InterceptionType.NEVER)
                              @Name("memberSourceConverter")
                              public class MemberSourceConverter implements Converter {
                              
                               @Override
                               public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value) throws ConverterException {
                               return value;
                               }
                              
                               @Override
                               public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) throws ConverterException {
                              
                               String convertedValue = "";
                               if (Constant.Member.Source.ONLINE.equalsIgnoreCase((String)value)) {
                               convertedValue = "Online";
                               } else if (Constant.Member.Source.QTISC.equalsIgnoreCase((String)value)) {
                               convertedValue = "QTISC";
                               } else if (Constant.Member.Source.CURRICULUM_COUNCIL_RESULT.equalsIgnoreCase((String)value)) {
                               convertedValue = "CC Year11";
                               } else {
                               FacesMessage facesMsg = new FacesMessage("Converstion error.", String.format("Invalid member status %s.", ((String) value)));
                               facesMsg.setSeverity(FacesMessage.SEVERITY_ERROR);
                               FacesMessages.instance().add(facesMsg);
                               throw new ConverterException(facesMsg);
                               }
                               return convertedValue;
                               }
                              }
                              
                              xhtml
                               <h:panelGroup>Source</h:panelGroup>
                               <s:span id="source">
                               <h:outputText value="#{clientHome.instance.source}" converter="memberSourceConverter"></h:outputText>
                               </s:span>
                              
                              exception
                              22:22:45,421 ERROR [STDERR] 6/11/2007 22:22:45 com.sun.facelets.FaceletViewHandler handleRenderException
                              SEVERE: Error Rendering View[/client.xhtml]
                              javax.faces.convert.ConverterException: Converstion error.
                               at au.edu.tisc.converter.MemberSourceConverter.getAsString(MemberSourceConverter.java:40)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:322)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
                               at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:276)
                               at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
                               at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
                               at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                               at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                               at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
                               at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:619)
                              22:22:45,562 WARN [lifecycle] executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@4877c8) t
                              hrew exception
                              javax.faces.convert.ConverterException: Converstion error.
                               at au.edu.tisc.converter.MemberSourceConverter.getAsString(MemberSourceConverter.java:40)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:322)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
                               at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:276)
                               at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
                               at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
                               at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                               at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                               at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
                               at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:619)
                              22:22:45,718 ERROR [ExceptionFilter] uncaught exception
                              javax.servlet.ServletException: Converstion error.
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:249)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                               at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
                               at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:619)
                              Caused by: javax.faces.convert.ConverterException: Converstion error.
                               at au.edu.tisc.converter.MemberSourceConverter.getAsString(MemberSourceConverter.java:40)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:322)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
                               at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:276)
                               at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
                               at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
                               at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                               at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               ... 35 more
                              22:22:45,859 ERROR [ExceptionFilter] exception root cause
                              javax.faces.convert.ConverterException: Converstion error.
                               at au.edu.tisc.converter.MemberSourceConverter.getAsString(MemberSourceConverter.java:40)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:322)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
                               at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:276)
                               at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
                               at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
                               at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                               at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                               at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
                               at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:619)
                              22:22:46,093 ERROR [DebugPageHandler] redirecting to debug page
                              javax.faces.convert.ConverterException: Converstion error.
                               at au.edu.tisc.converter.MemberSourceConverter.getAsString(MemberSourceConverter.java:40)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:469)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:322)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
                               at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:836)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:279)
                               at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:276)
                               at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:242)
                               at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
                               at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
                               at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
                               at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
                               at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
                               at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
                               at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
                               at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:619)
                              
                              


                              • 12. Re: Custom Converter
                                terryb

                                Pete, do you think I should upgrade to Seam 2 to resolve this issue?

                                • 13. Re: Custom Converter
                                  pmuir

                                  Give it a go - if its still not working there, file a JIRA issue.

                                  Btw I would suggest doing a simple test with a clean seam-gen project and your converter before going through a full upgrade.