Another issue is why doesn't the Container class implement
ContainerInvokerContainer? This
is the assumed behavior as evidenced by the prevelance of unsafe downcasts
scattered
throughout the container invoker code:
jboss 713>grep -nr '(ContainerInvokerContainer)container' .
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:154: Method[]
methods =
((ContainerInvokerContainer)container).getRemoteClass().getMethods();
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:159: methods =
((ContainerInvokerContainer)container).getHomeClass().getMethods();
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:205:
((ContainerInvokerContainer)container).getRemoteClass(),
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:206:
((ContainerInvokerContainer)container).getHomeClass(),
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:214:
((ContainerInvokerContainer)container).getRemoteClass(),
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:215:
((ContainerInvokerContainer)container).getHomeClass(),
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:222:
((ContainerInvokerContainer)container).getRemoteClass(),
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:223:
((ContainerInvokerContainer)container).getHomeClass(),
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:252:
((ContainerInvokerContainer)container).getContainerInvoker().getEJBHome());
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:261:
((ContainerInvokerContainer)container).getContainerInvoker());
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:377: if
(!m.getDeclaringClass().isAssignableFrom(((ContainerInvokerContainer)contain
er).getHomeClass())) {
./ejb/plugins/jrmp/server/JRMPContainerInvoker.java:418: if
(!m.getDeclaringClass().isAssignableFrom(((ContainerInvokerContainer)contain
er).getRemoteClass())) {
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:73: this.home =
(EJBHome)Proxy.newProxyInstance(((ContainerInvokerContainer)container).getHo
meClass().getClassLoader(),
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:74: new
Class[] {((ContainerInvokerContainer)container).getHomeClass(),
handleClass },
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:82:
this.statelessObject =
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:83: new
Class[] { ((ContainerInvokerContainer)container).getRemoteClass() } ,
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:120: return
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:121:
new Class[] { ((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:127: return
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:128:
new Class[] { ((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:138:
list.add(Proxy.newProxyInstance(((ContainerInvokerContainer)container).getRe
moteClass().getClassLoader(),
./ejb/plugins/jrmp12/server/JRMPContainerInvoker.java:139:
new Class[] { ((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:71: this.home =
(EJBHome)Proxy.newProxyInstance(((ContainerInvokerContainer)container).getHo
meClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:72: new
Class[] {((ContainerInvokerContainer)container).getHomeClass(),
handleClass },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:80:
this.statelessObject =
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:81: new
Class[] { ((ContainerInvokerContainer)container).getRemoteClass() } ,
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:118: return
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:119:
new Class[] { ((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:125: return
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:126:
new Class[] { ((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:136:
list.add(Proxy.newProxyInstance(((ContainerInvokerContainer)container).getRe
moteClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:137:
new Class[] { ((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:174: this.home =
(EJBHome)Proxy.newProxyInstance(((ContainerInvokerContainer)container).getHo
meClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:175: new
Class[] { ((ContainerInvokerContainer)container).getHomeClass(),
handleClass },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:183:
this.statelessObject =
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:184: new
Class[] { ((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:220: return
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:221:
new Class[] {
((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:227: return
(EJBObject)Proxy.newProxyInstance(((ContainerInvokerContainer)container).get
RemoteClass()
.getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:228:
new Class[] {
((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:238:
list.add(Proxy.newProxyInstance(((ContainerInvokerContainer)container).getRe
moteClass().getClassLoader(),
./ejb/plugins/jrmp13/server/JRMPContainerInvoker.java:239:
new Class[] {
((ContainerInvokerContainer)container).getRemoteClass() },
./ejb/plugins/local/BaseLocalContainerInvoker.java:113: if
(((ContainerInvokerContainer)container).getLocalClass() == null)
./ejb/plugins/local/BaseLocalContainerInvoker.java:125: Method[]
methods =
((ContainerInvokerContainer)container).getLocalClass().getMethods();
./ejb/plugins/local/BaseLocalContainerInvoker.java:130: methods =
((ContainerInvokerContainer)container).getLocalHomeClass().getMethods();
./ejb/plugins/local/BaseLocalContainerInvoker.java:139: Class
localHome = ((ContainerInvokerContainer)container).getLocalHomeClass();
./ejb/plugins/local/BaseLocalContainerInvoker.java:172: Class
localHome = ((ContainerInvokerContainer)container).getLocalHomeClass();
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development