[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
Tue Dec 18 04:29:08 EST 2012


    [ https://issues.jboss.org/browse/AS7-6186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12742025#comment-12742025 ] 

Marek Schmidt commented on AS7-6186:
------------------------------------

And a third one, which IMHO finally proves Mojarra 2.1.16 breaks viewMap (see below and the attached AS7-6186-viewMap-v3.war reproducer)

With 2.1.16, no foo value is displayed after the first click, even though the value has been put there before the render response, so mojarra had plenty time to store it somewhere and retrieve it until the next invoke application phase:

{code}
@Model
public class Action
{
   private String foo;
	
   public String getFoo() {
	   return foo;
   }
   
   public void recordViewMap() {
       System.out.println("XXX recording the viewmap state to the model, so we can be sure the value is there in the INVOKE APPLICATION phase");
	   foo = (String)FacesContext.getCurrentInstance().getViewRoot().getViewMap().get("foo");
   }
}
{code}


{code}
public class MyPhaseListener implements PhaseListener {

	@Override
	public void afterPhase(PhaseEvent event) {
	    System.out.println("XXX: afterPhase: " + event.getPhaseId().toString());
	}

	@Override
	public void beforePhase(PhaseEvent event) {
		System.out.println("XXX: beforePhase: " + event.getPhaseId().toString());

		if (event.getPhaseId().equals(PhaseId.RENDER_RESPONSE)) {
		   
		   Map<String, Object> map = event.getFacesContext().getViewRoot().getViewMap();
		   if (!map.containsKey("foo")) {
		      System.out.println("XXX: putting foo:1 into the viewMap:");
		      map.put("foo", Integer.toString(1));
		   }
		   else {
		      System.out.println("XXX: setting foo to  " + map.get("foo") + " + 1");
		      map.put("foo", "" + (Integer.parseInt((String)map.get("foo")) + 1));
		   }
		}
	}

	@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>         	
         	<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