[ 
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.

Reply via email to