[jboss-jira] [JBoss JIRA] (AS7-6186) Mojarra 2.1.16 upgrade breaks Seam2.3.0 conversations
Marek Schmidt (JIRA)
jira-events at lists.jboss.org
Mon Dec 17 18:06:08 EST 2012
[ https://issues.jboss.org/browse/AS7-6186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12741980#comment-12741980 ]
Marek Schmidt commented on AS7-6186:
------------------------------------
Another weird problem. In the following app, I put things into the viewMap in the converter getAsString method (which is needed for implementing things, such as Seam EntityConverter) .if I have the "event.getFacesContext().getViewRoot().getViewMap(true);" call in the after restore view (which should be perfectly fine, as after restore view the UIViewRoot is set), I have to click the Record button twice to see the "bar". Removing the getViewMap call in the after restore view phase listner, I can see it after the first click.
{code}
@Model
public class Action
{
private String foo;
public String getFoo() {
return foo;
}
public void recordViewMap() {
foo = (String)FacesContext.getCurrentInstance().getViewRoot().getViewMap().get("foo");
}
}
{code}
{code}
@FacesConverter("org.jboss.seam.test.MyConverter")
public class MyConverter implements Converter
{
public MyConverter() {
}
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value)
{
return null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value)
{
context.getViewRoot().getViewMap().put("foo", "bar");
return (String)value;
}
}
{code}
{code}
public class MyPhaseListener implements PhaseListener {
@Override
public void afterPhase(PhaseEvent event) {
if (event.getPhaseId().equals(PhaseId.RESTORE_VIEW)) {
// Removing this makes it work:
event.getFacesContext().getViewRoot().getViewMap(true);
}
}
@Override
public void beforePhase(PhaseEvent event) {
}
@Override
public PhaseId getPhaseId() {
// TODO Auto-generated method stub
return PhaseId.ANY_PHASE;
}
}
{code}
{code}
<h:form>
<div>
Foo:
<h:outputText value="#{action.getFoo()}" />
</div>
<div>
Converter:
<h:outputText value="#{'converter'}">
<f:converter converterId="org.jboss.seam.test.MyConverter"/>
</h:outputText>
</div>
<div>
<h:commandButton value="Record" action="#{action.recordViewMap()}"/>
</div>
</h:form>
{code}
> Mojarra 2.1.16 upgrade breaks Seam2.3.0 conversations
> -----------------------------------------------------
>
> Key: AS7-6186
> URL: https://issues.jboss.org/browse/AS7-6186
> Project: Application Server 7
> Issue Type: Bug
> Components: JSF
> Affects Versions: 7.1.4.Final (EAP)
> Environment: Current 7.1.4.Final-SNAPSHOT (2012-12-15), Mojarra 2.1.16, Seam2.3.0.Final
> Reporter: Marek Schmidt
> Assignee: Stan Silvert
> Priority: Critical
> Attachments: AS7-6186-viewMap.tar, AS7-6186-viewMap.war, seam-booking.ear
>
>
> Recent Mojarra upgrade seems to break Seam 2.3.0 conversations.
> Not exactly sure yet what has changed and whether it is a Mojarra bug or Seam depending on something it shouldn't.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list