9 Replies Latest reply on Nov 8, 2010 4:21 PM by cdollar393

    Using rich:editor + spellchecker plugin + a4j:poll doesn't work right

    cdollar393

      Hi Folks,

       

      Seems like all my questions here recently seem to revolve around the rich:editor component, and here's another one.

       

      My application uses richfaces extensively, and it contains a couple of a4j:poll tags and some views that also use the rich:editor component. I just added the TinyMCE spellchecker plugin to my rich:editor configuration, and now I'm in the process of testing it.

       

      The plugin is designed so that when you click the spell check button in the editor's icon bar a call is made to an outside URL to gather a list of words that it thinks are misspelled. Once that call returns the editor underlines those possibly misspelled words with a red, squiggly line. At this point if you right-click on one of those misspelled words the plugin makes another call to get a list of possible suggestions for the misspelled word, and you then get to pick from that list of suggestions.

       

      So basically the plugin is working fine on pages without any a4j:poll tags, but if I am using that plugin on a page that also has an a4j:poll on it I have issues. When the action in the poll tag fires and sends the POST request back to JBoss any of the words that the plugin had identified and underlined in red get reset, and the same with the list of suggestions. If I comment out the polls on the offending pages everything works as it should. And when the polls are on the page things work until the poll fires and the POST is sent, then things get reset, but I can start over and work with the editor until the poll fires again, etc.

       

      I'm guessing that this issue is due to the way RF implemented the TinyMCE editor and got it working with the various ajax calls, etc., but can't really say for sure. Does anyone have any ideas about what I can do to get this working in harmony with my a4j:polls?

       

      Thanks in advance!

      Chris

        • 1. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
          ilya_shaikovsky

          does the editor getting reRender'ed from a4j:poll? Then it looks like working as it should (information from just spell-check plugin can't be stored by the tiny component at server side because it can't even has idea what to store and restore any data for some of the various plugins).

          • 2. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
            cdollar393

            Hi Ilya,

             

            No, the editor is not being reRendered by the a4j:poll. In fact, I just did an experiment and added an a4j:poll to the page that doesn't reRender anything and I still see the same behavior as before -- as soon as the poll fires the spellcheck gets reset. This doesn't seem like it is working as it should?

             

            Chris

            • 3. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
              cdollar393

              Bump. Ilya, can you comment any further on my issue? Thanks again.

               

              Chris

              • 4. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
                ilya_shaikovsky

                and there is no outputPanel components with ajaxRendered=true around the editor? check a4j:log information on poll requests please. maybe there are some errors.

                • 5. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
                  cdollar393

                  Ilya Shaikovsky wrote:

                   

                  and there is no outputPanel components with ajaxRendered=true around the editor? check a4j:log information on poll requests please. maybe there are some errors.

                   

                  No, there are not any outputPanels with ajaxRendered=true around the editor (just double-checked my code). I've also looked at the a4j:og and don't see any problems there either (I'll post the output from the a4j:poll firing below). FWIW, for the log output below this is the relevant section from my page:

                   

                  <div style="display: none">
                    <a4j:form id="heartbeatForm" rendered="#{user.runningBackground}">
                      <input type="hidden" value="yes" name="formIsAutoSubmit"/>
                      <a4j:poll id="heartbeatPoll" action="#{user.heartbeat}"  interval="10000"
                         status="emptyStatus" reRender="heartbeatPoll,hiddenSecExp" 
                         limitToList="true" enabled="#{user.runningBackground}"/>
                    </a4j:form>
                                                     
                    <h:inputHidden id="hiddenSecExp" value="#{user.secondsToExpire}"/>
                  ....
                  

                  <div style="display: none">
                  <a4j:form id="heartbeatForm" rendered="#{user.runningBackground}">
                  <input type="hidden" value="yes" name="formIsAutoSubmit"/>
                  <a4j:poll id="heartbeatPoll" action="#{user.heartbeat}"  interval="10000"
                  status="emptyStatus" reRender="heartbeatPoll,hiddenSecExp"
                  limitToList="true" enabled="#{user.runningBackground}"/>
                  </a4j:form>
                  <!-- session ttl is out of the form for convenience -->
                  <a4j:outputPanel layout="none">
                  <h:inputHidden id="hiddenSecExp" value="#{user.secondsToExpire}"/>
                  </a4j:outputPanel>

                   

                  Here is the output from the a4j:log when the poll fires

                   

                  Clear
                  debug[15:03:33,526]: Query preparation for form 'heartbeatForm' requested
                  debug[15:03:33,526]: Append hidden control formIsAutoSubmit with value [yes] and value attribute [yes]
                  debug[15:03:33,527]: Append hidden control heartbeatForm with value [heartbeatForm] and value attribute [heartbeatForm]
                  debug[15:03:33,527]: Append hidden control autoScroll with value [] and value attribute []
                  debug[15:03:33,527]: Append hidden control javax.faces.ViewState with value [j_id2] and value attribute [j_id2]
                  debug[15:03:33,527]: parameter heartbeatForm:heartbeatPoll with value heartbeatForm:heartbeatPoll
                  debug[15:03:33,527]: Look up queue with default name
                  debug[15:03:33,527]: Found view queue 'org.richfaces.queue.global'
                  debug[15:03:33,528]: Queue is empty now
                  debug[15:03:33,528]: New request added to queue 'org.richfaces.queue.global'. Queue similarityGroupingId changed to heartbeatForm:heartbeatPoll
                  debug[15:03:33,528]: Queue will wait 0ms before submit
                  debug[15:03:33,528]: Queue 'org.richfaces.queue.global' will submit request NOW
                  debug[15:03:33,528]: NEW AJAX REQUEST !!! with form: heartbeatForm
                  debug[15:03:33,529]: Start XmlHttpRequest
                  debug[15:03:33,530]: Request state : 1
                  debug[15:03:33,530]: QueryString: AJAXREQUEST=_viewRoot&formIsAutoSubmit=yes&heartbeatForm=heartbeatForm&autoScroll=&javax.faces.ViewState=j_id2&heartbeatForm%3AheartbeatPoll=heartbeatForm%3AheartbeatPoll&AJAX%3AEVENTS_COUNT=1&
                  debug[15:03:33,530]: Request state : 1
                  debug[15:03:33,838]: Request state : 2
                  debug[15:03:33,839]: Request state : 3
                  debug[15:03:33,840]: Request state : 3
                  debug[15:03:33,840]: Request state : 4
                  debug[15:03:33,841]: Request end with state 4
                  debug[15:03:33,841]: Response with content-type: text/xml;charset=UTF-8
                  debug[15:03:33,841]: Full response content: <?xml version="1.0"?> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title></title><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/basic_classes.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/extended_classes.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" media="rich-extended-skinning" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/panelbar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/panel.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/modalPanel.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/calendar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/toolBar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/tabPanel.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/table.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/colorPicker.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/datascroller.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/editor.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/fileUpload.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/progressBar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/picklist.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/tooltip.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="component" href="/PermitExpress/content/a4j/s/3_3_3.Finalcss/spinner.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><script id="org.ajax4jsf.queue_script" type="text/javascript">//<![CDATA[ if (typeof A4J != 'undefined') { if (A4J.AJAX) { with (A4J.AJAX) {if (!EventQueue.getQueue('org.richfaces.queue.global')) { EventQueue.addQueue(new EventQueue('org.richfaces.queue.global',null,null)) };}}}; //]]> </script><link class="user" href="/PermitExpress/content/a4j/s/3_3_3.Finalxcss/custom.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /><link class="user" href="/PermitExpress/content/a4j/g/3_3_3.Finalcom/rydindecal/JSMessages/resources/JSMessages.css" rel="stylesheet" type="text/css" /><link class="user" href="/PermitExpress/content/a4j/s/3_3_3.Finalcom/rydindecal/PermitExpress/web/resources/rfStyle.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__" rel="stylesheet" type="text/css" /></head><body><span style="display:none;" id="heartbeatForm:heartbeatPoll"><script type="text/javascript">//<![CDATA[ A4J.AJAX.Poll('heartbeatForm',{'pollId':'heartbeatForm:heartbeatPoll','parameters':{'heartbeatForm:heartbeatPoll':'heartbeatForm:heartbeatPoll'} ,'similarityGroupingId':'heartbeatForm:heartbeatPoll','status':'emptyStatus','pollinterval':10000} ); //]]> </script></span><input id="hiddenSecExp" type="hidden" name="hiddenSecExp" value="0" /><meta name="Ajax-Update-Ids" content="heartbeatForm:heartbeatPoll,hiddenSecExp" /><span id="ajax-view-state"><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id2" autocomplete="off" /></span><meta id="Ajax-Response" name="Ajax-Response" content="true" /><meta name="Ajax-Update-Ids" content="heartbeatForm:heartbeatPoll,hiddenSecExp" /><span id="ajax-view-state"><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id2" autocomplete="off" /></span><meta id="Ajax-Response" name="Ajax-Response" content="true" /></body></html>
                  debug[15:03:33,842]: Header Ajax-Expired not found, search in <meta>
                  debug[15:03:33,842]: search for elements by name 'meta' in element #document
                  debug[15:03:33,842]: Find <meta name='Ajax-Update-Ids' content='heartbeatForm:heartbeatPoll,hiddenSecExp'>
                  debug[15:03:33,843]: Find <meta name='Ajax-Response' content='true'>
                  debug[15:03:33,843]: Find <meta name='Ajax-Update-Ids' content='heartbeatForm:heartbeatPoll,hiddenSecExp'>
                  debug[15:03:33,843]: Find <meta name='Ajax-Response' content='true'>
                  debug[15:03:33,843]: Header Ajax-Update-Ids not found, search in <meta>
                  debug[15:03:33,843]: search for elements by name 'meta' in element #document
                  debug[15:03:33,844]: Find <meta name='Ajax-Update-Ids' content='heartbeatForm:heartbeatPoll,hiddenSecExp'>
                  debug[15:03:33,844]: Update page by list of rendered areas from response heartbeatForm:heartbeatPoll,hiddenSecExp
                  debug[15:03:33,845]: search for elements by name 'script' in element #document
                  debug[15:03:33,845]: search for elements by name 'link' in element #document
                  debug[15:03:33,848]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/basic_classes.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,848]: Such element exist in document
                  debug[15:03:33,848]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/extended_classes.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,848]: Such element exist in document
                  debug[15:03:33,849]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/panelbar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,849]: Such element exist in document
                  debug[15:03:33,849]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/panel.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,849]: Such element exist in document
                  debug[15:03:33,849]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/modalPanel.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,850]: Such element exist in document
                  debug[15:03:33,850]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/calendar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,850]: Such element exist in document
                  debug[15:03:33,850]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/toolBar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,851]: Such element exist in document
                  debug[15:03:33,851]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/tabPanel.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,851]: Such element exist in document
                  debug[15:03:33,851]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/table.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,852]: Such element exist in document
                  debug[15:03:33,852]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/colorPicker.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,852]: Such element exist in document
                  debug[15:03:33,852]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/datascroller.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,853]: Such element exist in document
                  debug[15:03:33,853]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/editor.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,853]: Such element exist in document
                  debug[15:03:33,853]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/fileUpload.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,854]: Such element exist in document
                  debug[15:03:33,854]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/progressBar.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,854]: Such element exist in document
                  debug[15:03:33,854]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/picklist.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,856]: Such element exist in document
                  debug[15:03:33,856]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalorg/richfaces/renderkit/html/css/tooltip.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,856]: Such element exist in document
                  debug[15:03:33,856]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcss/spinner.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,856]: Such element exist in document
                  debug[15:03:33,856]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalxcss/custom.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,857]: Such element exist in document
                  debug[15:03:33,857]: <link> in response with src=/PermitExpress/content/a4j/g/3_3_3.Finalcom/rydindecal/JSMessages/resources/JSMessages.css
                  debug[15:03:33,857]: Such element exist in document
                  debug[15:03:33,857]: <link> in response with src=/PermitExpress/content/a4j/s/3_3_3.Finalcom/rydindecal/PermitExpress/web/resources/rfStyle.xcss/DATB/eAFrvajdHLp8hjQAEgwDtA__
                  debug[15:03:33,857]: Such element exist in document
                  debug[15:03:33,857]: call getElementById for id= org.ajax4jsf.queue_script
                  debug[15:03:33,858]: Evaluate script replaced area in document: // if (typeof A4J != 'undefined') { if (A4J.AJAX) { with (A4J.AJAX) {if (!EventQueue.getQueue('org.richfaces.queue.global')) { EventQueue.addQueue(new EventQueue('org.richfaces.queue.global',null,null)) };}}}; //
                  debug[15:03:33,858]: Script evaluation succeeded
                  debug[15:03:33,858]: Update page part from call parameter for ID heartbeatForm:heartbeatPoll
                  debug[15:03:33,858]: call getElementById for id= heartbeatForm:heartbeatPoll
                  debug[15:03:33,859]: Replace content of node by replaceChild()
                  debug[15:03:33,859]: search for elements by name 'script' in element span
                  debug[15:03:33,859]: Scripts in updated part count : 1
                  debug[15:03:33,859]: Update part of page for Id: heartbeatForm:heartbeatPoll successful
                  debug[15:03:33,859]: Update page part from call parameter for ID hiddenSecExp
                  debug[15:03:33,860]: call getElementById for id= hiddenSecExp
                  debug[15:03:33,860]: Replace content of node by replaceChild()
                  debug[15:03:33,860]: search for elements by name 'script' in element input
                  debug[15:03:33,860]: Scripts in updated part count : 0
                  debug[15:03:33,860]: call getElementById for id= org.ajax4jsf.oncomplete
                  debug[15:03:33,860]: Processing updates finished, no oncomplete function to call
                  debug[15:03:33,861]: After request: queue 'org.richfaces.queue.global'
                  debug[15:03:33,861]: There are 0 requests more in this queue
                  debug[15:03:33,861]: Queue is empty now
                  debug[15:03:33,861]: Update part of page for Id: hiddenSecExp successful
                  debug[15:03:33,861]: call getElementById for id= ajax-view-state
                  debug[15:03:33,861]: Hidden JSF state fields: [object HTMLSpanElement]
                  debug[15:03:33,861]: Namespace for hidden view-state input fields is undefined
                  debug[15:03:33,861]: search for elements by name 'input' in element span
                  debug[15:03:33,862]: Replace value for inputs: 81 by new values: 1
                  debug[15:03:33,862]: Input in response: javax.faces.ViewState
                  debug[15:03:33,862]: Found same input on page with type: hidden
                  debug[15:03:33,863]: Found same input on page with type: hidden
                  debug[15:03:33,863]: Found same input on page with type: hidden
                  debug[15:03:33,863]: Found same input on page with type: hidden
                  debug[15:03:33,863]: Found same input on page with type: hidden
                  debug[15:03:33,864]: Found same input on page with type: hidden
                  debug[15:03:33,864]: Found same input on page with type: hidden
                  debug[15:03:33,864]: Found same input on page with type: hidden
                  debug[15:03:33,864]: Found same input on page with type: hidden
                  debug[15:03:33,865]: Found same input on page with type: hidden
                  debug[15:03:33,865]: Found same input on page with type: hidden
                  debug[15:03:33,865]: Found same input on page with type: hidden
                  debug[15:03:33,866]: Found same input on page with type: hidden
                  debug[15:03:33,866]: Found same input on page with type: hidden
                  debug[15:03:33,866]: Found same input on page with type: hidden
                  debug[15:03:33,867]: Found same input on page with type: hidden
                  debug[15:03:33,867]: Found same input on page with type: hidden
                  debug[15:03:33,867]: Found same input on page with type: hidden
                  debug[15:03:33,868]: search for elements by name 'INPUT' in element span
                  debug[15:03:33,868]: Replace value for inputs: 81 by new values: 0
                  debug[15:03:33,868]: call getElementById for id= _A4J.AJAX.focus
                  debug[15:03:33,868]: No focus information in response
                  debug[15:03:33,885]: Evaluate script replaced area in document: // A4J.AJAX.Poll('heartbeatForm',{'pollId':'heartbeatForm:heartbeatPoll','parameters':{'heartbeatForm:heartbeatPoll':'heartbeatForm:heartbeatPoll'} ,'similarityGroupingId':'heartbeatForm:heartbeatPoll','status':'emptyStatus','pollinterval':10000} ); //
                  debug[15:03:33,885]: Script evaluation succeeded
                  

                   

                  As I said earlier, simply commenting-out the a4j:poll tag causes the plugin to work correctly. Is there anything else I can check or any more information I can provide for you?

                   

                  Thanks again,

                  Chris

                  • 6. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
                    cdollar393

                    Bump again...

                     

                    Ilya, I've still not been able to find anything wrong with my environment or a solution to my issue. Can you provide any more suggestions?

                     

                    Thanks,

                    Chris

                    • 7. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
                      cdollar393

                      Sorry guys, but I'm bumping this one again. I'm still not sure what I need to do to get this working... any thoughts? Should I submit a bug report for this?

                       

                      Thanks again,

                      Chris

                      • 8. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
                        ilya_shaikovsky

                        Sorry for so long delay :/ we was really busy withe our next 4.x mileston works. yes please create issue in jira and ideally attach war sample there.

                        • 9. Re: Using rich:editor + spellchecker plugin + a4j:poll doesn't work right
                          cdollar393

                          Hi Ilya,

                           

                          I've created  https://jira.jboss.org/browse/RF-9727 with a test project that illustrates the issue. Thanks again for all your help with this!

                           

                          Chris