Seam Manager.encodeConversationId() signature changed - breaks ICEFaces interfacing code  XML
Forum Index -> JBoss Seam Integration
Author Message

Joined: 16/Feb/2007 00:00:00
Messages: 3


I just moved up to 1.6DR1 and I decided to also pick up the tip of the seam project from CVS; I've been having a lot of problems with integrating dynamic language with 1.2Patch1 (some conflict with ICEfaces) so I was hoping the latest and greatest would have some improvements in tthe area; I'd like to keep using the messsage resource object and not have to implement my own messages hash table. But I digress...

With the latest Seam code - there have been some changes recently with interface methods ICEfaces is calling, pertaining to the org.jboss.seam.core.Manager class, some of the methods have had a second parameter added - the view Id. One particular one is causing a getMethod() exception in SeamUtilities because it's still looking for a method matching the old signature.

From org.jboss.core.Manager, the method in question used to be:
 public String encodeConversationId(String url) 
       //DONT BREAK, icefaces uses this
       if ( Seam.isSessionInvalid() || containsParameter(url, conversationIdParameter) )
 . . .

And it has been changed to:
   public String encodeConversationId(String url, String viewId) 
       Page page = Pages.instance().getPage(viewId);
       String paramName = page.getConversationIdParameter().getParameterName();
 . . .

I made a change in com.icesoft.util.SeamUtilities class, changing the argument prototype from:
private static Class[] seamGetEncodeMethodArgs = {String.class};

private static Class[] seamGetEncodeMethodArgs = {String.class, String.class}; 

This allowed me to move further. I verified that the seamGetEncodeMethodArgs function is not being called from anywhere (please correct me if this is wrong, I may have missed something!)

Anyway this helped me move ahead. I know the ICEfaces folks are currently knee deep in Seam integration for 1.6 so I didn't open a JIRA issue for this, I figured it may be part of the Seam/ICEfaces work currently underway. I'll leave it to the ICEfaces developers...

In any case, the change helped me move ahead, although now I'm stuck with another blocker that I've noticed people are discussing on the board, has anyone figured out why this is happening?

01:56:36,646 ERROR [ExceptionFilter] uncaught exception
javax.servlet.ServletException: Session expired
at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
. . .
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
01:56:36,736 ERROR [[Persistent Faces Servlet]] Servlet.service() for servlet Persistent Faces Servlet threw exception
java.lang.IllegalArgumentException: Stack must not be null
at org.jboss.seam.core.ConversationEntry.<init>(ConversationEntry.java:40)


Joined: 26/Oct/2004 00:00:00
Messages: 85

Well, we've just caught up to 1.2.1, and indeed, the Seam API has changed. We'll try to get an update into the next DR (1.6 DR#3 ) for this.

Joined: 29/Mar/2007 00:00:00
Messages: 2

When will you plan to publish the next DR 1.6 DR#3 version?

Joined: 13/Nov/2006 00:00:00
Messages: 74

We are hoping to get it out by the end of the week. Fingers crossed the initial QA testing is ok.

Forum Index -> JBoss Seam Integration
Go to:   
Powered by JForum 2.1.7ice © JForum Team