Hi David,

Do I read the log correctly and SimpleServlet is @Dependent? Is
SimpleServlet injected into a passivation-capable bean?
If not, I agree with you that this is a bug.


Cheers,
Arne

Am 10.05.13 22:55 schrieb "David Blevins" unter <[email protected]>:

>Since the upgrade to 1.2.0 in we have a test failure.  There's a servlet
>with constructor injection like so:
>
>
>    @Inject
>    public SimpleServlet(Car car) {
>        this.car = car;
>    }
>
>And Car looks like so:
>
>    public class Car {
>        private final String make = "Lexus", model = "IS 350";
>        private final int year = 2011;
>    
>        public String drive(String name) {
>            return name + " is on the wheel of a " + year + " " + make +
>" " + model;
>        }
>    }
>
>All deploys fine and everything is injected as expected.  Now the
>problem.  If you introduce a producer, it fails saying Car is not
>passivation capable as required by the SimpleServlet injection point.
>
>    public class Car {
>        private final String make = "Lexus", model = "IS 350";
>        private final int year = 2011;
>
>        public Car(String ignore) {
>        }
>
>        public String drive(String name) {
>            return name + " is on the wheel of a " + year + " " + make +
>" " + model;
>        }
>    }
>
>    public class Foo {
>    
>        @Produces @Default
>        public Car car() {
>            return new Car("foo");
>        }
>    }
>
>
>javax.enterprise.inject.IllegalProductException: A producer method or
>field of scope @Dependent returns an unserializable object for injection
>into an injection point Constructor Injection Point, constructor name :
>org.apache.openejb.arquillian.tests.cdi.constructor.SimpleServlet, Bean
>Owner : [SimpleServlet, Name:null, WebBeans Type:DEPENDENT, API
>Types:[java.io.Serializable,java.lang.Object,javax.servlet.ServletConfig,o
>rg.apache.openejb.arquillian.tests.cdi.constructor.SimpleServlet,javax.ser
>vlet.http.HttpServlet,javax.servlet.Servlet,javax.servlet.GenericServlet],
> 
>Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]]
>that requires a passivation capable dependency
>       at 
>org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.ja
>va:108)
>       at 
>org.apache.webbeans.inject.InjectableConstructor.doInjection(InjectableCon
>structor.java:80)
>       at 
>org.apache.webbeans.portable.InjectionTargetImpl.newInstance(InjectionTarg
>etImpl.java:253)
>       at 
>org.apache.webbeans.portable.InjectionTargetImpl.produce(InjectionTargetIm
>pl.java:180)
>       at 
>org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:
>119)
>
>There's debate as if the test is bad or if the check is incorrect.  Seems
>like an OWB bug to me.
>
>Thoughts?
>
>
>-David
>

Reply via email to