[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2039) selectManyListbox executePhase NullPointerException
by Przemyslaw Rudzki (JIRA)
selectManyListbox executePhase NullPointerException
---------------------------------------------------
Key: JBSEAM-2039
URL: http://jira.jboss.com/jira/browse/JBSEAM-2039
Project: JBoss Seam
Issue Type: Bug
Components: JSF
Affects Versions: 1.2.1.GA
Environment: JBoss AS 4.2.1GA, Sun Microsystems JavaServer Faces Implementation 1.2_04-b16-p02, Ubuntu 7.04
Reporter: Przemyslaw Rudzki
Fix For: 1.2.1.GA
I have simple model:
class Book {
@ManyToMany //unidirectional
private List<DictionaryEntry> dictionaryEntryList;
}
In the JSF it is presented as:
<h:selectManyListbox id="select2Status" value="#{bookHome.instance.dictionaryEntryList}" required="false">
<s:convertEntity />
<s:selectItems value="#{dictionaryEntryList.resultList}" var="item" label="#{item.value}" noSelectionLabel="---------" />
</h:selectManyListbox>
1. When I create entity with some elements selected everything works fine.
2. When I edit the selection and update everything works great.
3. The problem occurs when I deselect all the items and try to do an update. I get then:
00:46:49,840 WARN [lifecycle] executePhase(PROCESS_VALIDATIONS 3,com.sun.faces.context.FacesContextImpl@1625154) threw exception
javax.faces.FacesException
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:108)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:307)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at javax.faces.component.UISelectMany.matchValue(UISelectMany.java:496)
at javax.faces.component.UISelectMany.validateValue(UISelectMany.java:454)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2226) Need Customer actionOutcome and actionMethod
by Danny Chen (JIRA)
Need Customer actionOutcome and actionMethod
--------------------------------------------
Key: JBSEAM-2226
URL: http://jira.jboss.com/jira/browse/JBSEAM-2226
Project: JBoss Seam
Issue Type: Feature Request
Components: Core
Affects Versions: 2.0.0.GA
Reporter: Danny Chen
For conversion id, JBoss Seam provide customize method, for example:
<core:manager
conversation-timeout="300000"
conversation-id-parameter="cid"
/>
But for <s:link>, <s:button>'s actionOutcome and actionMethod, there isn't a way to change these id. I find it is hardcode in:
UIAction:
public String getName()
{
return isMethodBinding() ? "actionMethod" : "actionOutcome";
}
Pages:
private static boolean callAction(FacesContext facesContext)
{
//TODO: refactor with Pages.instance().callAction()!!
boolean result = false;
String outcome = facesContext.getExternalContext()
.getRequestParameterMap().get("actionOutcome");
String fromAction = outcome;
if (outcome==null)
{
String actionId = facesContext.getExternalContext()
.getRequestParameterMap().get("actionMethod");
if (actionId!=null)
{
if ( !SafeActions.instance().isActionSafe(actionId) ) return result;
String expression = SafeActions.toAction(actionId);
result = true;
MethodExpression actionExpression = Expressions.instance().createMethodExpression(expression);
outcome = toString( actionExpression.invoke() );
fromAction = expression;
handleOutcome(facesContext, outcome, fromAction);
}
}
else
{
handleOutcome(facesContext, outcome, fromAction);
}
return result;
}
Can let us change them just like conversion id? Thanks
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-1289) Conversation Propagation andTrinidad Dialogs
by Brian Smith (JIRA)
Conversation Propagation andTrinidad Dialogs
--------------------------------------------
Key: JBSEAM-1289
URL: http://jira.jboss.com/jira/browse/JBSEAM-1289
Project: JBoss Seam
Issue Type: Feature Request
Environment: JBoss 4.0.4GA
Reporter: Brian Smith
Seam does not automatically support Trinidad's dialog feature in terms of propagating long running conversations to the dialog window.
Forum User dajevtic has provided a custom phase listener and action listener to enable propagation but it requires a specific naming convention for the dialog page. It would be nice to enable support directly using standard Seam notation like the s:conversationPropagation tag or @Begin(join = true)
Here are the relevant phase listener and action listener
*Phase Listener*
private static final String CONVERSATION_ID_SESSION_PARAMETER = "conversationId";
private Map createParameterMapForConversationRestore(String conversationId) {
Map paramterMap = new Hashtable();
paramterMap.put(CONVERSATION_ID_SESSION_PARAMETER, conversationId);
return paramterMap;
}
private void restoreConversation(Context context) {
if (context.isSet(CONVERSATION_ID_SESSION_PARAMETER)) {
String convId = context.get(CONVERSATION_ID_SESSION_PARAMETER).toString();
Manager.instance().restoreConversation(createParameterMapForConversationRestore(convId));
context.remove(CONVERSATION_ID_SESSION_PARAMETER);
}
}
public void afterPhase(PhaseEvent event) {
try {
if (event.getPhaseId().equals(PhaseId.RESTORE_VIEW)) {
UIViewRoot root = event.getFacesContext().getViewRoot();
if (root != null) {
String viewId = root.getViewId();
if ((viewId != null) && viewId.endsWith("_dlg.jspx")) {
restoreConversation(Contexts.getSessionContext());
}
}
} else {
log.info("after " + event.getPhaseId());
}
} catch (Exception e) {
log.error("Could not restore Seam conversation", e);
}
}
*Action Listener*
public void processAction(ActionEvent actionEvent)
throws AbortProcessingException {
if (actionEvent.getComponent() instanceof CoreCommandLink) {
CoreCommandLink link = (CoreCommandLink)actionEvent.getComponent();
if (link.isUseWindow()) {
Contexts.getSessionContext().set("conversationId", Manager.instance().getCurrentConversationId());
}
}
super.processAction(actionEvent);
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months