Actually that code is used in TomEE afaik. We might think about better separation between CDI and EJB in the end.
Also this part would need unit test - another argument for creating a JIRA. LieGrue, strub ----- Original Message ----- > From: Gurkan Erdogdu <gurkanerdo...@yahoo.com> > To: "dev@openwebbeans.apache.org" <dev@openwebbeans.apache.org> > Cc: > Sent: Thursday, November 15, 2012 2:16 PM > Subject: Re: svn commit: r1409751 - in > /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy: > ProxyFactory.java javassist/JavassistFactory.java > > Hey Mark > > > I don't think to create JIRA issues for every commit. I think that this is > not a big change, this method is not used in anywhere in the codebase and > only > used for EJB purposes. Someone removed this code while removing Javassist > functionality and introduces regression. Sure to always open for a big > changes! > > > Gurkan > > > > ________________________________ > Kimden: Mark Struberg <strub...@yahoo.de> > Kime: "dev@openwebbeans.apache.org" > <dev@openwebbeans.apache.org> > Gönderildiği Tarih: 15 Kasım 2012 15:10 Perşembe > Konu: Re: svn commit: r1409751 - in > /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy: > ProxyFactory.java javassist/JavassistFactory.java > > Gurkan, please create a JIRA for all other than cosmetical changes! > This is a pretty big change internally and really requires a JIRA entry. > > txs and LieGrue, > strub > > > > ----- Original Message ----- >> From: "gerdo...@apache.org" <gerdo...@apache.org> >> To: comm...@openwebbeans.apache.org >> Cc: >> Sent: Thursday, November 15, 2012 1:25 PM >> Subject: svn commit: r1409751 - in > /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy: > ProxyFactory.java javassist/JavassistFactory.java >> >> Author: gerdogdu >> Date: Thu Nov 15 12:25:17 2012 >> New Revision: 1409751 >> >> URL: http://svn.apache.org/viewvc?rev=1409751&view=rev >> Log: >> Regression in Javassist remove updates >> >> Modified: >> >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java >> >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java >> >> Modified: >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java >> URL: >> > http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java?rev=1409751&r1=1409750&r2=1409751&view=diff >> > ============================================================================== >> --- >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java > > >> (original) >> +++ >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java > > >> Thu Nov 15 12:25:17 2012 >> @@ -22,6 +22,7 @@ import java.io.Serializable; >> import java.lang.reflect.Constructor; >> import java.lang.reflect.InvocationTargetException; >> import java.lang.reflect.Type; >> +import java.util.ArrayList; >> import java.util.HashSet; >> import java.util.Iterator; >> import java.util.List; >> @@ -106,12 +107,60 @@ public final class ProxyFactory >> */ >> public Class<?> getEjbBeanProxyClass(OwbBean<?> bean, >> Class<?> iface) >> { >> + Class<?> proxyClass = null; >> + >> ConcurrentMap<Class<?>, Class<?>> > typeToProxyClassMap >> = ejbProxyClasses.get(bean); >> - if (typeToProxyClassMap != null) >> + if (typeToProxyClassMap == null) >> { >> - return typeToProxyClassMap.get(iface); >> + typeToProxyClassMap = new ConcurrentHashMap<Class<?>, > >> Class<?>>(); >> + ConcurrentMap<Class<?>, Class<?>> > existingMap = >> ejbProxyClasses.putIfAbsent(bean, typeToProxyClassMap); >> + >> + // use the map that beat us, because our new one definitely > had no >> classes in it. >> + typeToProxyClassMap = (existingMap != null) ? existingMap : >> typeToProxyClassMap; >> } >> - return null; >> + >> + proxyClass = typeToProxyClassMap.get(iface); >> + >> + if (proxyClass == null) >> + { >> + Class<?> superClazz = null; >> + List<Class<?>> list = new >> ArrayList<Class<?>>(); >> + Class<?>[] interfaces = null; >> + >> + if (iface.isInterface()) >> + { >> + list.add(iface); >> + } >> + else >> + { >> + // @LocalBean no-interface local view requested >> + superClazz = iface; >> + //Stateless beans with no interface >> + //To failover bean instance >> + Class<?>[] ifaces = iface.getInterfaces(); >> + if(ifaces != null && ifaces.length > 0) >> + { >> + //check for serializable >> + for(Class<?> temp : ifaces) >> + { >> + if(temp == Serializable.class) >> + { >> + list.add(Serializable.class); >> + break; >> + } >> + } >> + } >> + } >> + >> + interfaces = new Class<?>[list.size()]; >> + interfaces = list.toArray(interfaces); >> + proxyClass = factory.getProxyClass(superClazz, interfaces); >> + >> + typeToProxyClassMap.putIfAbsent(iface, proxyClass); >> + // don't care if we were beaten in updating the >> iface->proxyclass map >> + } >> + >> + return proxyClass; >> } >> >> public Object createDecoratorDelegate(OwbBean<?> bean, >> DelegateHandler newDelegateHandler) >> >> Modified: >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java >> URL: >> > http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java?rev=1409751&r1=1409750&r2=1409751&view=diff >> > ============================================================================== >> --- >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java > > >> (original) >> +++ >> > openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/javassist/JavassistFactory.java > > >> Thu Nov 15 12:25:17 2012 >> @@ -38,7 +38,10 @@ public class JavassistFactory >> { >> ProxyFactory fact = new ProxyFactory(); >> fact.setInterfaces(interfaces); >> - fact.setSuperclass(superClass); >> + if(superClass != null) >> + { >> + fact.setSuperclass(superClass); >> + } >> fact.setFilter(FinalizeMethodFilter.INSTANCE); >> >> return getProxyClass(fact); >> >