[JBoss JIRA] Created: (JBLOGGING-66) Class org.jboss.logging.JDKLevel causes classloader leaks on undeployment of projects using jboss-logging in their war
by Craig Ringer (JIRA)
Class org.jboss.logging.JDKLevel causes classloader leaks on undeployment of projects using jboss-logging in their war
----------------------------------------------------------------------------------------------------------------------
Key: JBLOGGING-66
URL: https://issues.jboss.org/browse/JBLOGGING-66
Project: JBoss Logging
Issue Type: Bug
Security Level: Public (Everyone can see)
Environment: java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.2) (fedora-58.1.10.2.fc15-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
x64 Core 2 Duo laptop with 4GB RAM
Reporter: Craig Ringer
Assignee: David Lloyd
I've been chasing classloader leaks that've been causing my app to fail to redeploy after a few iterations. A bit of digging using jmap and jhat has begun to strongly suggest that JBoss Logging is the problem.
The issue is exactly the same as the one used as an example in this article on tracing classloader leaks:
http://blogs.oracle.com/fkieviet/entry/classloader_leaks_the_dreaded_java
Specifically, org.jboss.logging.JDKLevel extends java.util.logging.Level . Unfortunately, java.util.logging.Level keeps a static array of all known logging levels. If JBoss Logging was deployed as part of an application war, that means there's a reference kept from an application server class (java.util.logging.Level) to a client application class (org.jboss.logging.JDKLevel). This keeps the whole reference chain intact and stops the application classloader from being destroyed.
This is a problem on Glassfish 3.1, because JBoss Logging isn't included in the application server so it must be deployed by applications if they want to use things like JBoss Seam.
It should be possible to add jboss-logging to glassfish/domains/domain1/lib to work around this, by making sure that org.jboss.logging.JDKLevel is loaded by the appserver classloader not the classloader of the deployed application.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months
[JBoss JIRA] Created: (JBAS-8579) Taglibs with no body-content cause a NPE
by Marius Bogoevici (JIRA)
Taglibs with no body-content cause a NPE
----------------------------------------
Key: JBAS-8579
URL: https://jira.jboss.org/browse/JBAS-8579
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Web (Tomcat) service
Affects Versions: 6.0.0.M5
Reporter: Marius Bogoevici
Assignee: Remy Maucherat
Priority: Critical
Fix For: 6.0.0.CR1
Existing taglibs that do not specify a body-content for the tag yield a null pointer exception [1].
For example:
<tag>
<name>authorize</name>
<tag-class>org.springframework.security.taglibs.authz.AuthorizeTag</tag-class>
<description>
A tag which outputs the body of the tag if the configured access expression
evaluates to true for the currently authenticated principal.
</description>
The same taglib worked fine on JBoss AS 5.x. While this is a Spring Security taglib, there are other taglibs, such as Struts, that are in the same situation (due to JSP 1.2 defaulting to JSP).
[1]:
11:15:00,895 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/travel].[jsp]] Servlet.service() for servlet jsp threw exception: java.lang.NullPointerException
at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1598) [:]
at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:976) [:]
at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1247) [:]
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1421) [:]
at org.apache.jasper.compiler.Parser.parse(Parser.java:130) [:]
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255) [:]
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103) [:]
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:196) [:]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:358) [:]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:338) [:]
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:325) [:]
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:607) [:]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312) [:]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) [:]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) [:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:]
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:734) [:]
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:541) [:]
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:479) [:]
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:407) [:]
at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241) [:2.1.3]
at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222) [:2.1.3]
at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44) [:2.1.3]
at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:103) [:2.1.3]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:669) [:2.1.3]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:689) [:2.1.3]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:643) [:2.1.3]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:626) [:2.1.3]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:322) [:2.1.3]
at org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:124) [:3.0.3.RELEASE]
at org.springframework.js.ajax.tiles2.AjaxTilesView.renderMergedOutputModel(AjaxTilesView.java:131) [:2.1.0.RELEASE]
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) [:3.0.3.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063) [:3.0.3.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801) [:3.0.3.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) [:3.0.3.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) [:3.0.3.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) [:3.0.3.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [:1.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:366) [:3.0.4.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) [:3.0.4.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) [:3.0.4.RELEASE]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167) [:3.0.4.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) [:3.0.3.RELEASE]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) [:3.0.3.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) [:3.0.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) [:3.0.3.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:]
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0-SNAPSHOT]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.CR3]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.CR3]
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0-SNAPSHOT]
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0-SNAPSHOT]
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) [:6.0.0-SNAPSHOT]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:]
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0-SNAPSHOT]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_22]
11:15:00,924 INFO [STDOUT] DEBUG: org.springframework.web.servlet.DispatcherServlet - Could not complete request
11:15:00,924 INFO [STDOUT] org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/layouts/standard.jsp'.
11:15:00,924 INFO [STDOUT] at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:691)
11:15:00,924 INFO [STDOUT] at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:643)
11:15:00,924 INFO [STDOUT] at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:626)
11:15:00,925 INFO [STDOUT] at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:322)
11:15:00,925 INFO [STDOUT] at org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:124)
11:15:00,925 INFO [STDOUT] at org.springframework.js.ajax.tiles2.AjaxTilesView.renderMergedOutputModel(AjaxTilesView.java:131)
11:15:00,925 INFO [STDOUT] at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
11:15:00,925 INFO [STDOUT] at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
11:15:00,925 INFO [STDOUT] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801)
11:15:00,925 INFO [STDOUT] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
11:15:00,925 INFO [STDOUT] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
11:15:00,926 INFO [STDOUT] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
11:15:00,926 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
11:15:00,926 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
11:15:00,926 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
11:15:00,926 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
11:15:00,926 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:366)
11:15:00,926 INFO [STDOUT] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
11:15:00,926 INFO [STDOUT] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
11:15:00,926 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
11:15:00,927 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,928 INFO [STDOUT] at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
11:15:00,928 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,928 INFO [STDOUT] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
11:15:00,928 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,928 INFO [STDOUT] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
11:15:00,928 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,928 INFO [STDOUT] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
11:15:00,929 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
11:15:00,929 INFO [STDOUT] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167)
11:15:00,929 INFO [STDOUT] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
11:15:00,929 INFO [STDOUT] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
11:15:00,929 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
11:15:00,929 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
11:15:00,929 INFO [STDOUT] at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
11:15:00,929 INFO [STDOUT] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
11:15:00,929 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
11:15:00,930 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
11:15:00,930 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
11:15:00,930 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
11:15:00,930 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
11:15:00,930 INFO [STDOUT] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
11:15:00,930 INFO [STDOUT] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
11:15:00,930 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
11:15:00,930 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
11:15:00,930 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
11:15:00,931 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
11:15:00,931 INFO [STDOUT] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
11:15:00,931 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
11:15:00,931 INFO [STDOUT] at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
11:15:00,931 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
11:15:00,931 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
11:15:00,931 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
11:15:00,931 INFO [STDOUT] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
11:15:00,932 INFO [STDOUT] at java.lang.Thread.run(Thread.java:680)
11:15:00,932 INFO [STDOUT] Caused by: org.apache.tiles.util.TilesIOException: ServletException including path '/WEB-INF/layouts/standard.jsp'.
11:15:00,932 INFO [STDOUT] at org.apache.tiles.servlet.context.ServletUtil.wrapServletException(ServletUtil.java:232)
11:15:00,932 INFO [STDOUT] at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:243)
11:15:00,932 INFO [STDOUT] at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222)
11:15:00,932 INFO [STDOUT] at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
11:15:00,932 INFO [STDOUT] at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:103)
11:15:00,932 INFO [STDOUT] at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:669)
11:15:00,932 INFO [STDOUT] at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:689)
11:15:00,933 INFO [STDOUT] ... 61 more
11:15:00,933 INFO [STDOUT] Caused by: java.lang.NullPointerException
11:15:00,933 INFO [STDOUT] at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1598)
11:15:00,933 INFO [STDOUT] at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:976)
11:15:00,933 INFO [STDOUT] at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1247)
11:15:00,933 INFO [STDOUT] at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1421)
11:15:00,933 INFO [STDOUT] at org.apache.jasper.compiler.Parser.parse(Parser.java:130)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:196)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.compiler.Compiler.compile(Compiler.java:358)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.compiler.Compiler.compile(Compiler.java:338)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.compiler.Compiler.compile(Compiler.java:325)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:607)
11:15:00,934 INFO [STDOUT] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
11:15:00,935 INFO [STDOUT] at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326)
11:15:00,936 INFO [STDOUT] at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253)
11:15:00,936 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
11:15:00,936 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
11:15:00,936 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
11:15:00,937 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:734)
11:15:00,937 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:541)
11:15:00,937 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:479)
11:15:00,937 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:407)
11:15:00,937 INFO [STDOUT] at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241)
11:15:00,937 INFO [STDOUT] ... 66 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months
[JBoss JIRA] Created: (JBMESSAGING-1841) JBM_MSG_REF primary key update performance issue (possible timeout/failure)
by Gerald Turner (JIRA)
JBM_MSG_REF primary key update performance issue (possible timeout/failure)
---------------------------------------------------------------------------
Key: JBMESSAGING-1841
URL: https://issues.jboss.org/browse/JBMESSAGING-1841
Project: JBoss Messaging
Issue Type: Enhancement
Components: JMS Clustering, Messaging Core Persistence
Affects Versions: 1.4.3.GA
Environment: JBoss 5.1.0.GA in "all" configuration, PostOffice has FailoverOnNodeLeave = true, using MySQL Cluster 7.1.9a backend (ndb-persistence-service.xml)
Reporter: Gerald Turner
The JBM_MSG_REF table has primary key MESSAGE_ID+CHANNEL_ID.
On cluster node failover a statement is run that changes CHANNEL_ID, thus modifies the primary key - an expensive operation.
UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
I'm using a pair of hefty servers for NDB storage node backends (16 CPUs, 8GB RAM dedicated to NDB process, no other processess). I've witnessed this update statement taking around 90 seconds with 70,000 messages in queue, and 180 seconds with 140,000 messages in queue. Our MySQL DataSource connections had parameter socketTimeout 30000, causing the failover process to rollback and retry several times until giving up, crashing the PostOffice. This timeout parameter can easily be changed or removed (block forever?), but failover still takes a very long time.
I altered the JBM_MSG_REF table so that MESSAGE_ID is the only part of the primary key. This makes the failover CHANNEL_ID update statement run instantly. I can't imagine a case where the JBM_MSG_REF would have duplicate MESSAGE_ID rows. If this is reasonable, could the next release of jboss-messaging 1.4.x drop CHANNEL_ID from the primary key of the CREATE TABLE JBM_MSG_REF statement? Otherwise please let me know if this table alteration is unsafe.
In particular, I changed one line of ndb-persistence-service.xml SqlProperties parameter, from:
CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID BIGINT, CHANNEL_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, SCHED_DELIVERY BIGINT, PRIMARY KEY(MESSAGE_ID, CHANNEL_ID)) ENGINE = NDBCLUSTER
to:
CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID BIGINT, CHANNEL_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, SCHED_DELIVERY BIGINT, PRIMARY KEY(MESSAGE_ID)) ENGINE = NDBCLUSTER
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months
[JBoss JIRA] Created: (JBLOGGING-49) Relocate @Messages and @MessageBundle to i18n package
by Dan Allen (JIRA)
Relocate @Messages and @MessageBundle to i18n package
-----------------------------------------------------
Key: JBLOGGING-49
URL: https://jira.jboss.org/browse/JBLOGGING-49
Project: JBoss Logging
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Affects Versions: 3.0.0.Beta4-jboss-logging
Reporter: Dan Allen
Assignee: David Lloyd
The message bundle facility in JBoss Logging is generally useful. In fact, we are planning on using it as a foundation for comprehensive i18n support in Seam 3. However, developers are going to be very standoff-ish if they have to import the @Messages and @MessageBundle annotations from a logging package (org.jboss.logging). I suggest moving them to the org.jboss.i18n package, though keeping it part of the JBoss Logging project since that will remain a foundation library and to stick to 1 JAR.
Actual:
org.jboss.logging.Messages
org.jboss.logging.MessageBundle
Proposed:
org.jboss.i18n.Messages
org.jboss.i18n.MessageBundle
Relocate any other types as necessary.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 5 months