Return-Path: X-Original-To: apmail-openwebbeans-commits-archive@www.apache.org Delivered-To: apmail-openwebbeans-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3FC5CC271 for ; Sun, 21 Dec 2014 19:53:28 +0000 (UTC) Received: (qmail 57154 invoked by uid 500); 21 Dec 2014 19:53:28 -0000 Delivered-To: apmail-openwebbeans-commits-archive@openwebbeans.apache.org Received: (qmail 57135 invoked by uid 500); 21 Dec 2014 19:53:28 -0000 Mailing-List: contact commits-help@openwebbeans.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openwebbeans.apache.org Delivered-To: mailing list commits@openwebbeans.apache.org Received: (qmail 57119 invoked by uid 99); 21 Dec 2014 19:53:28 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 21 Dec 2014 19:53:28 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id 75415AC094D; Sun, 21 Dec 2014 19:53:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1647199 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: config/BeansDeployer.java portable/events/generics/GProcessAnnotatedType.java Date: Sun, 21 Dec 2014 19:53:26 -0000 To: commits@openwebbeans.apache.org From: rmannibucau@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20141221195327.75415AC094D@hades.apache.org> Author: rmannibucau Date: Sun Dec 21 19:53:26 2014 New Revision: 1647199 URL: http://svn.apache.org/r1647199 Log: ProcessAnnotatedType shouldn't be usable after it was fired Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=1647199&r1=1647198&r2=1647199&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java Sun Dec 21 19:53:26 2014 @@ -62,13 +62,13 @@ import org.apache.webbeans.logger.WebBea import org.apache.webbeans.portable.AbstractProducer; import org.apache.webbeans.portable.AnnotatedElementFactory; import org.apache.webbeans.portable.BaseProducerProducer; -import org.apache.webbeans.portable.events.ProcessAnnotatedTypeImpl; import org.apache.webbeans.portable.events.ProcessBeanImpl; import org.apache.webbeans.portable.events.ProcessSyntheticAnnotatedTypeImpl; import org.apache.webbeans.portable.events.discovery.AfterBeanDiscoveryImpl; import org.apache.webbeans.portable.events.discovery.AfterDeploymentValidationImpl; import org.apache.webbeans.portable.events.discovery.AfterTypeDiscoveryImpl; import org.apache.webbeans.portable.events.discovery.BeforeBeanDiscoveryImpl; +import org.apache.webbeans.portable.events.generics.GProcessAnnotatedType; import org.apache.webbeans.portable.events.generics.GProcessManagedBean; import org.apache.webbeans.spi.BeanArchiveService; import org.apache.webbeans.spi.JNDIService; @@ -865,11 +865,12 @@ public class BeansDeployer // Fires ProcessAnnotatedType if (!annotatedType.getJavaClass().isAnnotation()) { - ProcessAnnotatedTypeImpl processAnnotatedEvent = webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType); + GProcessAnnotatedType processAnnotatedEvent = webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType); if (!processAnnotatedEvent.isVeto()) { annotatedTypes.add(processAnnotatedEvent.getAnnotatedType()); } + processAnnotatedEvent.setAfter(); } else { @@ -1195,7 +1196,7 @@ public class BeansDeployer annotatedType = webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz); } - ProcessAnnotatedTypeImpl processAnnotatedEvent = + GProcessAnnotatedType processAnnotatedEvent = webBeansContext.getWebBeansUtil().fireProcessAnnotatedTypeEvent(annotatedType); // if veto() is called @@ -1205,6 +1206,7 @@ public class BeansDeployer } annotatedType = processAnnotatedEvent.getAnnotatedType(); + processAnnotatedEvent.setAfter(); Set annTypeAnnotations = annotatedType.getAnnotations(); if (annTypeAnnotations != null) Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java?rev=1647199&r1=1647198&r2=1647199&view=diff ============================================================================== --- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java (original) +++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/generics/GProcessAnnotatedType.java Sun Dec 21 19:53:26 2014 @@ -25,11 +25,48 @@ import org.apache.webbeans.portable.even @SuppressWarnings("unchecked") public class GProcessAnnotatedType extends ProcessAnnotatedTypeImpl implements GenericBeanEvent { + private boolean after = false; + public GProcessAnnotatedType(AnnotatedType annotatedType ) { super(annotatedType); } + public void setAfter() + { + this.after = true; + } + + @Override + public AnnotatedType getAnnotatedType() + { + if (after) + { + throw new IllegalStateException("Can't call ProcessAnnotatedType.getAnnotatedType() after the event"); + } + return super.getAnnotatedType(); + } + + @Override + public void setAnnotatedType(AnnotatedType type) + { + if (after) + { + throw new IllegalStateException("Can't call ProcessAnnotatedType.setAnnotatedType(at) after the event"); + } + super.setAnnotatedType(type); + } + + @Override + public void veto() + { + if (after) + { + throw new IllegalStateException("Can't call ProcessAnnotatedType.veto() after the event"); + } + super.veto(); + } + @Override public Class getBeanClassFor(Class eventClass) {