Hmm servlet arent passivationcapable for you? If so tomee integration holds the bug, not owb Le 10 mai 2013 23:12, "Romain Manni-Bucau" <[email protected]> a écrit :
> It is a normal failure, see cdi-140 > Le 10 mai 2013 23:03, "Arne Limburg" <[email protected]> a > écrit : > >> 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 >> > >> >>
