Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.3
-
Fix Version/s: EE-3.3.0.GA, 4.0.BETA, 4.0
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ACE
-
Assignee Priority:P1
-
ICEsoft Forum Reference:
Description
As reported in the forum, these renderers use instance fields that they read from and write to during rendering:
- TextAreaEntryRenderer
- SliderEntryRenderer
- PanelRenderer
- DateTimeEntryRenderer
- CheckboxButtonRenderer
- CellEditorRenderer
A common pattern found in some of them is to use this code:
public class DateTimeEntryRenderer extends InputRenderer {
private Map<String, Object> domUpdateMap = new HashMap<String, Object>();
Which involves the encode methods using the domUpdateMap to create a hashcode. The domUpdateMap should be declared inside the methods, which might involve re-arranging code between the encodeBegin and encodeEnd methods.
Renderers are application scoped, and can be used simultaneously by different requests / lifecycles. They should never use instance fields that are written to and then read from during a discrete render, since the same Renderer instance is used across threads for different views and users.
We'll need to audit all of our ACE Renderers, as the forum posting might not have been comprehensive.
- TextAreaEntryRenderer
- SliderEntryRenderer
- PanelRenderer
- DateTimeEntryRenderer
- CheckboxButtonRenderer
- CellEditorRenderer
A common pattern found in some of them is to use this code:
public class DateTimeEntryRenderer extends InputRenderer {
private Map<String, Object> domUpdateMap = new HashMap<String, Object>();
Which involves the encode methods using the domUpdateMap to create a hashcode. The domUpdateMap should be declared inside the methods, which might involve re-arranging code between the encodeBegin and encodeEnd methods.
Renderers are application scoped, and can be used simultaneously by different requests / lifecycles. They should never use instance fields that are written to and then read from during a discrete render, since the same Renderer instance is used across threads for different views and users.
We'll need to audit all of our ACE Renderers, as the forum posting might not have been comprehensive.
Activity
Mark Collette
created issue -
Mark Collette
made changes -
Field | Original Value | New Value |
---|---|---|
Description |
As reported in the forum, these renderers
- TextAreaEntryRenderer - SliderEntryRenderer - PanelRenderer - DateTimeEntryRenderer - CheckboxButtonRenderer - CellEditorRenderer Use this code: public class DateTimeEntryRenderer extends InputRenderer { private Map<String, Object> domUpdateMap = new HashMap<String, Object>(); Which involves the encode methods using the domUpdateMap to create a hashcode. The domUpdateMap should be declared inside the methods, which might involve re-arranging code between the encodeBegin and encodeEnd methods. Renderers are application scoped, and can be used simultaneously by different requests / lifecycles. They should never use instance fields. |
As reported in the forum, these renderers
- TextAreaEntryRenderer - SliderEntryRenderer - PanelRenderer - DateTimeEntryRenderer - CheckboxButtonRenderer - CellEditorRenderer Use this code: public class DateTimeEntryRenderer extends InputRenderer { private Map<String, Object> domUpdateMap = new HashMap<String, Object>(); Which involves the encode methods using the domUpdateMap to create a hashcode. The domUpdateMap should be declared inside the methods, which might involve re-arranging code between the encodeBegin and encodeEnd methods. Renderers are application scoped, and can be used simultaneously by different requests / lifecycles. They should never use instance fields. We'll need to audit all of our ACE Renderers, as the forum posting might not have been comprehensive. |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36189 | Wed Jun 12 15:49:17 MDT 2013 | nils.lundquist | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/celleditor/CellEditorRenderer.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36194 | Wed Jun 12 17:06:33 MDT 2013 | yip.ng | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datetimeentry/DateTimeEntryRenderer.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36201 | Wed Jun 12 17:49:21 MDT 2013 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/panel/PanelRenderer.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36203 | Wed Jun 12 17:55:09 MDT 2013 | yip.ng | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/textareaentry/TextAreaEntryRenderer.java
MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/renderkit/InputRenderer.java |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36217 | Thu Jun 13 12:37:22 MDT 2013 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/sliderentry/SliderEntryRenderer.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36218 | Thu Jun 13 13:42:40 MDT 2013 | yip.ng | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/message/MessageRenderer.java
MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/growlmessages/GrowlMessagesRenderer.java MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/growlmessages/GrowlMessagesMeta.java MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/messages/MessagesRenderer.java |
Mark Collette
made changes -
Description |
As reported in the forum, these renderers
- TextAreaEntryRenderer - SliderEntryRenderer - PanelRenderer - DateTimeEntryRenderer - CheckboxButtonRenderer - CellEditorRenderer Use this code: public class DateTimeEntryRenderer extends InputRenderer { private Map<String, Object> domUpdateMap = new HashMap<String, Object>(); Which involves the encode methods using the domUpdateMap to create a hashcode. The domUpdateMap should be declared inside the methods, which might involve re-arranging code between the encodeBegin and encodeEnd methods. Renderers are application scoped, and can be used simultaneously by different requests / lifecycles. They should never use instance fields. We'll need to audit all of our ACE Renderers, as the forum posting might not have been comprehensive. |
As reported in the forum, these renderers use instance fields that they read from and write to during rendering:
- TextAreaEntryRenderer - SliderEntryRenderer - PanelRenderer - DateTimeEntryRenderer - CheckboxButtonRenderer - CellEditorRenderer A common pattern found in some of them is to use this code: public class DateTimeEntryRenderer extends InputRenderer { private Map<String, Object> domUpdateMap = new HashMap<String, Object>(); Which involves the encode methods using the domUpdateMap to create a hashcode. The domUpdateMap should be declared inside the methods, which might involve re-arranging code between the encodeBegin and encodeEnd methods. Renderers are application scoped, and can be used simultaneously by different requests / lifecycles. They should never use instance fields that are written to and then read from during a discrete render, since the same Renderer instance is used across threads for different views and users. We'll need to audit all of our ACE Renderers, as the forum posting might not have been comprehensive. |
Mark Collette
made changes -
Assignee Priority | P1 [ 10010 ] |
Mark Collette
made changes -
Assignee | Ken Fyten [ ken.fyten ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36236 | Fri Jun 14 15:02:07 MDT 2013 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/fileentry/FileEntryRenderer.java
MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/linkbutton/LinkButtonRenderer.java MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/tabset/TabSetRenderer.java MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/roweditor/RowEditorRenderer.java |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36238 | Fri Jun 14 15:12:16 MDT 2013 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/core/src/main/java/org/icefaces/impl/renderkit/html_basic/SingleSubmitRenderer.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36254 | Mon Jun 17 11:18:54 MDT 2013 | nils.lundquist | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/resources/icefaces.ace/list/list.js
|
Ken Fyten
made changes -
Assignee | Ken Fyten [ ken.fyten ] | Nils Lundquist [ nils.lundquist ] |
Affects Version/s | 3.3 [ 10370 ] |
Nils Lundquist
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #36260 | Mon Jun 17 14:12:42 MDT 2013 | nils.lundquist | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/checkboxbutton/CheckboxButtonRenderer.java
|
Ken Fyten
made changes -
Fix Version/s | 4.0 [ 11382 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Revision #36189
Committed by nils.lundquist
3 minutes ago
ICE-9348- Removed CellEditorRenderer state.