SWF-856 - When using JSF getMaximumSeverity on the FlowFacesContext returns null even if a message has been added

This commit is contained in:
Jeremy Grelle
2009-01-14 22:21:01 +00:00
parent 1af29f45f1
commit 1d979b7b2d
2 changed files with 21 additions and 13 deletions

View File

@@ -93,6 +93,21 @@ public class FlowFacesContext extends FacesContext {
return messageDelegate.getClientIdsWithMessages();
}
public ELContext getELContext() {
Method delegateMethod = ClassUtils.getMethodIfAvailable(delegate.getClass(), "getELContext", null);
if (delegateMethod != null) {
try {
ELContext context = (ELContext) delegateMethod.invoke(delegate, null);
context.putContext(FacesContext.class, this);
return context;
} catch (Exception e) {
return null;
}
} else {
return null;
}
}
/**
* Return the maximum severity level recorded on any FacesMessages that has been queued, whether or not they are
* associated with any specific UIComponent. If no such messages have been queued, return null.
@@ -143,19 +158,6 @@ public class FlowFacesContext extends FacesContext {
return delegate.getApplication();
}
public ELContext getELContext() {
Method delegateMethod = ClassUtils.getMethodIfAvailable(delegate.getClass(), "getELContext", null);
if (delegateMethod != null) {
try {
return (ELContext) delegateMethod.invoke(delegate, null);
} catch (Exception e) {
return null;
}
} else {
return null;
}
}
public ExternalContext getExternalContext() {
return new FlowExternalContext(delegate.getExternalContext());
}

View File

@@ -176,6 +176,12 @@ public class FlowFacesContextTests extends TestCase {
assertEquals(FacesMessage.SEVERITY_FATAL, facesContext.getMaximumSeverity());
}
public final void testGetELContext() {
assertNotNull(facesContext.getELContext());
assertSame(facesContext, facesContext.getELContext().getContext(FacesContext.class));
}
private void setupMessageContext() {
prepopulatedMessageContext = new DefaultMessageContext();
prepopulatedMessageContext.addMessage(new MessageBuilder().source("null_summary").defaultText("foo").info()