In case anybody is interested, I was hitting a similar problem and here's what 
was happening in my case:

EntityConverter#getAsObject() calls EntityManager#find(), but 
EntityManager#find() may return a proxy instead of the real object when there's 
already a proxy for the object in the session.

Now, there's code in UISelectOne#matchValue (in JSF RI) that checks whether the 
value it received is in the list of select items:

                //Coerce the item value type before comparing values.
                Class type = value.getClass();
                Object newValue;
                try {
                    newValue = getFacesContext().getApplication().
                        getExpressionFactory().coerceToType(item.getValue(), 
type);
                } catch (ELException ele) {
...

This coercion doesn't work since value.getClass() is a proxy class, whereas 
item.getValue() is plain MyObject, so it can't be coerced to the proxy type. 
Thus the effect is that I can't select some entities out of the list, while 
others are selectable just fine.

I'm going to implement my own slightly hacked version of EntityStore Seam 
component to see if I can work around the issue.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4123768#4123768

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4123768
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to