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

Bug 317991

Summary: JMX: initializeIdentityMap(className) requires unset EMPTY_STRING input validation handler to avoid ClassNotFoundException
Product: z_Archived Reporter: Michael OBrien <michael.f.obrien>
Component: EclipselinkAssignee: Project Inbox <eclipselink.foundation-inbox>
Status: NEW --- QA Contact:
Severity: normal    
Priority: P2 CC: eclipselink.foundation-inbox, gordon.yorke
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
URL: http://wiki.eclipse.org/EclipseLink/DesignDocs/316513
Whiteboard:
Bug Depends on: 316513    
Bug Blocks:    

Description Michael OBrien CLA 2010-06-25 09:53:15 EDT
>During the JMX MBean operation initializeIdentityMap(className) we can get a CNFE - here on JBoss
- we need to warn on or introduce an input validation handler when there is no user imput from the MBean jconsole/http UI (outside of any management UI wrapper around the bean)
- this is likely a problem with the other functions that accept input

>stacktrace
sourceObject	"" (id=460)	

*RunTimeServices
    public synchronized void initializeIdentityMap(String className) throws ClassNotFoundException {

Daemon Thread [http-127.0.0.1-8080-2] (Suspended (breakpoint at line 437 in ConversionManager))	
	JPAConversionManager(ConversionManager).convertObjectToClass(Object) line: 437	
	JPAConversionManager(ConversionManager).convertObject(Object, Class) line: 141	
	MBeanJBossRuntimeServices(JBossRuntimeServices).initializeIdentityMap(String) line: 1274	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	ReflectedDispatcher.invoke(Invocation) line: 157	
	Invocation.dispatch() line: 96	
	Invocation.invoke() line: 88	
	XMBean(AbstractMBeanInvoker).invoke(String, Object[], String[]) line: 264	
	MBeanServerImpl.invoke(ObjectName, String, Object[], String[]) line: 668	
	Server.invokeOpByName(String, String, String[], String[]) line: 258	
	Server.invokeOp(String, int, String[]) line: 223	
	HtmlAdaptorServlet$3.run() line: 380	
	HtmlAdaptorServlet$3.run() line: 377	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]	
	HtmlAdaptorServlet.invokeOp(String, int, String[]) line: 376	
	HtmlAdaptorServlet.invokeOp(HttpServletRequest, HttpServletResponse) line: 287	
	HtmlAdaptorServlet.processRequest(HttpServletRequest, HttpServletResponse) line: 104	
	HtmlAdaptorServlet.doPost(HttpServletRequest, HttpServletResponse) line: 86	
	HtmlAdaptorServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 637	
	HtmlAdaptorServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 717	
	ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 290	
	ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206	
	ReplyHeaderFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 96	
	ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235	
	ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206	
	StandardWrapperValve.invoke(Request, Response) line: 235	
	StandardContextValve.invoke(Request, Response) line: 191	
	SecurityAssociationValve.invoke(Request, Response) line: 190	
	BasicAuthenticator(AuthenticatorBase).invoke(Request, Response) line: 525	
	JaccContextValve.invoke(Request, Response) line: 92	
	SecurityContextEstablishmentValve.process(Request, Response, HttpEvent) line: 126	
	SecurityContextEstablishmentValve.invoke(Request, Response) line: 70	
	StandardHostValve.invoke(Request, Response) line: 127	
	ErrorReportValve.invoke(Request, Response) line: 102	
	CachedConnectionValve.invoke(Request, Response) line: 158	
	StandardEngineValve.invoke(Request, Response) line: 109	
	CoyoteAdapter.service(Request, Response) line: 330	
	Http11Processor.process(Socket) line: 829	
	Http11Protocol$Http11ConnectionHandler.process(Socket) line: 598	
	JIoEndpoint$Worker.run() line: 447	
	Thread.run() line: 619	


>exception
09:41:02,727 ERROR [[HtmlAdaptor]] Servlet.service() for servlet HtmlAdaptor threw exception
java.lang.ClassNotFoundException: 
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at org.eclipse.persistence.internal.helper.ConversionManager.convertObjectToClass(ConversionManager.java:437)
	at org.eclipse.persistence.internal.helper.ConversionManager.convertObject(ConversionManager.java:141)
	at org.eclipse.persistence.services.jboss.JBossRuntimeServices.initializeIdentityMap(JBossRuntimeServices.java:1274)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
	at org.jboss.jmx.adaptor.control.Server.invokeOpByName(Server.java:258)
	at org.jboss.jmx.adaptor.control.Server.invokeOp(Server.java:223)
	at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet$3.run(HtmlAdaptorServlet.java:380)
	at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet$3.run(HtmlAdaptorServlet.java:377)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.invokeOp(HtmlAdaptorServlet.java:376)
	at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.invokeOp(HtmlAdaptorServlet.java:287)
	at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.processRequest(HtmlAdaptorServlet.java:104)
	at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.doPost(HtmlAdaptorServlet.java:86)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619
Comment 1 Peter Krogh CLA 2010-11-10 11:06:52 EST
Deferring to Future, as part of 2.2 bug scrub.
Comment 2 Eclipse Webmaster CLA 2022-06-09 10:05:42 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink