geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Quintin Beukes <quin...@last.za.net>
Subject console-testsuite/advanced failure on WebServerTest.testEditConnector
Date Fri, 09 Oct 2009 15:18:22 GMT
Hey,

I had a look at why this fails and it's due to the "edit" connector
not working for the JettyConnector editor. The reason the test fails
is because once you edit the connector and it gets stopped/started, it
enters the failed state, and the number of "option links" change from
4 to 3, so when selenium tries to click link 3 (edit), it actually
clicks the delete link and receives an unexpected confirmation.

Further, the reason the connector fails to start is due to this exception:
2009-10-09 15:52:54,801 ERROR [GBeanInstanceState] Error while
starting; GBean is now in the FAILED state:
abstractName="org.apache.geronimo.configs/jetty7/2.2-SNAPSHOT/car?ServiceModule=org.apache.geronimo.configs/jetty7/2.2-SNAPSHOT/car,j2eeType=GBean,name=testConnector1"
org.apache.xbean.recipe.MissingAccessorException: Unable to find a
valid setter method: public void
org.apache.geronimo.jetty7.connector.HTTPSelectChannelConnector.setConnectUrl(...)
	at org.apache.xbean.recipe.ReflectionUtil.findAllSetters(ReflectionUtil.java:386)
	at org.apache.xbean.recipe.ObjectRecipe.setProperty(ObjectRecipe.java:462)
	at org.apache.xbean.recipe.ObjectRecipe.setProperties(ObjectRecipe.java:371)
	at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:286)
	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
	at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
	at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:910)
	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:269)
	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:103)
	at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:524)
	at org.apache.geronimo.kernel.basic.BasicKernel.startGBean(BasicKernel.java:359)
	at org.apache.geronimo.console.webmanager.ConnectorPortlet.processAction(ConnectorPortlet.java:224)
	at org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:218)
	at org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:145)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:426)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:495)
	at org.apache.geronimo.jetty7.handler.JaccSecurityHandler.handle(JaccSecurityHandler.java:89)
	at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:361)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:864)
	at org.apache.geronimo.jetty7.handler.GeronimoWebAppContext.doScope(GeronimoWebAppContext.java:107)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
	at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:189)
	at org.apache.pluto.core.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:167)
	at org.apache.pluto.core.DefaultPortletInvokerService.action(DefaultPortletInvokerService.java:85)
	at org.apache.pluto.core.PortletContainerImpl.doAction(PortletContainerImpl.java:217)
	at org.apache.pluto.driver.PortalDriverServlet.doGet(PortalDriverServlet.java:121)
	at org.apache.pluto.driver.PortalDriverServlet.doPost(PortalDriverServlet.java:167)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1211)
	at org.apache.geronimo.console.filter.PlutoURLRebuildFilter.doFilter(PlutoURLRebuildFilter.java:48)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1182)
	at org.apache.geronimo.console.filter.XSSXSRFFilter.doFilter(XSSXSRFFilter.java:130)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1182)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:424)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:447)
	at org.apache.geronimo.jetty7.handler.JaccSecurityHandler.handle(JaccSecurityHandler.java:89)
	at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:361)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:864)
	at org.apache.geronimo.jetty7.handler.GeronimoWebAppContext.doScope(GeronimoWebAppContext.java:107)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:243)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:112)
	at org.eclipse.jetty.server.Server.handle(Server.java:333)
	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:552)
	at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:993)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:739)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:209)
	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:399)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:437)
	at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214)
	at org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
	at java.lang.Thread.run(Thread.java:595)

Another time it also failed with:
org.apache.xbean.recipe.MissingAccessorException: Unable to find a
valid setter method: public void
org.apache.geronimo.jetty7.connector.HTTPSelectChannelConnector.setProtocol(...)

I'm not sure I did anything different. I just figure it was sorted a
bit differently. So it seems like it could be those 2 properties for
which it doesn't have setters.

I had a look at JettyConnector, and noticed there is a
getConnectUrl(), which dynamically constructs it from the relevant
parts, though there isn't a setConnectUrl(). Same with getProtocol()
which returns a static value. I tried to look around the stacktrace to
see if I can find where they come from, but was unable to do so,
mainly due to not being able to have my changes reflect in Geronimo.
In ./framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/gbean/runtime/GBeanInstance.java
where it creates the ObjectRecipe I added a System.out.println() to
see which properties are being supplied (in order to learn what's
going on where and how it works), but I tried many different compiles
and can't seem to get those values to ever print anywhere.

So, I have 2 questions.
1. Can someone please tell me how to build a given section of
geronimo. A complete build even with tests disabled takes FAR too
long.
2. Re. these methods.
- I can try and trace where the properties come from and maybe have
them not sent through to these classes, so they don't try to get
injected.
- OR, I can add a dummy setter for setProtocol() which simply ignores
the String supplied to it, and a setConnectUrl() which breaks up the
string and sets the components (the reverse of getConnectUrl()).

Quintin Beukes

Mime
View raw message