[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-1814) DataModel wrapped data is set to null by ManagedEntityIdentityInterceptor

Alex Savitsky (JIRA) jira-events at lists.jboss.org
Fri Jun 20 10:19:37 EDT 2008


    [ http://jira.jboss.com/jira/browse/JBSEAM-1814?page=comments#action_12418184 ] 
            
Alex Savitsky commented on JBSEAM-1814:
---------------------------------------

An updated isRef version - the one I currently use in my projects:

		if (value instanceof Collection) {
			Collection c = (Collection) value;
			if (!c.isEmpty()) {
				Iterator i = c.iterator();
				while (i.hasNext()) {
					Object o = i.next();
					if (o == null) {
						continue;
					}
					return Seam.getEntityClass(o.getClass()) != null;
				}
			}
			return false;
		}
		return Seam.getEntityClass(value.getClass()) != null;

Though it might be a good idea to limit the # of checked elements to some reasonable amount, for performance reasons

> DataModel wrapped data is set to null by ManagedEntityIdentityInterceptor
> -------------------------------------------------------------------------
>
>                 Key: JBSEAM-1814
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-1814
>             Project: Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0.BETA1
>         Environment: seam cvs (20070816.1709)
>            Reporter: Matt Drees
>         Assigned To: Norman Richards
>            Priority: Minor
>             Fix For: The future
>
>
> The following test fails:
> @Name("dataModelComponent")
> @Scope(ScopeType.CONVERSATION)
> public class DataModelComponent extends EntityQuery {
>    @Override
>    public String getEjbql() {
>       return "from java.lang.Object o";
>    }
> }
> public class DataModelComponentTest extends SeamTest {
> 	
>    @Test
>    public void test() throws Exception {
>       new FacesRequest() {
>          @Override
>          protected void renderResponse() throws Exception {
>             DataModel model = (DataModel) getValue("#{dataModelComponent.dataModel}");
>             assert model.getWrappedData() != null;
>          }
>       }.run();
>    }
> }
> Because the component is conversation-scoped, a ManagedEntityIdentityInterceptor is attached, which nulls the wrapped List after getDataModel() is called.
> In the referenced forum, Gavin indicated he hadn't decided whether this should be expected behavior or not, and asked for a jira issue.  
> If it is expected behavior (I hope not), I think either EntityQuery should not have a getDataModel() attribute, or it should be documented and/or programmatically enforced that EntityQuerys should not be conversation-scoped.

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

        



More information about the seam-issues mailing list