Author: jgallimore
Date: Wed Sep 10 20:28:59 2014
New Revision: 1624113

URL: http://svn.apache.org/r1624113
Log:
TOMEE-1342 check subclasses of SessionBean correctly in SXC marshalling code to 
avoid errors serializing EjbJar objects when writing out the dscriptors

Modified:
    
tomee/tomee/branches/tomee-1.7.x/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/SessionBean$JAXB.java

Modified: 
tomee/tomee/branches/tomee-1.7.x/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/SessionBean$JAXB.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/SessionBean%24JAXB.java?rev=1624113&r1=1624112&r2=1624113&view=diff
==============================================================================
--- 
tomee/tomee/branches/tomee-1.7.x/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/SessionBean$JAXB.java
 (original)
+++ 
tomee/tomee/branches/tomee-1.7.x/container/openejb-jee-accessors/src/main/java/org/apache/openejb/jee/SessionBean$JAXB.java
 Wed Sep 10 20:28:59 2014
@@ -25,9 +25,12 @@ import org.metatype.sxc.util.XoXMLStream
 import javax.xml.XMLConstants;
 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import javax.xml.namespace.QName;
+
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Set;
 
 import static org.apache.openejb.jee.AroundInvoke$JAXB.readAroundInvoke;
 import static org.apache.openejb.jee.AroundInvoke$JAXB.writeAroundInvoke;
@@ -91,7 +94,19 @@ import static org.apache.openejb.jee.Tra
 })
 public class SessionBean$JAXB
     extends JAXBObject<SessionBean> {
+       
+       private static final Set<String> sessionBeanClasses;
 
+       static {
+               sessionBeanClasses = new HashSet<String>();
+               sessionBeanClasses.add("org.apache.openejb.jee.SessionBean");
+               sessionBeanClasses.add("org.apache.openejb.jee.ManagedBean");
+               
sessionBeanClasses.add("org.apache.openejb.config.CompManagedBean");
+               sessionBeanClasses.add("org.apache.openejb.jee.StatefulBean");
+               sessionBeanClasses.add("org.apache.openejb.jee.StatelessBean");
+               sessionBeanClasses.add("org.apache.openejb.jee.SingletonBean");
+               
+       }
 
     public SessionBean$JAXB() {
         super(SessionBean.class, null, new 
QName("http://java.sun.com/xml/ns/javaee".intern(), 
"session-beanType".intern()), Text$JAXB.class, Icon$JAXB.class, 
Empty$JAXB.class, SessionType$JAXB.class, Timeout$JAXB.class, 
NamedMethod$JAXB.class, Timer$JAXB.class, ConcurrencyManagementType$JAXB.class, 
ConcurrentMethod$JAXB.class, InitMethod$JAXB.class, RemoveMethod$JAXB.class, 
AsyncMethod$JAXB.class, TransactionType$JAXB.class, AroundInvoke$JAXB.class, 
AroundTimeout$JAXB.class, EnvEntry$JAXB.class, EjbRef$JAXB.class, 
EjbLocalRef$JAXB.class, ServiceRef$JAXB.class, ResourceRef$JAXB.class, 
ResourceEnvRef$JAXB.class, MessageDestinationRef$JAXB.class, 
PersistenceContextRef$JAXB.class, PersistenceUnitRef$JAXB.class, 
LifecycleCallback$JAXB.class, DataSource$JAXB.class, 
SecurityRoleRef$JAXB.class, SecurityIdentity$JAXB.class);
@@ -828,7 +843,8 @@ public class SessionBean$JAXB
         }
 
         final String prefix = 
writer.getUniquePrefix("http://java.sun.com/xml/ns/javaee";);
-        if (SessionBean.class != sessionBean.getClass()) {
+        
+        if (! sessionBeanClasses.contains(sessionBean.getClass().getName())) {
             context.unexpectedSubclass(writer, sessionBean, SessionBean.class);
             return;
         }


Reply via email to