Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0048895Openbravo ERPA. Platformpublic2022-03-25 08:052022-03-25 12:00
alostale 
alostale 
normalminoralways
closedfixed 
5
 
PR21Q4.5PR21Q4.5 
Core
Production - Confirmed Stable
2019-07-18
3.0PR19Q4
https://gitlab.com/openbravo/product/openbravo/-/commit/00303fc65a67c7009566bbb7662682c23ba48927 [^]
No
0048895: MMC cannot update a module merging another one
Given module A with a version 2 that merges module B, and an instance with module A version 1 and module B installed. Scan for updates correctly finds the new A version and detects it will merge B, but an error is thrown when trying to install them.
0. The situation can be emulated executing the following script:
insert into ad_module 
   (ad_module_id,
    ad_client_id,    ad_org_id   ,    createdby   ,    updatedby   ,
    name        ,    version     ,    description ,    javapackage)
values    
   ('D0D3E67E47664CEAB9AA81F712DB9C22',
    '0',  '0'   ,    '0',    '0',
    'Old masterdata fr'        ,    '1.0.100',
    'will be merged' ,    'org.openbravo.france.old');

insert into ad_module 
   (ad_module_id,
    ad_client_id,    ad_org_id   ,    createdby   ,    updatedby   ,
    name        ,    version     ,    description ,    javapackage)
values    
   ('5C4060A3E6CC4A32ADED3252ACD79E82',
    '0',  '0'   ,    '0',    '0',
    'Master Data France - Payment Methods'        ,    '1.0.100',
    'will merge' ,    'org.openbravo.france.paymentmethods');

update ad_system_info set last_dbupdate = now();    


1. As system admin, in Module Management window, Scan for updates
  -> OK: Note and update in Master Data France - Payment Methods is found

2. Click on Install Updates Now
  -> ERROR:
 2022-03-25 07:55:40,438 [http-nio-8080-exec-1] ERROR org.openbravo.erpCommon.ad_forms.ModuleManagement 
- org.openbravo.base.exception.OBException: org.codehaus.jettison.json.JSONException: JSONObject["dependencies"] 
is not a JSONArray.
org.openbravo.base.exception.OBException: org.openbravo.base.exception.OBException: org.codehaus.jettison.json.JSONException: 
JSONObject["dependencies"] is not a JSONArray.
    at org.openbravo.service.centralrepository.ModuleInstallDetail.fromJson(ModuleInstallDetail.java:64) 
~[classes/:?]
    at org.openbravo.erpCommon.modules.VersionUtility.checkRemote(VersionUtility.java:679) ~[classes/:?]
    
at org.openbravo.erpCommon.modules.ImportModule.checkDependenciesId(ImportModule.java:298) ~[classes/:?]
    
at org.openbravo.erpCommon.ad_forms.ModuleManagement.printPageInstall1(ModuleManagement.java:1226) [classes/:?]
    
at org.openbravo.erpCommon.ad_forms.ModuleManagement.doPost(ModuleManagement.java:204) [classes/:?]
    
...
Caused by: org.openbravo.base.exception.OBException: org.codehaus.jettison.json.JSONException: JSONObject["dependencies"] 
is not a JSONArray.
    at org.openbravo.service.centralrepository.Module.fromJson(Module.java:116) ~[classes/:?]
    at org.openbravo.service.centralrepository.Module.fromJson(Module.java:125) ~[classes/:?]
    at org.openbravo.service.centralrepository.ModuleInstallDetail.fromJson(ModuleInstallDetail.java:58) 
~[classes/:?]
    ... 49 more

Temporary workaround while the issue is not fixed: manually uninstall the module that will be merged before doing the update.
No tags attached.
blocks defect 0048893PR22Q2 closed alostale MMC cannot update a module merging another one 
Issue History
2022-03-25 08:15alostaleTypedefect => backport
2022-03-25 08:15alostaleTarget Version => PR21Q4.5
2022-03-25 09:04hgbotNote Added: 0136019
2022-03-25 09:08hgbotNote Added: 0136020
2022-03-25 11:56hgbotNote Added: 0136046
2022-03-25 12:00hgbotResolutionopen => fixed
2022-03-25 12:00hgbotStatusscheduled => closed
2022-03-25 12:00hgbotFixed in Version => PR21Q4.5
2022-03-25 12:00hgbotNote Added: 0136049
2022-03-25 12:00hgbotNote Added: 0136050

Notes
(0136019)
hgbot   
2022-03-25 09:04   
Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/544 [^]
(0136020)
hgbot   
2022-03-25 09:08   
Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/545 [^]
(0136046)
hgbot   
2022-03-25 11:56   
Merge request closed: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/545 [^]
(0136049)
hgbot   
2022-03-25 12:00   
Merge request merged: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/544 [^]
(0136050)
hgbot   
2022-03-25 12:00   
Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: fd5bfe4828c1fe76e6cee7dc05488d7eeab07d6e
Author: Asier Lostalé <asier.lostale@openbravo.com>
Date: 25-03-2022 08:56:24
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/fd5bfe4828c1fe76e6cee7dc05488d7eeab07d6e [^]

fixes BUG-48895: MMC cannot update a module merging another one

When updating a module that is merged, Central Repository replies with
an object that does not contain information about its dependencies (as
they won't be used anyway). We expected this information to always be
available and update crashed when it was not.

---
M src/org/openbravo/service/centralrepository/Module.java
M src/org/openbravo/service/centralrepository/ModuleDependency.java
M src/org/openbravo/service/centralrepository/ModuleInstallDetail.java
---