Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0045775Openbravo ERPA. Platformpublic2021-01-21 11:092021-01-25 09:33
0045775:, increase post() visibility
Use case: I want to extend the printing process to:
1) Run some validations before printing a record
2) Run some business logic just after printing a record

To achieve that I need to develop a custom class that extends from PrintController and override doPost() to implement my logic and then call the super.doPost().

The problem is that the doPost() runs
final VariablesSecureApp vars = new VariablesSecureApp(request);
at the beginning of the method, which makes the vars.command to be reset to "DEFAULT".

This crashes the "send by email" feature (which expects a vars.command="EMAIL").

To workaround this I could easily override the post() method, which doesn't recalculate the vars variable, and which is called by the doPost().

The problem is that post() has package visibility, so I can't override it outside its package.
Create a class that extends PrintController in an external module.
Try to override post(). It's not visible outside the package.
Change visibility to public or protected.

In the future, we should add some hooks to the printing process to allow easy extensibility.
No tags attached.
blocks defect 0045768 closed cberner, increase post() visibility 
Issue History
2021-01-25 06:56alostaleTypedefect => backport
2021-01-25 06:56alostaleTarget Version => PR20Q4.2
2021-01-25 09:21hgbotNote Added: 0125746
2021-01-25 09:33hgbotResolutionopen => fixed
2021-01-25 09:33hgbotStatusscheduled => closed
2021-01-25 09:33hgbotNote Added: 0125751
2021-01-25 09:33hgbotFixed in Version => PR20Q4.2
2021-01-25 09:33hgbotNote Added: 0125752

2021-01-25 09:21   
Merge Request created: [^]
2021-01-25 09:33   
Merge request merged: [^]
2021-01-25 09:33   
Directly closing issue as related merge request is already approved.

Repository: [^]
Changeset: 4d6a636165a2b9e15c708835b308d0e6beec7046
Author: Cristian Berner <>
Date: 2021-01-25T09:20:21+01:00
URL: [^]

Fixes ISSUE-45775: Allow extending printing process by increasing post method visibility

post method visibility has been set to protected, previously private to
allow overriding it by methods that need to.
One use-case is to handle vars and modification to vars in this method
differently. Those vars are then passed to doPost method.

M src/org/openbravo/erpCommon/utility/reporting/printing/