QA Testing Report:
deltasubmit revision# 20413
Server tomcat6
Firefix3.5 browser
Autocomplete doesnot work correctly.
After selecting a city form the drop downlist that city's details are not displayed at the bottom of the page. Now if the user selects city in the second autocomplete box, the first city details are displayed at the bottom.
Media
SEVERE: Exception occured during rendering on http://localhost:8080/component-showcase/block/send-receive-updates [/showcase.jspx]
javax.faces.FacesException: Problem in renderResponse: javax.faces.el.Evaluation
Exception: javax.el.ELException: /WEB-INF/includes/examples/custom/outputMedia.jspx @76,49 style="#
{media.style}": Error reading 'style' on type org.icefaces.application.showcase.view.bean.examples.component.outputMedia.Media
Caused by: javax.faces.el.EvaluationException: javax.el.ELException: /WEB-INF/includes/examples/custom/outputMedia.jspx @76,49 style="#{media.style}
": Error reading 'style' on type org.icefaces.application.showcase.view.bean.examples.component.outputMedia.Media
Caused by: javax.el.ELException: /WEB-INF/includes/examples/custom/outputMedia.jspx @76,49 style="#
{media.style}
": Error reading 'style' on type org.icefaces.application.showcase.view.bean.examples.component.outputMedia.Media
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
DataPaginator: Paginator functionality disappears if user click on any button on pagination (next, last etc)
following seen on the server
WARNING: DataTable iceform:data has invalid rows attribute.
Following components couldnot be tested because of radio buttons not working:
Selection
Row selection
progressbar
Menubar
Split Panel
Stacking panel
Static tabset
Position Panel: After repositioning Edited rank table does not get updated
Tooltip not working for provinces
Gmaps:The controls disappear of user selects a city. Also cannot search a city by entering its name in the input text box
Buttons & Links scripts were failing but could not reproduce the problem manually (need to investigate)
Collapsible Panel scripts were failing but could not reproduce the problem manually (need to investigate)
Confirmation: scripts were failing but could not reproduce the problem manually (need to investigate)
Regards,
Mandeep
When we started to look at this issue we had two different implementations in mind:
a) The idea for the first implementation is to send only the minimal information such as event and triggering element data. The rest of the parameters that correspond to elements that have not changed since the last submit will be reconstructed on the server-side from the DOM document and then put into ExternalContext's parameter maps before decode phase is ran.
b) The idea for the second implementation is to calculate the parameter difference between submits. The full set of parameters will be reconstructed on the server-side by applying the changes send in submit to the set of parameters stored during the previous submit.
Advantages:
a) Easy to implement. No heavyweight calculations needed. The code on the client side needs to change very little. Reconstructing the full set of parameters on the server is straight forward, just a simple serialization of the form elements.
b) ICEfaces components or third party components will work seamlessly since the parameter diffing will work also with the parameters created by hidden input elements.
Disadvantages:
a) ICEfaces components that use hidden input elements to submit additional parameters will need to be changed. Since the form is not serialized anymore the additional parameters will have to be defined directly in the event callback. Third party components that use hidden fields won't work.
Also, onchange callbacks have to be configured for the form elements. This is necessary in case the element values are changed without an immediate submission. The onchange listeners will record the changed elements and they will be serialized during the next submit.
b) Calculating the parameter difference on the client side is quite expensive, especially for large forms. In order to significantly improve performance we need to implement or find a proper Hashtable implementation. This way lookups will be much faster when calculating what parameters are added or removed.
Also, for sending the parameter differences to the server we have to come up with a protocol for describing parameter addition, removal and update.