Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0032630Openbravo ERPA. Platformpublic2016-04-08 12:222016-04-18 08:27
alostale 
caristu 
normalmajorhave not tried
closedfixed 
5
 
3.0PR16Q23.0PR16Q2 
alostale
Core
No
0032630: template role cannot be used as session role
When a role marked as template is used to create a session, errors are logged when trying to save some preferences. This makes not possible to save ie. recent navigation items.
1. Create a new role:
  * name: bt
  * level: client+org
  * manual: yes
  * template: yes
    * org access: EspaƱa Norte
    * user: assignment: Openbravo
    * window access: Sales Order
2. Login with Openbravo user using that role
3. Open Sales Order window
  ERROR in log: 4388732 [http-8080-6] ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: ADRole.aDRoleInheritanceInheritFromList, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ADRole.aDRoleInheritanceInheritFromList, no session or session was closed
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383)
    at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375)
    at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:368)
    at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111)
    at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:272)
    at org.openbravo.role.inheritance.RoleInheritanceManager.propagateNewAccess(RoleInheritanceManager.java:380)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:45)
    at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:105)
    at org.openbravo.role.inheritance.RoleInheritanceManager$Proxy$_$$_WeldClientProxy.propagateNewAccess(RoleInheritanceManager$Proxy$_$$_WeldClientProxy.java)
    at org.openbravo.role.inheritance.InheritedAccessEnabledEventHandler.doAction(InheritedAccessEnabledEventHandler.java:107)
    at org.openbravo.role.inheritance.InheritedAccessEnabledEventHandler.onSave(InheritedAccessEnabledEventHandler.java:69)
No tags attached.
blocks defect 0032627 closed caristu template role cannot be used as session role 
Issue History
2016-04-08 12:25alostaleTypedefect => backport
2016-04-08 12:25alostaleTarget Version => 3.0PR16Q2
2016-04-14 17:46hgbotCheckin
2016-04-14 17:46hgbotNote Added: 0085647
2016-04-14 17:46hgbotStatusscheduled => resolved
2016-04-14 17:46hgbotResolutionopen => fixed
2016-04-14 17:46hgbotFixed in SCM revision => http://code.openbravo.com/erp/backports/3.0PR16Q2/rev/4270b2af7fe3a9e9690e09cbca27ebf9336bf285 [^]
2016-04-18 08:27alostaleReview Assigned To => alostale
2016-04-18 08:27alostaleNote Added: 0085684
2016-04-18 08:27alostaleStatusresolved => closed
2016-04-18 08:27alostaleFixed in Version => 3.0PR16Q2

Notes
(0085647)
hgbot   
2016-04-14 17:46   
Repository: erp/backports/3.0PR16Q2
Changeset: 4270b2af7fe3a9e9690e09cbca27ebf9336bf285
Author: Carlos Aristu <carlos.aristu <at> openbravo.com>
Date: Thu Apr 14 17:45:28 2016 +0200
URL: http://code.openbravo.com/erp/backports/3.0PR16Q2/rev/4270b2af7fe3a9e9690e09cbca27ebf9336bf285 [^]

fixes issue 32630: template role cannot be used as session role
Now the injector used for preferences returns the complete Role object and not a proxy, in order to prevent possible LazyInitializationException when using a template role as session role.
This was happening because some preferences are created at system level when a session role is making use of the UI. It is also verified that after fixing this issue, those preferences are not being propagated, thanks to the preference black list.

---
M src/org/openbravo/role/inheritance/access/PreferenceAccessInjector.java
---
(0085684)
alostale   
2016-04-18 08:27   
code reviewed + tested