appCtx.getBean() does no longer work in scripting console

Description

Getting a bean in the ScriptingConsole using appCtx.getBean("seeds") does not work with Heritrix 3.2.0 (it worked fine with Heritrix 3.1.0):

mgr = appCtx.getBean("sheetOverlaysManager")

throws the exception:

sun.org.mozilla.javascript.WrappedException: Wrapped org.springframework.beans.factory.BeanDefinitionStoreException: Can only specify arguments for the getBean method when referring to a prototype bean definition (#1)
at sun.org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754)
at sun.org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148)
at sun.org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
at sun.org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1473)
at script(:1)
at sun.org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
at sun.org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
at sun.org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at com.sun.script.javascript.RhinoScriptEngine$1.superDoTopCall(RhinoScriptEngine.java:116)
at com.sun.script.javascript.RhinoScriptEngine$1.doTopCall(RhinoScriptEngine.java:109)
at sun.org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at sun.org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:120)
at sun.org.mozilla.javascript.Context.evaluateReader(Context.java:1110)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:214)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:240)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)
at org.archive.crawler.restlet.ScriptingConsole.execute(ScriptingConsole.java:89)
at org.archive.crawler.restlet.ScriptResource.acceptRepresentation(ScriptResource.java:119)
at org.restlet.resource.Resource.post(Resource.java:683)
at org.restlet.resource.Resource.handlePost(Resource.java:537)
at org.restlet.Finder.handle(Finder.java:357)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112)
at org.restlet.Application.handle(Application.java:341)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Guard.accept(Guard.java:198)
at org.restlet.Guard.doHandle(Guard.java:354)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
at org.restlet.Component.handle(Component.java:673)
at org.restlet.Server.handle(Server.java:331)
at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68)
at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147)
at com.noelios.restlet.ext.jetty.JettyServerHelper$WrappedServer.handle(JettyServerHelper.java:174)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:713)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Can only specify arguments for the getBean method when referring to a prototype bean definition
at org.springframework.beans.factory.support.AbstractBeanFactory.checkMergedBeanDefinition(AbstractBeanFactory.java:1203)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:275)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1087)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
... 62 more

This breaks the functionality to put URLs into retired queues as described in the wiki.

This might be related to a bug/change in Spring, cf. https://jira.spring.io/browse/SPR-12488

Environment

None

Status

Assignee

Unassigned

Reporter

Robert Jäschke

Group Assignee

None

ZendeskID

None

Estimated Difficulty

None

Actual Difficulty

None

Affects versions

Priority

Major
Configure