Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 339716 - ClassCastException when viewing OSGi state in admin console
Summary: ClassCastException when viewing OSGi state in admin console
Status: CLOSED FIXED
Alias: None
Product: Virgo
Classification: RT
Component: runtime (show other bugs)
Version: unspecified   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 normal (vote)
Target Milestone: 3.0.0.M04   Edit
Assignee: Glyn Normington CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-11 11:31 EST by Glyn Normington CLA
Modified: 2011-05-26 10:27 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Glyn Normington CLA 2011-03-11 11:31:07 EST
This occurs on recent builds of Virgo web server.

Steps to reproduce:

1. Bring up Virgo web server and navigate to the admin console in a browser.

2. In the OSGi state tab, expand the bundle org.eclipse.virgo.kernel.userregionfactory.

3. Expand the Consumed Services tab and then expand the org.eclipse.virgo.kernel.osgi.region.RegionDigraph service.

4. Click on the provider bundle link and the following screen is returned:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/state-bundle.jsp at line 54

51: 			<tr class="sublevel1-odd">
52: 				<td>Spring powered</td>
53: 				<c:choose>
54: 					<c:when test="${empty bundle.springName}">
55: 						<td>No</td>
56: 					</c:when>
57: 					<c:otherwise>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:239)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

javax.el.ELException: java.lang.ClassCastException: org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext cannot be cast to org.springframework.context.ApplicationContext
	javax.el.BeanELResolver.getValue(BeanELResolver.java:297)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fwhen_005f3(state_002dbundle_jsp.java:670)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fchoose_005f2(state_002dbundle_jsp.java:640)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fwhen_005f2(state_002dbundle_jsp.java:601)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fchoose_005f1(state_002dbundle_jsp.java:562)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspService(state_002dbundle_jsp.java:143)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:239)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

java.lang.ClassCastException: org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext cannot be cast to org.springframework.context.ApplicationContext
	org.eclipse.virgo.kernel.deployer.app.spring.UserRegionModuleContextAccessor.getModuleContext(UserRegionModuleContextAccessor.java:52)
	sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
	org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
	$Proxy144.getModuleContext(Unknown Source)
	org.eclipse.virgo.apps.admin.core.state.StandardBundleHolder.getSpringName(StandardBundleHolder.java:123)
	sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	javax.el.BeanELResolver.getValue(BeanELResolver.java:292)
	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fwhen_005f3(state_002dbundle_jsp.java:670)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fchoose_005f2(state_002dbundle_jsp.java:640)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fwhen_005f2(state_002dbundle_jsp.java:601)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspx_meth_c_005fchoose_005f1(state_002dbundle_jsp.java:562)
	org.apache.jsp.WEB_002dINF.jsp.state_002dbundle_jsp._jspService(state_002dbundle_jsp.java:143)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:239)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
Comment 1 Glyn Normington CLA 2011-03-15 06:13:36 EDT
Fixed the class cast exception.

Note that the current shell design means that bundles that are powered by the kernel's version of Spring show up as "Spring powered: No" in the OSGi state explorer. This will be taken into account as the RAM and shell are redesigned to cope with the new region design.