[JBoss JIRA] Created: (GTNPORTAL-1610) Cache portal config for the scope of the request
by Marek Posolda (JIRA)
Cache portal config for the scope of the request
------------------------------------------------
Key: GTNPORTAL-1610
URL: https://jira.jboss.org/browse/GTNPORTAL-1610
Project: GateIn Portal
Issue Type: Task
Security Level: Public (Everyone can see)
Components: Performance
Affects Versions: 3.1.0-GA
Environment: EPP 5.1.0 ER3
Reporter: Marek Posolda
Assignee: Julien Viet
I found another thing for logged user case performance, which can be improved. Issue is that method UserPortalConfigService.getUserPortalConfig() is called two times during HTTP request of logged user. And this method is expensive, because it performs other calls to IDM and DataStorage. So it should be possible to call it only once per HTTP request.
Now it's called from:
1. LocalizationLifecycle.onStartRequest()
2. PortalStateManager.restoreUIRootComponent() . After this call is obtained UserPortalConfig saved as attribute into PortalRequestContext.
It should be possible to save it into PortalRequestContext after LocalizationLifecycle.onStartRequest(), so that PortalStateManager.restoreUIRootComponent() can read it from PortalRequestContext. Or create another Lifecycle class for this purpose (Something similar to UserProfileLifecycle, which is doing similar thing for obtain UserProfile) ?
--
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
14 years, 8 months
[JBoss JIRA] Created: (GTNPORTAL-2030) Show message when delete application in page
by Hang Nguyen (JIRA)
Show message when delete application in page
--------------------------------------------
Key: GTNPORTAL-2030
URL: https://issues.jboss.org/browse/GTNPORTAL-2030
Project: GateIn Portal
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Hang Nguyen
- Add new page
- At step 3: drag & drop application
- Delete this application
=> Show message and have exception in console
SEVERE: Error during the processAction phase
java.lang.NullPointerException
at org.exoplatform.portal.webui.portal.UIPortalComponentActionListener$MoveChildActionListen
er.execute(UIPortalComponentActionListener.java:288)
at org.exoplatform.webui.event.Event.broadcast(Event.java:89)
at org.exoplatform.webui.core.lifecycle.Lifecycle.processAction(Lifecycle.java:56)
at org.exoplatform.webui.core.UIComponent.processAction(UIComponent.java:133)
at org.exoplatform.portal.webui.workspace.UIPortalApplicationLifecycle.processAction(UIPorta
lApplicationLifecycle.java:83)
at org.exoplatform.portal.webui.workspace.UIPortalApplicationLifecycle.processAction(UIPorta
lApplicationLifecycle.java:37)
at org.exoplatform.webui.core.UIComponent.processAction(UIComponent.java:133)
at org.exoplatform.webui.core.UIApplication.processAction(UIApplication.java:122)
at org.exoplatform.portal.webui.workspace.UIPortalApplication.processAction(UIPortalApplicat
ion.java:581)
at org.exoplatform.portal.application.PortalRequestHandler.processRequest(PortalRequestHandl
er.java:163)
at org.exoplatform.portal.application.PortalRequestHandler.execute(PortalRequestHandler.java
:137)
at org.exoplatform.web.WebAppController.service(WebAppController.java:349)
at org.exoplatform.portal.application.PortalController.onService(PortalController.java:127)
at org.exoplatform.container.web.AbstractHttpServlet.service(AbstractHttpServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.web.login.RememberMeFilter.doFilter(RememberMeFilter.java:86)
at org.exoplatform.web.login.RememberMeFilter.doFilter(RememberMeFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.web.filter.ExtensibleFilter$ExtensibleFilterChain.doFilter(ExtensibleFilt
er.java:110)
at org.exoplatform.web.filter.ExtensibleFilter.doFilter(ExtensibleFilter.java:80)
at org.exoplatform.web.filter.GenericFilter.doFilter(GenericFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.web.CacheUserProfileFilter.doFilter(CacheUserProfileFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.frameworks.jcr.web.ThreadLocalSessionProviderInitializedFilter.doFilter(T
hreadLocalSessionProviderInitializedFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.services.security.web.SetCurrentIdentityFilter.doFilter(SetCurrentIdentit
yFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.web.login.ClusteredSSOFilter.doFilter(ClusteredSSOFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.exoplatform.container.web.PortalContainerFilter.doFilter(PortalContainerFilter.java:6
9)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.ja
va:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 8 months
[JBoss JIRA] Created: (GTNPORTAL-1912) User Management - Delete user is invalid in special case
by Nguyen Thanh Cong (JIRA)
User Management - Delete user is invalid in special case
--------------------------------------------------------
Key: GTNPORTAL-1912
URL: https://issues.jboss.org/browse/GTNPORTAL-1912
Project: GateIn Portal
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Nguyen Thanh Cong
r6550
- Go to User Managemnet
- Search a user such as demo
- Delete demo >> successfully. However, demo is still displayed.
- Enter the other keyword to search >> error
Exception:
as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1402)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at sun.misc.Unsafe.defineClass(Native Method)
at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45)
at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381)
at java.security.AccessController.doPrivileged(Native Method)
at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)
at sun.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:95)
at sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:313)
at java.io.ObjectStreamClass.getSerializableConstructor(ObjectStreamClass.java:1327)
at java.io.ObjectStreamClass.access$1500(ObjectStreamClass.java:52)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:437)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.exoplatform.commons.serialization.serial.DataContainer.writeExternal(DataContainer.java:68)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.exoplatform.commons.serialization.serial.DataContainer.writeExternal(DataContainer.java:68)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.exoplatform.commons.serialization.serial.DataContainer.writeExternal(DataContainer.java:68)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.exoplatform.commons.serialization.serial.DataContainer.writeExternal(DataContainer.java:68)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.exoplatform.commons.serialization.serial.DataContainer.writeExternal(DataContainer.java:68)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1421)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1390)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.exoplatform.commons.serialization.SerializationContext.write(SerializationContext.java:105)
at org.exoplatform.portal.application.replication.ApplicationState.writeObject(ApplicationState.java:95)
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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1546)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:989)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:463)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:667)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4611)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:924)
at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1319)
at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1290)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:323)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1086)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098)
at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448)
at org.apache.catalina.core.StandardService.stop(StandardService.java:587)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:648)
at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:692)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 8 months
[JBoss JIRA] Created: (GTNPORTAL-1886) Disabling option "associationMembershipType" in idm-configuration.xml when only DB (Hibernate) is used as identity store
by Marek Posolda (JIRA)
Disabling option "associationMembershipType" in idm-configuration.xml when only DB (Hibernate) is used as identity store
------------------------------------------------------------------------------------------------------------------------
Key: GTNPORTAL-1886
URL: https://issues.jboss.org/browse/GTNPORTAL-1886
Project: GateIn Portal
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Identity integration
Affects Versions: 3.1.0-GA
Environment: EPP 5.1.0.GA
Reporter: Marek Posolda
Assignee: Boleslaw Dawidowicz
Priority: Minor
Fix For: 3.2.0-GA
Right now, this option is enabled in idm-configuration.xml with value "member" . It means that when we are creating new membership with type "member", we need to call two picketlink API operations:
1) getIdentitySession().getRoleManager().createRole(mt.getName(), user.getUserName(), groupId)
2) getIdentitySession().getRelationshipManager().associateUserByKeys(groupId, user.getUserName())
I think that second call to relationshipManager is redundant and it does not make much sense. We don't need unnamed relationship when we already have named relationship with type "member" created by RoleManager.
Right now, with option enabled, there are more necessary calls to Picketlink API and also more records in DB. Especially we have 2 records in DB in table "jbid_io_rel" for each membership of type "member" . One with NAME=NULL and one with NAME=2 (member)
For example:
mysql> select jbid_io_rel.* from jbid_io_rel inner join jbid_io on jbid_io.ID=jbid_io_rel.TO_IDENTITY where jbid_io.name like "john";
+----+---------------+------+-------------+----------+
| ID | FROM_IDENTITY | NAME | TO_IDENTITY | REL_TYPE |
+----+---------------+------+-------------+----------+
| 22 | 3 | NULL | 19 | 1 |
| 23 | 3 | 2 | 19 | 2 |
| 24 | 4 | NULL | 19 | 1 |
| 25 | 4 | 2 | 19 | 2 |
| 26 | 8 | 1 | 19 | 2 |
+----+---------------+------+-------------+----------+
5 rows in set (0,00 sec)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 8 months