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 <[email protected]> Kime: "[email protected]" <[email protected]> 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: "[email protected]" <[email protected]> > To: [email protected] > 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); >
