Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0048894Openbravo ERPA. Platformpublic2022-03-25 08:052022-03-25 12:00
alostale 
alostale 
normalminoralways
closedfixed 
5
 
PR22Q1.2PR22Q1.2 
Core
Production - Confirmed Stable
2019-07-18
3.0PR19Q4
https://gitlab.com/openbravo/product/openbravo/-/commit/00303fc65a67c7009566bbb7662682c23ba48927 [^]
No
0048894: 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 => PR22Q1.2
2022-03-25 11:54hgbotNote Added: 0136045
2022-03-25 12:00hgbotNote Added: 0136051
2022-03-25 12:00hgbotResolutionopen => fixed
2022-03-25 12:00hgbotStatusscheduled => closed
2022-03-25 12:00hgbotFixed in Version => PR22Q1.2
2022-03-25 12:00hgbotNote Added: 0136052

Notes
(0136045)
hgbot   
2022-03-25 11:54   
Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/546 [^]
(0136051)
hgbot   
2022-03-25 12:00   
Merge request merged: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/546 [^]
(0136052)
hgbot   
2022-03-25 12:00   
Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: 0bc7eadfc6f75eaa9554f243141feb2527126e09
Author: Asier Lostalé <asier.lostale@openbravo.com>
Date: 25-03-2022 09:06:32
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/0bc7eadfc6f75eaa9554f243141feb2527126e09 [^]

fixes BUG-48894: 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
---