[
https://issues.apache.org/jira/browse/WICKET-1130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12555704#action_12555704
]
Chris Davies commented on WICKET-1130:
--------------------------------------
Reproduced the behaviour by creating a simple singleton (SomeSingleton) and
tried to @Inject it into a page after binding the same way as described. Root
cause stack trace is:
java.lang.IllegalArgumentException: No visible constructors in class
foo.SomeSingleton
at net.sf.cglib.proxy.Enhancer.filterConstructors(Enhancer.java:531)
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:448)
at
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at
org.apache.wicket.proxy.LazyInitProxyFactory.createProxy(LazyInitProxyFactory.java:164)
at
org.apache.wicket.guice.GuiceComponentInjector.inject(GuiceComponentInjector.java:112)
at
org.apache.wicket.guice.GuiceComponentInjector.onInstantiation(GuiceComponentInjector.java:193)
at
org.apache.wicket.Application.notifyComponentInstantiationListeners(Application.java:973)
at org.apache.wicket.Component.<init>(Component.java:865)
at org.apache.wicket.MarkupContainer.<init>(MarkupContainer.java:104)
at org.apache.wicket.Page.<init>(Page.java:230)
at org.apache.wicket.markup.html.WebPage.<init>(WebPage.java:185)
at foo.TestPage.<init>(TestPage.java:20)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:58)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:262)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:283)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:210)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:90)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1094)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1169)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1248)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:489)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:343)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:193)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> Injection of Bound Instance Fails with Exception
> ------------------------------------------------
>
> Key: WICKET-1130
> URL: https://issues.apache.org/jira/browse/WICKET-1130
> Project: Wicket
> Issue Type: Bug
> Components: wicket-guice
> Affects Versions: 1.3.0-beta4
> Reporter: Daniel Spiewak
> Assignee: Alastair Maw
> Fix For: 1.3.1
>
>
> If I try to inject an explicitly bound instance into a component, injection
> fails with an exception in the creation of the CGLIB proxy:
> java.lang.IllegalArgumentException: Superclass has no null constructors but
> no arguments were given
> Stupidly, I forgot to save the whole stack trace and the code is now gone
> from my codebase (since I needed it to work). To repeat:
> @Override
> public void configure() {
> bind(EntityManager.class).toInstance(manager);
> }
> Seems wicket-guice is assuming that it needs to create a new instance of
> everything that's injected, and since EntityManager doesn't have a no-args
> constructor, such an action fails. Just an assumption anyway...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.