cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Klimetschek (JIRA)" <j...@apache.org>
Subject [jira] Created: (COCOON-2036) Handle circular dependencies in servlet connections
Date Tue, 03 Apr 2007 19:41:32 GMT
Handle circular dependencies in servlet connections
---------------------------------------------------

                 Key: COCOON-2036
                 URL: https://issues.apache.org/jira/browse/COCOON-2036
             Project: Cocoon
          Issue Type: Bug
          Components: - Servlet service framework
    Affects Versions: 2.2-dev (Current SVN)
            Reporter: Alexander Klimetschek


Circular dependencies in servlet connections lead to a Spring exception [1]  in [2] that does
not provide any help. The previous implementation (block:) did allow circular dependencies
because they were not handled by spring but by custom code.

Solution would be either to allow them (probably difficult to implement with spring) or, if
not, to provide a helpful warning message, that skips this problem. The latter could be a
check for embeddedServlet==null and, if not, throw an exception saying "you might have a circular
dependency in <servlet-foobar>".

---

[1]:

The exception is thrown after ServletFactoryBean.getObject() tries to create a proxy for the
embeddedServlet, which is null in the case of a circular dependency (one of the circle endpoints
is created, but the other will be null).

Caused by: org.springframework.aop.framework.AopConfigException: Can't proxy null object
        at org.springframework.aop.framework.ProxyFactory.<init>(ProxyFactory.java:49)
        at org.apache.cocoon.servletservice.spring.ServletFactoryBean.getObject(ServletFactoryBean.java:194)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectFromFactoryBean(AbstractBeanFactory.java:1211)

[2]:
    public Object getObject() throws Exception {
        ProxyFactory proxyFactory = new ProxyFactory(this.embeddedServlet);
        proxyFactory.addAdvice(new ServiceInterceptor());
        if (this.mountPath != null) {
            proxyFactory.addAdvisor(new MountableMixinAdvisor());
        }
        proxyFactory.addAdvisor(new ServletServiceContextMixinAdvisor());
        return proxyFactory.getProxy();
    } 



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message