Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 339716

Summary: ClassCastException when viewing OSGi state in admin console
Product: [RT] Virgo Reporter: Glyn Normington <glyn.normington>
Component: runtimeAssignee: Glyn Normington <glyn.normington>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: eclipse
Version: unspecified   
Target Milestone: 3.0.0.M04   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

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.