9 Replies Latest reply on Dec 8, 2008 7:58 AM by mrmagoo

    NullPointerException with SuggestionBox

    mrmagoo

      Hi all,

      I have a strange problem using the suggestion box that I am not able to solve.

      I have the following code on my page:

       <f:view>
       <h:form id="testForm">
       <h:inputText value="#{bean.property}" id="property" />
       <rich:suggestionbox id="suggestion" for="property"
       suggestionAction="#{bean.autocomplete}" ignoreDupResponses="true"
       usingSuggestObjects="true" fetchValue="#{suggest.id}"
       var="suggest" width="200" height="200">
       <h:column>
       <h:outputText value="#{suggest.id}" />
       </h:column>
       <h:column>
       <h:outputText value="#{suggest.text}" />
       </h:column>
       </rich:suggestionbox>
       </h:form>
       </f:view>
      


      Bean is a simple Test class:
      public class Bean {
       private String property;
      
       public Collection<?> autocomplete(Object event) {
      
       List<SuggestItem> result = new java.util.ArrayList<SuggestItem>();
      
       result.add(new SuggestItem("1", "Horst"));
       result.add(new SuggestItem("2", "Paul"));
      
       return result;
      
       }
      
       /**
       * @return the property
       */
       public String getProperty() {
       return property;
       }
      
       /**
       * @param property the property to set
       */
       public void setProperty(String property) {
       this.property = property;
       }
      }
      


      Everything is fine and it pops up the suggestion box as soon as I start typing.

      My goal is to immitate a combo box as I saw at
      http://livedemo.exadel.com/richfaces-demo/richfaces/suggestionBox.jsf?c=suggestionBox&tab=usage

      So I added a shmall graphic right after the input field:
       <h:inputText value="#{bean.property}" id="property" />
       <h:graphicImage value="cmb-down.png"
       onclick="#{rich:component('suggestion')}.callSuggestion(true)"/>
       <rich:suggestionbox id="suggestion" for="property"
      ...
      


      Now, when I start typing I get a NullPointerException. I could verify that my method autocomplete gets called.

      type Exception report
      
      message
      
      description The server encountered an internal error () that prevented it from fulfilling this request.
      
      exception
      
      javax.servlet.ServletException
       javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
       org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
       org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
       org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
       org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
       org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      
      root cause
      
      java.lang.NullPointerException
       org.apache.el.lang.FunctionMapperImpl$Function.writeExternal(FunctionMapperImpl.java:123)
       java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
       java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
       java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
       java.util.HashMap.writeObject(HashMap.java:1001)
       sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       java.lang.reflect.Method.invoke(Method.java:597)
       java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
       java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
       java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
       java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
       org.apache.el.lang.FunctionMapperImpl.writeExternal(FunctionMapperImpl.java:74)
       java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
       java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
       java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
       org.apache.el.ValueExpressionImpl.writeExternal(ValueExpressionImpl.java:256)
       java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
       java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
       java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
       org.apache.jasper.el.JspValueExpression.writeExternal(JspValueExpression.java:129)
       java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
       java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
       java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
       java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
       java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
       java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
       java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
       com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:244)
       javax.faces.render.ResponseStateManager.writeState(ResponseStateManager.java:155)
       org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:294)
       org.ajax4jsf.application.AjaxStateManager.writeState(AjaxStateManager.java:230)
       com.sun.faces.application.ViewHandlerImpl$WriteBehindStateWriter.flushToWriter(ViewHandlerImpl.java:897)
       com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:184)
       org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
       org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)
       com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
       com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
       com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
       javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
       org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
       org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
       org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
       org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
       org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      


      The same thing happens if I simply do an alert in the onclick event using the rich:component fragment. Doing an alert('Hi') in the onclick results in a popup of the suggestionbox.

      I even tried to update to richfaces-ui-3.2.2.SR1 had the same effect.

      I am using JBoss 4.2.2.GA.

      Any help is welcome.

        • 1. Re: NullPointerException with SuggestionBox
          ilya_shaikovsky

          could you please provide sample war file.. We've tried the same code in almost all possible configs.. jsp, facelets, on tomcat, jboss.. And still can't reproduce :(

          • 2. Re: NullPointerException with SuggestionBox
            mrmagoo

            Hi,

            I sent you an email with my eclipse project.
            Hope this helps to find the error.

            ~dirk

            • 3. Re: NullPointerException with SuggestionBox
              ilya_shaikovsky

              thanks for your efforts. will be investigated.

              https://jira.jboss.org/jira/browse/RF-4926

              • 4. Re: NullPointerException with SuggestionBox
                mrmagoo

                Well, it would be good to have a solution here.

                I continued with my investigation of the problem. My autocomplete method is called twice. The first time with the entered value, the second time with a null value.

                The log says

                16:05:28,214 DEBUG [BaseXMLFilter] XML filter service start processing request
                16:05:28,214 DEBUG [AjaxPhaseListener] Process before phase RESTORE_VIEW 1
                16:05:28,245 DEBUG [AjaxRegionBrige] Restore State of UIAjaxComponent with Id j_id_jsp_1117428609_0
                16:05:28,245 DEBUG [AjaxPhaseListener] Process after phase RESTORE_VIEW 1
                16:05:28,245 DEBUG [AjaxPhaseListener] Process before phase APPLY_REQUEST_VALUES 2
                16:05:28,245 DEBUG [RendererBase] Start decoding of component j_id_jsp_1117428609_0 with class org.ajax4jsf.component.AjaxViewRoot
                16:05:28,245 DEBUG [AjaxContainerRenderer] Decode ajax request status for j_id_jsp_1117428609_0
                16:05:28,245 DEBUG [AjaxRegionBrige] Submitted AJAX request - Queue Event to AjaxListeners
                16:05:28,245 DEBUG [RendererBase] Start decoding of component testForm:suggestion with class org.richfaces.component.html.HtmlSuggestionBox
                16:05:28,245 DEBUG [AjaxPhaseListener] Process after phase APPLY_REQUEST_VALUES 2
                16:05:28,245 DEBUG [AjaxPhaseListener] Process before phase PROCESS_VALIDATIONS 3
                16:05:28,245 DEBUG [AjaxPhaseListener] Process after phase PROCESS_VALIDATIONS 3
                16:05:28,245 DEBUG [AjaxPhaseListener] Process before phase UPDATE_MODEL_VALUES 4
                16:05:28,245 DEBUG [AjaxPhaseListener] Process after phase UPDATE_MODEL_VALUES 4
                16:05:28,245 DEBUG [AjaxPhaseListener] Process before phase INVOKE_APPLICATION 5
                16:05:28,245 DEBUG [AjaxPhaseListener] Process after phase INVOKE_APPLICATION 5
                16:05:28,245 DEBUG [AjaxPhaseListener] Process before phase RENDER_RESPONSE 6
                16:05:28,245 DEBUG [AjaxPhaseListener] PhaseListener enter Before RenderView Phase with ViewId /index.jsp and RenderKitId HTML_BASIC
                16:05:28,245 DEBUG [AjaxViewHandler] Process AJAX events to calculate areas.
                16:05:28,245 DEBUG [AjaxRegionBrige] Send Event to AjaxListeners from AjaxContainer with Id j_id_jsp_1117428609_0
                


                • 5. Re: NullPointerException with SuggestionBox
                  ilya_shaikovsky

                  also a a temporary workaround please try to define usingSuggestionObjects to false.

                  • 6. Re: NullPointerException with SuggestionBox
                    mrmagoo

                    Hi Ilya,

                    unfortunately this did not help.

                    The difference is: My autocomplete method is called only once.

                    I added a log to see what happens on the browser side. This is what I get with usingSuggestObjects=false

                    I typed the letter 'a' in both cases.

                    debug[15:23:43,320]: set timeout for request suggestion
                    debug[15:23:43,334]: Observer event occurs
                    debug[15:23:43,334]: Call data for update choices
                    debug[15:23:43,335]: Have Event [object Object] with properties: target: [object HTMLInputElement], srcElement: undefined, type: keydown
                    debug[15:23:43,335]: NEW AJAX REQUEST !!! with form :testForm
                    debug[15:23:43,336]: Append hidden control testForm with value [testForm] and value attribute [testForm]
                    debug[15:23:43,336]: Append text control testForm:property with value [a] and value attribute []
                    debug[15:23:43,336]: Append hidden control testForm:suggestion_selection with value [] and value attribute [null]
                    debug[15:23:43,337]: Append hidden control javax.faces.ViewState with value [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] and value attribute [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]
                    debug[15:23:43,337]: parameter ajaxSingle with value testForm:suggestion
                    debug[15:23:43,338]: parameter testForm:suggestion with value testForm:suggestion
                    debug[15:23:43,338]: parameter inputvalue with value a
                    debug[15:23:43,339]: Start XmlHttpRequest
                    debug[15:23:43,340]: Reqest state : 1
                    debug[15:23:43,341]: QueryString: AJAXREQUEST=j_id_jsp_1117428609_0&testForm=testForm&testForm%3Aproperty=a&testForm%3Asuggestion_selection=&javax.faces.ViewState=H4sIAAAAAAAAAL1YW2wUVRg%2Bu23thQq9IMVIydYW2mKZbum9xZRe6TbblnRLFUgs09nT3SmzM%2BPMmc4AgoVEiRIVoyQaMRA18QVe4EXfVBI1JJhIog8%2BEGJMjIlgYkjwkqjnnNm57c7SconzcHrmzH%2F%2B81%2B%2B%2Fzv%2F9vxNUKAqYIukJBh2gTXaFtR5hpVlgedYxEsiM61AGEOKxiFNgRNSHB5%2F47d3Ls%2FXFpcCYMiHAAieBbWe3ZyUkiURiojpx0szPNSnJAmBxxZm%2BfjsgirPtrS0dLZt6%2BoId8%2BGgfkEQe0Cu8gazDzLQdWlIolSAjOKhxFJSYEiBFVEZ%2BaTZxqu8Fwy58aIKGtoGhoIFMmKJEMFHQTW89Qyh%2B5UWDnJc5EUm4D%2BDrTauphlLYlpiQS2H0d1QDJAiWq%2F2kHY6G%2FP7sigJGgp0d%2BE9vT2AGhcxp1JDVmx8NXUYTtzX4Z0PjRDumxDckGLqiL4ikoJfx3dlgpDU0DlvigxiRFYMcFMzi1ADvWe%2BubZs2VqoxAkQCbh154HR3ES3LM8e1bkzHC9lFNtGuKxP6yaHGflgsIfPr%2B8bv%2B3eSA4AkoEiY2PsBySlAgoRkkFqklJiBty3w5q0iN6EVFEjkKgzh0sHc7h6mMGd09NDU9Mz85Ehp%2BZnZqcnCaHlyAQ8pOdHN81OUGkI0MxbFulY1u%2ForAHo7yKjGPXqt%2F9in0%2FDwQiIF%2FlD0HTZT0fjyHkFFaOhHQbhpyrhIlpZXZMaIQHJEmArHg1pCx9d%2BavW0EQ2AsKFllBw8cGVLKhHMhYYcno9Hh0dqA%2FFhnEL828GIcGg%2FVjbWWOF1GJYwV49I%2Fy%2FWfCf%2F4aBPkRUJTEUecwG0VBISdpIlIOIlBBc9xMLGjGlMWLid4oKCKvGq5fcmoVFl9kFZ4VEX015H%2Fxg0BwaBgPcYgA8DoSERFMQKXix3Mf3Tl2oitIwpd2xDKRyk1oqTmovHz%2BdPWqt2%2BctBCFfaTOlpKioKEOYPWb%2FYsjhlgERzFKoBJjF6Gy58qlp986c3U8CIJRUMwJrKpOsCnLjRIVy8TpHgTWmY7zUnMMYucE%2FhA7J8BeQyaBDHt5CS6Sw6YgDrWyC0cRDloWEJxAESrXm17cn%2Frywm3qhWHDvoBMKukgO9Ms%2F8h7iArUGT4F5czWuQqKzIqyaiNAllfZJ%2BTZYLV4PAciW5GbXDFyiYbV9lBBDUdm%2Bqw8EOzLMsFkjev2aza26rq%2BdR5%2F3KopAhQJ5OJy5uNDF46fNfZstR%2BtyK4tGTyVxvCFazM%2F%2F1J9eKeFqgBKQ9DeaUUdZ7ue8qXMcknILLAqDhMDBWZMlWfIjmFDxlSkYs%2FYPTevh9d%2Bsp3c4gpYb4YCS2aI6SVL%2B2589s%2BbQSpWaYs5Eh%2B%2B9Grs973XtlPr9M2gzqnihm3tTR0tjaH62sNzmA0YK21H6rGhNS5Ds8%2BNpGShpmXs1Af88SAxkfi3Q68DZZmq3EVo8rosG%2FhaKbcIrccSJSqYnPkndxHOpANsF9Ddo6PAXJQ9m9L1vmEJJ8X5bj8ZZeMVs7MJfEBU5bPmgQ6Z9ZjgKJREDgP4QDY8yJ8%2BfQyMunPU2dTZSnNEOKLH5qOGeqeE6huPMJiCXQ1MA%2B4IYWM91Tioj4K2%2B9nuzp2JdYyLTV5c0I8jmsiRbfiaxakk2LA6DdqEeuijlNJHmRmK1V6jsHpmRerrrKXhi6d3H4%2Fxt%2Bg5ej%2FIJwoxG1sazf7EYdf59D5mCi9ZSlzy7jxleW9gqiLY3Whj15fdiIpmN5DL3UCmvSqmsVIuNbc1Lum4VsREBkjlbFhGfAA2YM%2BK75Wr7cbCv2PNsd5pZF4Z6VCVzEPEJWf8Sc9EdS2ocaG6taWpo52iOg1Dho8fseBaAx71rOfikEo7Dw6WiYawO%2FhPeAHg6fHTbACsMjdfScvh9yEbwYA0XYXpw51D%2FbNJ%2Bc3pnKg3Q5KGG4GlS1%2BMNR74Ox93L0NW90Kkq60qSruSty0c9hIgPa8iB3Z8OCxT0LmXGnLdS%2BMQJaW4w%2Fx9qw6z31cpr5kX0%2BP2jZMpd7H5ysmf7rS9HkzfDv36FtDgiwB6YbAakkgVChBBev886SWCTPWEBU6c6%2Fv0uY9vT1oX0At6A1jrpy8bQDnq3EFXdvS8QTdshHxNP9y1lVphUQbuWpQdtMVv9MG8Lw21E63zblA6leln4nK9jx0wMtm%2BwipvbWrrftAqX7HHHUTvK94GYMRCvV2ZOdn0oSSp696S1Em0Jv7vJG0Cte4kdTS1t3iShHCvZaepFqzJ%2BPLAieoimt%2B770RVuXynQmvswSL99Z7%2FSkSlhPl7Ciqy%2BRsirz8a9ev7KhDYoPNxlOwJdYXDstEbSkI%2BkUQ9oVb6alkl%2FwceNpRElxMAAA%3D%3D&ajaxSingle=testForm%3Asuggestion&testForm%3Asuggestion=testForm%3Asuggestion&inputvalue=a&
                    debug[15:23:43,342]: Reqest state : 1
                    



                    And this is what I get with usingSuggestObjets=true:
                    debug[15:28:59,425]: set timeout for request suggestion
                    debug[15:28:59,439]: Observer event occurs
                    debug[15:28:59,439]: Call data for update choices
                    debug[15:28:59,439]: Have Event [object Object] with properties: target: [object HTMLInputElement], srcElement: undefined, type: keydown
                    debug[15:28:59,440]: NEW AJAX REQUEST !!! with form :testForm
                    debug[15:28:59,440]: Append hidden control testForm with value [testForm] and value attribute [testForm]
                    debug[15:28:59,440]: Append text control testForm:property with value [a] and value attribute []
                    debug[15:28:59,440]: Append hidden control testForm:suggestion_selection with value [] and value attribute [null]
                    debug[15:28:59,441]: Append hidden control javax.faces.ViewState with value [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] and value attribute [H4sIAAAAAAAAAL1YW2wUVRg+u23thQq9IMVIydYW2mKZbum9xZRe6TbblnRLFUgs09nT3SmzM+PMmc4AgoVEiRIVoyQaMRA18QVe4EXfVBI1JJhIog8+EGJMjIlgYkjwkqjnnNm57c7SconzcHrmzH/+81++/zv/9vxNUKAqYIukJBh2gTXaFtR5hpVlgedYxEsiM61AGEOKxiFNgRNSHB5/47d3Ls/XFpcCYMiHAAieBbWe3ZyUkiURiojpx0szPNSnJAmBxxZm+fjsgirPtrS0dLZt6+oId8+GgfkEQe0Cu8gazDzLQdWlIolSAjOKhxFJSYEiBFVEZ+aTZxqu8Fwy58aIKGtoGhoIFMmKJEMFHQTW89Qyh+5UWDnJc5EUm4D+DrTauphlLYlpiQS2H0d1QDJAiWq/2kHY6G/P7sigJGgp0d+E9vT2AGhcxp1JDVmx8NXUYTtzX4Z0PjRDumxDckGLqiL4ikoJfx3dlgpDU0DlvigxiRFYMcFMzi1ADvWe+ubZs2VqoxAkQCbh154HR3ES3LM8e1bkzHC9lFNtGuKxP6yaHGflgsIfPr+8bv+3eSA4AkoEiY2PsBySlAgoRkkFqklJiBty3w5q0iN6EVFEjkKgzh0sHc7h6mMGd09NDU9Mz85Ehp+ZnZqcnCaHlyAQ8pOdHN81OUGkI0MxbFulY1u/orAHo7yKjGPXqt/9in0/DwQiIF/lD0HTZT0fjyHkFFaOhHQbhpyrhIlpZXZMaIQHJEmArHg1pCx9d+avW0EQ2AsKFllBw8cGVLKhHMhYYcno9Hh0dqA/FhnEL828GIcGg/VjbWWOF1GJYwV49I/y/WfCf/4aBPkRUJTEUecwG0VBISdpIlIOIlBBc9xMLGjGlMWLid4oKCKvGq5fcmoVFl9kFZ4VEX015H/xg0BwaBgPcYgA8DoSERFMQKXix3Mf3Tl2oitIwpd2xDKRyk1oqTmovHz+dPWqt2+ctBCFfaTOlpKioKEOYPWb/YsjhlgERzFKoBJjF6Gy58qlp986c3U8CIJRUMwJrKpOsCnLjRIVy8TpHgTWmY7zUnMMYucE/hA7J8BeQyaBDHt5CS6Sw6YgDrWyC0cRDloWEJxAESrXm17cn/rywm3qhWHDvoBMKukgO9Ms/8h7iArUGT4F5czWuQqKzIqyaiNAllfZJ+TZYLV4PAciW5GbXDFyiYbV9lBBDUdm+qw8EOzLMsFkjev2aza26rq+dR5/3KopAhQJ5OJy5uNDF46fNfZstR+tyK4tGTyVxvCFazM//1J9eKeFqgBKQ9DeaUUdZ7ue8qXMcknILLAqDhMDBWZMlWfIjmFDxlSkYs/YPTevh9d+sp3c4gpYb4YCS2aI6SVL+2589s+bQSpWaYs5Eh++9Grs973XtlPr9M2gzqnihm3tTR0tjaH62sNzmA0YK21H6rGhNS5Ds8+NpGShpmXs1Af88SAxkfi3Q68DZZmq3EVo8rosG/haKbcIrccSJSqYnPkndxHOpANsF9Ddo6PAXJQ9m9L1vmEJJ8X5bj8ZZeMVs7MJfEBU5bPmgQ6Z9ZjgKJREDgP4QDY8yJ8+fQyMunPU2dTZSnNEOKLH5qOGeqeE6huPMJiCXQ1MA+4IYWM91Tioj4K2+9nuzp2JdYyLTV5c0I8jmsiRbfiaxakk2LA6DdqEeuijlNJHmRmK1V6jsHpmRerrrKXhi6d3H4/xt+g5ej/IJwoxG1sazf7EYdf59D5mCi9ZSlzy7jxleW9gqiLY3Whj15fdiIpmN5DL3UCmvSqmsVIuNbc1Lum4VsREBkjlbFhGfAA2YM+K75Wr7cbCv2PNsd5pZF4Z6VCVzEPEJWf8Sc9EdS2ocaG6taWpo52iOg1Dho8fseBaAx71rOfikEo7Dw6WiYawO/hPeAHg6fHTbACsMjdfScvh9yEbwYA0XYXpw51D/bNJ+c3pnKg3Q5KGG4GlS1+MNR74Ox93L0NW90Kkq60qSruSty0c9hIgPa8iB3Z8OCxT0LmXGnLdS+MQJaW4w/x9qw6z31cpr5kX0+P2jZMpd7H5ysmf7rS9HkzfDv36FtDgiwB6YbAakkgVChBBev886SWCTPWEBU6c6/v0uY9vT1oX0At6A1jrpy8bQDnq3EFXdvSceJPBsBHyNf1+11ZqhUUZuGtRdtAWv9EH87401E60zrtB6VSmn4nL9T52wMhk+wqrvLWprftBq3zFHncQva94G4ARC/V2ZeZk04eSpK57S1In0Zr4v5O0CdS6k9TR1N7iSRLCvZadplqwJuPLAyeqi2h+774TVeXynQqtsQeL9Nd7/isRlRLm7ymoyOZviLz+aNSv76tAYIPOx1GyJ9QVDstGbygJ+UQS9YRa6atllfwfQ4rxRJcTAAA=]
                    debug[15:28:59,441]: parameter ajaxSingle with value testForm:suggestion
                    debug[15:28:59,441]: parameter testForm:suggestion with value testForm:suggestion
                    debug[15:28:59,441]: parameter inputvalue with value a
                    debug[15:28:59,441]: parameter inputvaluerequest with value null
                    debug[15:28:59,442]: Start XmlHttpRequest
                    debug[15:28:59,443]: Reqest state : 1
                    debug[15:28:59,443]: QueryString: AJAXREQUEST=j_id_jsp_1117428609_0&testForm=testForm&testForm%3Aproperty=a&testForm%3Asuggestion_selection=&javax.faces.ViewState=H4sIAAAAAAAAAL1YW2wUVRg%2Bu23thQq9IMVIydYW2mKZbum9xZRe6TbblnRLFUgs09nT3SmzM%2BPMmc4AgoVEiRIVoyQaMRA18QVe4EXfVBI1JJhIog8%2BEGJMjIlgYkjwkqjnnNm57c7SconzcHrmzH%2F%2B81%2B%2B%2Fzv%2F9vxNUKAqYIukJBh2gTXaFtR5hpVlgedYxEsiM61AGEOKxiFNgRNSHB5%2F47d3Ls%2FXFpcCYMiHAAieBbWe3ZyUkiURiojpx0szPNSnJAmBxxZm%2BfjsgirPtrS0dLZt6%2BoId8%2BGgfkEQe0Cu8gazDzLQdWlIolSAjOKhxFJSYEiBFVEZ%2BaTZxqu8Fwy58aIKGtoGhoIFMmKJEMFHQTW89Qyh%2B5UWDnJc5EUm4D%2BDrTauphlLYlpiQS2H0d1QDJAiWq%2F2kHY6G%2FP7sigJGgp0d%2BE9vT2AGhcxp1JDVmx8NXUYTtzX4Z0PjRDumxDckGLqiL4ikoJfx3dlgpDU0DlvigxiRFYMcFMzi1ADvWe%2BubZs2VqoxAkQCbh154HR3ES3LM8e1bkzHC9lFNtGuKxP6yaHGflgsIfPr%2B8bv%2B3eSA4AkoEiY2PsBySlAgoRkkFqklJiBty3w5q0iN6EVFEjkKgzh0sHc7h6mMGd09NDU9Mz85Ehp%2BZnZqcnCaHlyAQ8pOdHN81OUGkI0MxbFulY1u%2ForAHo7yKjGPXqt%2F9in0%2FDwQiIF%2FlD0HTZT0fjyHkFFaOhHQbhpyrhIlpZXZMaIQHJEmArHg1pCx9d%2BavW0EQ2AsKFllBw8cGVLKhHMhYYcno9Hh0dqA%2FFhnEL828GIcGg%2FVjbWWOF1GJYwV49I%2Fy%2FWfCf%2F4aBPkRUJTEUecwG0VBISdpIlIOIlBBc9xMLGjGlMWLid4oKCKvGq5fcmoVFl9kFZ4VEX015H%2Fxg0BwaBgPcYgA8DoSERFMQKXix3Mf3Tl2oitIwpd2xDKRyk1oqTmovHz%2BdPWqt2%2BctBCFfaTOlpKioKEOYPWb%2FYsjhlgERzFKoBJjF6Gy58qlp986c3U8CIJRUMwJrKpOsCnLjRIVy8TpHgTWmY7zUnMMYucE%2FhA7J8BeQyaBDHt5CS6Sw6YgDrWyC0cRDloWEJxAESrXm17cn%2Frywm3qhWHDvoBMKukgO9Ms%2F8h7iArUGT4F5czWuQqKzIqyaiNAllfZJ%2BTZYLV4PAciW5GbXDFyiYbV9lBBDUdm%2Bqw8EOzLMsFkjev2aza26rq%2BdR5%2F3KopAhQJ5OJy5uNDF46fNfZstR%2BtyK4tGTyVxvCFazM%2F%2F1J9eKeFqgBKQ9DeaUUdZ7ue8qXMcknILLAqDhMDBWZMlWfIjmFDxlSkYs%2FYPTevh9d%2Bsp3c4gpYb4YCS2aI6SVL%2B2589s%2BbQSpWaYs5Eh%2B%2B9Grs973XtlPr9M2gzqnihm3tTR0tjaH62sNzmA0YK21H6rGhNS5Ds8%2BNpGShpmXs1Af88SAxkfi3Q68DZZmq3EVo8rosG%2FhaKbcIrccSJSqYnPkndxHOpANsF9Ddo6PAXJQ9m9L1vmEJJ8X5bj8ZZeMVs7MJfEBU5bPmgQ6Z9ZjgKJREDgP4QDY8yJ8%2BfQyMunPU2dTZSnNEOKLH5qOGeqeE6huPMJiCXQ1MA%2B4IYWM91Tioj4K2%2B9nuzp2JdYyLTV5c0I8jmsiRbfiaxakk2LA6DdqEeuijlNJHmRmK1V6jsHpmRerrrKXhi6d3H4%2Fxt%2Bg5ej%2FIJwoxG1sazf7EYdf59D5mCi9ZSlzy7jxleW9gqiLY3Whj15fdiIpmN5DL3UCmvSqmsVIuNbc1Lum4VsREBkjlbFhGfAA2YM%2BK75Wr7cbCv2PNsd5pZF4Z6VCVzEPEJWf8Sc9EdS2ocaG6taWpo52iOg1Dho8fseBaAx71rOfikEo7Dw6WiYawO%2FhPeAHg6fHTbACsMjdfScvh9yEbwYA0XYXpw51D%2FbNJ%2Bc3pnKg3Q5KGG4GlS1%2BMNR74Ox93L0NW90Kkq60qSruSty0c9hIgPa8iB3Z8OCxT0LmXGnLdS%2BMQJaW4w%2Fx9qw6z31cpr5kX0%2BP2jZMpd7H5ysmf7rS9HkzfDv36FtDgiwB6YbAakkgVChBBev886SWCTPWEBU6c6%2Fv0uY9vT1oX0At6A1jrpy8bQDnq3EFXdvSceJPBsBHyNf1%2B11ZqhUUZuGtRdtAWv9EH87401E60zrtB6VSmn4nL9T52wMhk%2BwqrvLWprftBq3zFHncQva94G4ARC%2FV2ZeZk04eSpK57S1In0Zr4v5O0CdS6k9TR1N7iSRLCvZadplqwJuPLAyeqi2h%2B774TVeXynQqtsQeL9Nd7%2FisRlRLm7ymoyOZviLz%2BaNSv76tAYIPOx1GyJ9QVDstGbygJ%2BUQS9YRa6atllfwfQ4rxRJcTAAA%3D&ajaxSingle=testForm%3Asuggestion&testForm%3Asuggestion=testForm%3Asuggestion&inputvalue=a&inputvaluerequest=null&
                    debug[15:28:59,444]: Reqest state : 1
                    debug[15:29:00,330]: set timeout for request suggestion
                    debug[15:29:00,345]: Observer event occurs
                    debug[15:29:00,346]: Call data for update choices
                    


                    hth to find the cause of the error.

                    ~dirk

                    • 7. Re: NullPointerException with SuggestionBox
                      nbelaevski
                      • 8. Re: NullPointerException with SuggestionBox
                        mrmagoo

                        I tried the workaround as it is described in the referred post.

                        I get the same error:

                        javax.servlet.ServletException: /index.jsp(28,73) '#{rich:component('suggestion')}.callSuggestion(true)' Function 'rich:component' not found
                         javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
                         org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
                         org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
                         org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
                         org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
                         org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                        


                        This is comparable to what the author of that posting said. Unfortunately I am not able to follow his solution:
                        My solution was to combine the new EL-API code with my existing the jbossweb 4.2.3 code.


                        Any help to understand that would be good.
                        ~dirk

                        • 9. Re: NullPointerException with SuggestionBox
                          mrmagoo

                          This is indeed a JBoss bug as it is already mentioned in the other thread. I tested with the new JBoss 5.0.0 without any problems.

                          Unfortunately I have to stick to JBoss 4.2.2.

                          The following solved my problems:

                          <f:view>
                           <h:form id="testForm">
                           <h:inputText value="#{bean.property}" id="property" />
                           <h:graphicImage value="cmb-down.png"
                           onclick="document.getElementById('testForm:suggestion').component.callSuggestion(true)"/>
                           <rich:suggestionbox id="suggestion" for="property"
                           suggestionAction="#{bean.autocomplete}"
                           usingSuggestObjects="true" fetchValue="#{suggest.id}"
                           var="suggest" width="200" height="200" immediate="true">
                           <h:column>
                           <h:outputText value="#{suggest.id}" />
                           </h:column>
                           <h:column>
                           <h:outputText value="#{suggest.text}" />
                           </h:column>
                           </rich:suggestionbox>
                           </h:form>


                          The curious thing about it is:
                          What I have written into the onclick attribute is copied from the web page. So JBoss keeps it as it is somewhere else by mistake.

                          ~dirk