Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0040897
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Openbravo ERP] A. Platformminorhave not tried2019-05-17 11:012019-05-21 15:17
ReporteralostaleView Statuspublic 
Assigned Toalostale 
PriorityimmediateResolutionfixedFixed in Version3.0PR19Q3
StatusclosedFix in branchFixed in SCM revision1596542c21af
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned Tocaristu
Web browser
ModulesCore
Regression levelProduction - Confirmed Stable
Regression date2017-05-18
Regression introduced in release3.0PR17Q3
Regression introduced by commithttp://code.openbravo.com/erp/devel/pi/rev/383058dac5699aa263e209cbfcd10000b8153d3f [^]
Triggers an Emergency PackNo
Summary

0040897: unreachable system after tying to create a record through ws with unlimited access license

DescriptionIn professional instances with unlimited WS calls if the very first action after Tomcat restart is invoking a WS that performs DB modifications with a limited role, the system becomes unreachable.

Under these circumstances, TreeTablesEventHandler cannot be initialized with ExceptionInInitializerError because it is not executed in admin mode. This class is not tried to be initialized afterward so any subsequent DAL flush with dirty entities will fail with NoClassDefFoundError.

The only way to overcome this situation is to restart Tomcat and perform a regular login as the first action.
Steps To ReproduceIn a professional instance with unlimited WS access:
1. Create a ws role with access to only Alert window and assign as default role for a new user
2. Restart Tomcat
3. Create through WS a new AlertRule
  -> ERROR: cannot perform action
java.lang.ExceptionInInitializerError
    ...
    at org.openbravo.client.kernel.event.PersistenceEventOBInterceptor.sendNewEvent(PersistenceEventOBInterceptor.java:94) ~[classes/:?]
    at org.openbravo.client.kernel.event.PersistenceEventOBInterceptor.onSave(PersistenceEventOBInterceptor.java:83) ~[classes/:?]
    at org.openbravo.client.kernel.event.PersistenceEventOBInterceptor$Proxy$_$$_WeldClientProxy.onSave(Unknown Source) ~[classes/:?]
    at org.openbravo.dal.core.OBInterceptor.onSave(OBInterceptor.java:244) ~[classes/:?]
    ...
Caused by: org.openbravo.base.exception.OBSecurityException: Entity ADTable is not readable by the user C63AF5553AEB4BC498A680DA95C89B70
    at org.openbravo.dal.security.EntityAccessChecker.checkReadable(EntityAccessChecker.java:548) ~[classes/:?]
    at org.openbravo.dal.service.OBDal.checkReadAccess(OBDal.java:741) ~[classes/:?]
    at org.openbravo.dal.service.OBDal.checkReadAccess(OBDal.java:728) ~[classes/:?]
    at org.openbravo.dal.service.OBDal.createCriteria(OBDal.java:564) ~[classes/:?]
    at org.openbravo.client.application.event.TreeTablesEventHandler.getTreeTables(TreeTablesEventHandler.java:167) ~[classes/:?]
    at org.openbravo.client.application.event.TreeTablesEventHandler.<clinit>(TreeTablesEventHandler.java:58) ~[classes/:?]
    ...
4. Try to login with Openbravo user
  -> ERROR: cannot login
       ...
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.openbravo.client.application.event.TreeTablesEventHandler
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]
    at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:119) ~[weld-core-impl-3.1.1.Final.jar:3.1.1.Final]
    at org.jboss.weld.injection.ConstructorInjectionPoint.invokeAroundConstructCallbacks(ConstructorInjectionPoint.java:92) ~[weld-core-impl-3.1.1.Final.jar:3.1.1.Final]
    at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:78) ~[weld-core-impl-3.1.1.Final.jar:3.1.1.Final]
    at org.jboss.weld.injection.producer.AbstractInstantiator.newInstance(AbstractInstantiator.java:28) ~[weld-core-impl-3.1.1.Final.jar:3.1.1.Final]
    at org.jboss.weld.injection.producer.BasicInjectionTarget.produce(BasicInjectionTarget.java:112) ~[weld-core-impl-3.1.1.Final.jar:3.1.1.Final]
    at org.jboss.weld.injection.producer.BeanInjectionTarget.produce(BeanInjectionTarget.java:186) ~[weld-core-impl-3.1.1.Final.jar:3.1.1.Final]
 ...
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
depends on backport 00408983.0PR19Q2.1 closedalostale unreachable system after tying to create a record through ws with unlimited access license 
depends on backport 00408993.0PR19Q1.2 closedalostale unreachable system after tying to create a record through ws with unlimited access license 
caused by design defect 0035994 closedcaristu Web service calls should not create ad_session entries being in an instance with unlimited web service calls 

-  Notes
(0111769)
hgbot (developer)
2019-05-17 11:17

Repository: erp/devel/pi
Changeset: 1596542c21af70ae5e8d24640c8060a5fd4d9626
Author: Asier Lostalé <asier.lostale <at> openbravo.com>
Date: Fri May 17 11:14:19 2019 +0200
URL: http://code.openbravo.com/erp/devel/pi/rev/1596542c21af70ae5e8d24640c8060a5fd4d9626 [^]

fixed bug 40897: broken system if tying to create a ws row with unlimited WS

  System became unreacheable after trtying to create/update a record through WS
  as first action after Tomcat restart having unlimited WS access license.

  This occurred because TreeTablesEventHandler initialization assumed to be in
  admin mode. As unlimited access license does not do any DB modification on login,
  which is what occurs in standard login and with limited acess licenses, first
  flush with dirty entities causes TreeTablesEventHandler init to fail in a
  unrecoverable manner.

  Now TreeTablesEventHandler is initialized in admin mode to prevent this case.

---
M modules/org.openbravo.client.application/src/org/openbravo/client/application/event/TreeTablesEventHandler.java
---
(0111773)
caristu (developer)
2019-05-17 13:59

Reviewed + tested
(0112044)
hudsonbot (developer)
2019-05-21 15:17

A changeset related to this issue has been promoted main and to the
Central Repository, after passing a series of tests.

Promotion changeset: https://code.openbravo.com/erp/devel/main/rev/9b8f37d9d85e [^]
Maturity status: Test

- Issue History
Date Modified Username Field Change
2019-05-17 11:01 alostale New Issue
2019-05-17 11:01 alostale Assigned To => platform
2019-05-17 11:01 alostale Modules => Core
2019-05-17 11:01 alostale Triggers an Emergency Pack => No
2019-05-17 11:02 alostale Relationship added caused by 0035994
2019-05-17 11:05 alostale Review Assigned To => caristu
2019-05-17 11:05 alostale Regression level => Production - Confirmed Stable
2019-05-17 11:05 alostale Regression date => 2017-05-18
2019-05-17 11:05 alostale Regression introduced in release => 3.0PR17Q3
2019-05-17 11:05 alostale Regression introduced by commit => http://code.openbravo.com/erp/devel/pi/rev/383058dac5699aa263e209cbfcd10000b8153d3f [^]
2019-05-17 11:05 alostale Assigned To platform => alostale
2019-05-17 11:05 alostale Priority normal => immediate
2019-05-17 11:16 alostale Status new => scheduled
2019-05-17 11:17 hgbot Checkin
2019-05-17 11:17 hgbot Note Added: 0111769
2019-05-17 11:18 hgbot Status scheduled => resolved
2019-05-17 11:18 hgbot Resolution open => fixed
2019-05-17 11:18 hgbot Fixed in SCM revision => http://code.openbravo.com/erp/devel/pi/rev/1596542c21af70ae5e8d24640c8060a5fd4d9626 [^]
2019-05-17 13:59 caristu Note Added: 0111773
2019-05-17 13:59 caristu Status resolved => closed
2019-05-17 13:59 caristu Fixed in Version => 3.0PR19Q3
2019-05-21 15:17 hudsonbot Checkin
2019-05-21 15:17 hudsonbot Note Added: 0112044


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker