[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-1029) PerNestedConversation not detected on EJB3 beans

Richard Brooks (JIRA) jira-events at lists.jboss.org
Sun Mar 11 12:22:46 EDT 2007


PerNestedConversation not detected on EJB3 beans
------------------------------------------------

                 Key: JBSEAM-1029
                 URL: http://jira.jboss.com/jira/browse/JBSEAM-1029
             Project: JBoss Seam
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.2.0.GA
         Environment: JBoss 4.0.5.GA, Seam 1.2.0.Patch1, myFaces 1.1.4
            Reporter: Richard Brooks


The PerNestedConversation annotation isn't detected on ejb3 seam beans (or their interfaces).  The call in ServerConversationContext to java.lang.Class.isAnnotationPresent isn't working for my ejb3 stateful session beans as at runtime the class is proxied and only implements the EJB interface

To get it to work I changed the call to isAnnotationPresent in ServerConversationContext below:

[code]
                  boolean found = result!=null && 
                        ( i==0 || !result.getClass().isAnnotationPresent(PerNestedConversation.class) );
[/code]

to a local method that searches through the interfaces and hierachy as well

[code]
	private boolean isAnnotationPresent(Class clazz, Class<? extends Annotation> annotation) {
		boolean result = false;
		if ((clazz != null) && (annotation != null)) {
			result = clazz.isAnnotationPresent(annotation);
			if (!result) {
				//check the interfaces
				Class[] intfs = clazz.getInterfaces();
				if (intfs != null) {
					for (Class intf : intfs) {
						if (isAnnotationPresent(intf, annotation)) {
							result = true;
							break;
						}
					}
				}
				
				if (!result) {
					//check the super classes
					Class superClazz = clazz.getSuperclass();
					if (superClazz != null) {
						result = isAnnotationPresent(superClazz, annotation);
					}
				}
			}
				
		}
		return result;
	}
[/code]



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