[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2379) Hot deployment issues: multiple events fired, old classes don't get GC'd, hotdeploy not atomic
by Allon Rauer (JIRA)
Hot deployment issues: multiple events fired, old classes don't get GC'd, hotdeploy not atomic
----------------------------------------------------------------------------------------------
Key: JBSEAM-2379
URL: http://jira.jboss.com/jira/browse/JBSEAM-2379
Project: JBoss Seam
Issue Type: Bug
Affects Versions: 2.0.0.GA
Reporter: Allon Rauer
I love the hot-deploy feature, and i'm even considering using it in production to be able to change and add code without bringing down out services.
However, there are several big issues with it currently:
1. Observer methods are tracked by the Init component, but never get cleared upon re-deploy. This leads to invocation of the event listeners in both the old components and the "replacement" hot-deployed components. It also leads to leaking of class objects, as the old Method/Class references don't get released upon re-deploy, eventually leading to a perm-gen out-of-mem.
2. Hot-deploy isn't atomic. If a request comes in concurrent w/ the redeploy, that request may see a mix of old components and re-deployed components, possibly leading to erroneous behavior.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2359) ArrayIndexOutOfBoundsException in org.jboss.seam.contexts.BasicContext.getNames()
by Przemyslaw Jaskierski (JIRA)
ArrayIndexOutOfBoundsException in org.jboss.seam.contexts.BasicContext.getNames()
---------------------------------------------------------------------------------
Key: JBSEAM-2359
URL: http://jira.jboss.com/jira/browse/JBSEAM-2359
Project: JBoss Seam
Issue Type: Bug
Affects Versions: 2.0.0.GA
Environment: Tomcat 6.0.13, Seam CVS 2007-12-07
Reporter: Przemyslaw Jaskierski
Priority: Critical
Fix For: 2.0.1.GA
Load tests. 20 JMeter http threads create session for every iteration on a bunch of pages. Session timeout set to 5 minutes. After 2 minutes I get this:
Dec 8, 2007 1:04:48 AM org.apache.catalina.session.StandardSession tellNew
SEVERE: Session event listener threw exception
java.lang.ArrayIndexOutOfBoundsException: 180
at org.jboss.seam.contexts.BasicContext.getNames(BasicContext.java:60)
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:270)
at org.jboss.seam.contexts.Lifecycle.beginSession(Lifecycle.java:187)
at org.jboss.seam.contexts.ServletLifecycle.beginSession(ServletLifecycle.java:124)
at org.jboss.seam.servlet.SeamListener.sessionCreated(SeamListener.java:44)
at org.apache.catalina.session.StandardSession.tellNew(StandardSession.java:397)
at org.apache.catalina.session.StandardSession.setId(StandardSession.java:369)
at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:829)
at org.apache.catalina.session.StandardManager.createSession(StandardManager.java:291)
at org.apache.catalina.connector.Request.doGetSession(Request.java:2312)
at org.apache.catalina.connector.Request.getSession(Request.java:2075)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at com.sun.faces.context.SessionMap.getSession(ExternalContextImpl.java:1002)
at com.sun.faces.context.SessionMap.get(ExternalContextImpl.java:962)
at org.jboss.seam.contexts.BasicContext.get(BasicContext.java:48)
at org.jboss.seam.Component.getInstance(Component.java:1851)
at org.jboss.seam.Component.getInstance(Component.java:1829)
at org.jboss.seam.web.Session.getInstance(Session.java:122)
at org.jboss.seam.contexts.FacesLifecycle.beginRequest(FacesLifecycle.java:54)
at org.jboss.seam.jsf.SeamPhaseListener.beforeRestoreView(SeamPhaseListener.java:368)
at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:139)
at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:183)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:125)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:107)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:78)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:383)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75)
at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
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:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2230) Allow Seam to work with the WebLogic JAAS server authentication without any source code modifications
by Krasimir Chobantonov (JIRA)
Allow Seam to work with the WebLogic JAAS server authentication without any source code modifications
-----------------------------------------------------------------------------------------------------
Key: JBSEAM-2230
URL: http://jira.jboss.com/jira/browse/JBSEAM-2230
Project: JBoss Seam
Issue Type: Feature Request
Affects Versions: 2.0.0.GA
Environment: BEA WebLogic Server v. 10 MP1 (The issue should be observable from version 8 and up)
Reporter: Krasimir Chobantonov
Priority: Optional
When using JBoss Identity for server delegated security authentication using the jaas-config-name attribute in security:identity XML element inside JBoss SEAM components.xml file and deploying that on BEA WebLogic Server then the authentication is always failing if the default WebLogic JAAS module is used. Follows the WebLogic server JAAS configuration file content :
myrealm {
weblogic.security.auth.login.UsernamePasswordLoginModule required authOnLogin="true" debug="false";
};
The problem is that the WebLogic server passes JAAS callback weblogic.security.auth.callback.URLCallback on which Seam throws an UnsupportedCallbackException class exception.
To make this functionality to work you have to either
1) create custom JAAS module for WebLogic server
2) Extend org.jboss.seam.security.Identity and org.jboss.seam.security.RuleBasedIdentity classes to override
protected CallbackHandler getDefaultCallbackHandler()
method and include a new else branch before the default that throws UnsupportedCallbackException
} else if (callbacks[i].getClass().getName().equals
("weblogic.security.auth.callback.URLCallback")) {
// deliberately ignored.
}
3) Include the code in 2 inside the JBoss Seam Identity class - not having the User to debug why it is not working and then to create a new class to extend that in order to make it workable
In my opinion performing 3 will be the easier from User's point of view and will allow Seam to use WebLogic JAAS server authentication without any coding from JBoss Seam User point of view.
Note that the proposed code doesn't depend on any BEA WebLogic specific classes.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
16 years, 8 months