Bugs item #763905, was opened at 2003-07-01 17:04
Message generated for change (Comment added) made by mdragan
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=763905&group_id=22866

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Mihai Dragan (mdragan)
Assigned to: Nobody/Anonymous (nobody)
Summary: ClassCastException at narrow, after redeploy

Initial Comment:
Hi,

First, this is my environment:
Linux 2.4.17, JDK 1.4.1, JBoss 3.0.4 with Tomcat

I try to lookup a stateful session bean from within the
VM used by JBoss. This is the code I use:

MyTestSession test;
Context initCtx = null;
try {
  initCtx = new InitialContext();
  System.out.println("looking up the MyTestSession home");
  Object obj = initCtx.lookup("MyTestSessionBean");
  Class[] intfs = obj.getClass().getInterfaces();
  System.out.println("obj class :
"+obj.getClass().toString());
  System.out.println("MyTestSessionHome class :
"+MyTestSessionHome.class.toString());
  System.out.println("Is obj assignable to
MyTestSessionHome :
"+MyTestSessionHome.class.isAssignableFrom(obj.getClass()));
  System.out.println("intf : " + intfs[0].toString() +
" was loaded by: " + intfs[0].getClassLoader().toString());
  System.out.println("done.");
  System.out.println("Narrowing on session home");
  MyTestSessionHome testh =
(MyTestSessionHome)PortableRemoteObject.narrow(obj,MyTestSessionHome.class);
   test = testh.create();
   System.out.println("done.");
   initCtx.close();
} catch(Exception nnfe) {
   nnfe.printStackTrace();
}

After the bean is deployed, everything works fine and i
get this output:

looking up the MyTestSession home
obj class : class $Proxy36
MyTestSessionHome class : interface
test.session.MyTestSessionHome
Is obj assignable to MyTestSessionHome : true
intf : interface test.session.MyTestSessionHome was
loaded by:
[EMAIL PROTECTED]
url=file:/opt/Work/test/jboss-3.2.1_tomcat-4.1.24/server/default/tmp/deploy/server/default/deploy/test.jar/48.test.jar
,addedOrder=26}
done.
Narrowing on session home
done.

After I undeploy the bean and redeploy it, I get an
exception. This is the output:

looking up the MyTestSession home
obj class : class $Proxy41
MyTestSessionHome class : interface
test.session.MyTestSessionHome
Is obj assignable to MyTestSessionHome : false
intf : interface test.session.MyTestSessionHome was
loaded by:
[EMAIL PROTECTED]
url=file:/opt/Work/test/jboss-3.2.1_tomcat-4.1.24/server/default/tmp/deploy/server/default/deploy/test.jar/50.test.jar
,addedOrder=28}
done.
Narrowing on session home
java.lang.ClassCastException
16:12:11,942 ERROR [STDERR]     at
com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:293)
16:12:11,942 ERROR [STDERR]     at
javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
16:12:11,943 ERROR [STDERR]     at
org.apache.jsp.index_jsp._jspService(index_jsp.java:99)
16:12:11,943 ERROR [STDERR]     at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
16:12:11,944 ERROR [STDERR]     at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
16:12:11,944 ERROR [STDERR]     at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
16:12:11,945 ERROR [STDERR]     at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
16:12:11,945 ERROR [STDERR]     at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
16:12:11,945 ERROR [STDERR]     at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
16:12:11,946 ERROR [STDERR]     at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
16:12:11,946 ERROR [STDERR]     at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
16:12:11,947 ERROR [STDERR]     at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
16:12:11,947 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
16:12:11,948 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
16:12:11,948 ERROR [STDERR]     at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
16:12:11,948 ERROR [STDERR]     at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
16:12:11,949 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
16:12:11,949 ERROR [STDERR]     at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
16:12:11,950 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
16:12:11,950 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
16:12:11,950 ERROR [STDERR]     at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
16:12:11,951 ERROR [STDERR]     at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
16:12:11,951 ERROR [STDERR]     at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
16:12:11,952 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
16:12:11,954 ERROR [STDERR]     at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
16:12:11,954 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
16:12:11,955 ERROR [STDERR]     at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
16:12:11,955 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
16:12:11,955 ERROR [STDERR]     at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
16:12:11,956 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
16:12:11,956 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
16:12:11,957 ERROR [STDERR]     at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
16:12:11,957 ERROR [STDERR]     at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
16:12:11,958 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
16:12:11,958 ERROR [STDERR]     at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
16:12:11,958 ERROR [STDERR]     at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
16:12:11,959 ERROR [STDERR]     at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
16:12:11,959 ERROR [STDERR]     at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
16:12:11,960 ERROR [STDERR]     at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
16:12:11,960 ERROR [STDERR]     at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
16:12:11,961 ERROR [STDERR]     at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
16:12:11,961 ERROR [STDERR]     at
java.lang.Thread.run(Thread.java:536)


----------------------------------------------------------------------

>Comment By: Mihai Dragan (mdragan)
Date: 2003-07-01 17:18

Message:
Logged In: YES 
user_id=775134

I included a testcase with the bean and a jsp as the client.
If i use a standalone application as client (running in a
diferent VM), I do not get the exception and everithing
works fine. The Proxy class is called $Proxy0 each time i
lookup the bean from the client.
If you look at the
com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(...)
method you will see this lines:
// Will a cast work?
if (narrowTo.isAssignableFrom(narrowFromClass))
The first time this returns true, the second time it returns
false and goes to the else branch where a ClassCastException
occurs


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=763905&group_id=22866


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to