Project

General

Profile

Bug #7272

RUN ... NO-ERROR must log the 'missing.p was not found' message, always.

Added by Constantin Asofiei about 1 year ago. Updated 11 months ago.

Status:
Closed
Priority:
High
Assignee:
Target version:
-
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD
case_num:
version:

OE-vs-FWD-batch-output.diff Magnifier (501 Bytes) Galya B, 05/01/2023 09:33 AM

OE-vs-FWD-batch-output.png (50.3 KB) Galya B, 05/01/2023 09:35 AM

OE-vs-FWD-batch-output-fixed.diff Magnifier (328 Bytes) Galya B, 05/01/2023 09:57 AM

OE-vs-FWD-batch-output-fixed.png (26.4 KB) Galya B, 05/01/2023 09:58 AM

invokeFailure.png (193 KB) Galya B, 05/01/2023 12:35 PM

invokeFailure-fix-for-run-proc.diff Magnifier (1.04 KB) Galya B, 05/02/2023 06:54 AM

7272.patch Magnifier (5.73 KB) Galya B, 05/02/2023 01:12 PM

7272a-fwd-chui.png (56.8 KB) Galya B, 05/04/2023 09:21 AM

7272a-fwd-gui-3.png (8.22 KB) Galya B, 05/04/2023 09:25 AM

7272a-fwd-gui-2.png (17 KB) Galya B, 05/04/2023 09:25 AM

7272a-fwd-gui-1.png (14.6 KB) Galya B, 05/04/2023 09:25 AM

History

#2 Updated by Constantin Asofiei about 1 year ago

This program:

do on stop undo, leave:
   run missing3.p no-error.
end.
message "done".

Must log the missing3.p was not found error message in the client log. Currently, FWD does not do this in ErrorManager.displayError, if silent mode is enabled.

Also, with 5753d, ControlFlowOps.invokeFailure was changed from this:

   private static void invokeFailure(String target)
   throws StopConditionException
   {
      String spec = "\"%s\" was not found";
      String err  = String.format(spec, target);
      err = ErrorManager.buildErrorText(293, err, true);

      ErrorManager.displayError(err, false, null);
      throw new StopConditionException(err, new NumberedException(err, 293));
   }

to this:
   private static void invokeFailure(String target)
   throws StopConditionException
   {
      String spec = "\"%s\" was not found";
      String err  = String.format(spec, target);

      ErrorManager.displayError(293, err, true);
      throw new StopConditionException(err, new NumberedException(err, 293));
   }

where ErrorManager.displayError(293, err, true); is:
   public static void displayError(int num, String msg, boolean prefix)
   {
      boolean manageLegacyError = da.mustThrowLegacyError();

      msg = buildErrorText(num, msg, prefix);
      if (manageLegacyError)
      {
         da.recordForLegacyThrow(msg, num);
         throw new DeferredLegacyErrorException();
      }

      displayError(msg);
      addRaisedCondition(new int[] {num});
   }

This may not be correct, as the STOP condition will be prevented if mustThrowLegacyError() is true.

#3 Updated by Constantin Asofiei about 1 year ago

I mentioned 'log' in the title and previous entry, but this is also about displaying the error message to the user. OE always displays the 'was not found' message, regardless of NO-ERROR when running an external program and that program is not found. This program:

run missing in this-procedure no-error.
do on error undo, leave:
   run missing2 in this-procedure.  // this is logged to clientlog
end.

do on stop undo, leave:
 run missing3.p no-error.
end.
message "done".

shows this in appserver's log:
[23/04/12@21:11:20.819+0300] P-002324 T-003368 1 AS -- (Procedure: 'a.p' Line:3) Procedure a.p has no entry point for missing2. (6456)
[23/04/12@21:11:20.822+0300] P-002324 T-003368 1 AS -- (Procedure: 'a.p' Line:7) ** "missing3.p" was not found. (293)
[23/04/12@21:11:20.822+0300] P-002324 T-003368 1 AS -- (Procedure: 'a.p' Line:9) done

and the same messages are displayed in the GUI/ChUI client.

#4 Updated by Constantin Asofiei about 1 year ago

This bug already exists in trunk, it came up in a discussion when debugging a customer's application.

#5 Updated by Greg Shah about 1 year ago

  • Assignee set to Galya B
  • Priority changed from Normal to High

#6 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

Also, with 5753d, ControlFlowOps.invokeFailure was changed from this:
[...]
to this:
[...]
where ErrorManager.displayError(293, err, true); is:
[...]

This has been restored to the original before 5753d was merged, so it's not related. Discussed in #5753#note-242, #5753#note-243, #5753#note-244.

#7 Updated by Constantin Asofiei about 1 year ago

Galya, this is not a bug related to your changes. This is an existing bug which we need to fix; please see this test:

def var h as handle.

message "case 1".
do on stop undo, leave:
   run missing.p  no-error.
   message "must not show 1".
end.
message "1" error-status:error error-status:get-message(1). // 1 no ** "missing.p" was not found. (293)

message "case 2".
do on stop undo, leave:
   run missing.p .
   message "must not show 2".
end.
message "2" error-status:error error-status:get-message(1). // 1 no ** "missing.p" was not found. (293)

output to a.txt.
/*
a.txt content:

case 3
** "missing.p" was not found. (293)
3 no ** "missing.p" was not found. (293)
case 4
** "missing.p" was not found. (293)
4 no ** "missing.p" was not found. (293)

*/
message "case 3".
do on stop undo, leave:
   run missing.p  no-error.
   message "must not show 3".
end.
message "3" error-status:error error-status:get-message(1).

message "case 4".
do on stop undo, leave:
   run missing.p .
   message "must not show 4".
end.
message "4" error-status:error error-status:get-message(1).
output close.

Run it from both an standalone client and via appserver. When ran on appserver, these must be logged:

[23/05/01@15:18:00.156+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:3) case 1
[23/05/01@15:18:00.161+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:5) ** "missing.p" was not found. (293)
[23/05/01@15:18:00.161+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:8) 1 no ** "missing.p" was not found. (293)
[23/05/01@15:18:00.161+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:10) case 2
[23/05/01@15:18:00.161+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:12) ** "missing.p" was not found. (293)
[23/05/01@15:18:00.161+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:15) 2 no ** "missing.p" was not found. (293)
[23/05/01@15:18:00.162+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:29) case 3
[23/05/01@15:18:00.162+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:31) ** "missing.p" was not found. (293)
[23/05/01@15:18:00.162+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:34) 3 no ** "missing.p" was not found. (293)
[23/05/01@15:18:00.162+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:36) case 4
[23/05/01@15:18:00.162+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:38) ** "missing.p" was not found. (293)
[23/05/01@15:18:00.162+0300] P-004228 T-003908 1 AS -- (Procedure: 'testmissing.p' Line:41) 4 no ** "missing.p" was not found. (293)

We are missing these messages, either in the appserver log, the file or on screen.

#8 Updated by Galya B about 1 year ago

Constantin, I'm testing it now. I just wanted to make clear it's not related to the above mentioned change.

#9 Updated by Galya B about 1 year ago

Complete test results for the procedure in #7272#note-7:

1. executed as batch in Progress results in this output:

case 1
** "missing.p" was not found. (293)
1 no ** "missing.p" was not found. (293)
case 2
** "missing.p" was not found. (293)
2 no ** "missing.p" was not found. (293)

The content of a.txt:

case 3
** "missing.p" was not found. (293)
3 no ** "missing.p" was not found. (293)
case 4
** "missing.p" was not found. (293)
4 no ** "missing.p" was not found. (293)

2. executed as a remote procedure on an appserver in Progress results in this output:

[23/05/01@15:53:45.805+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:3) case 1
[23/05/01@15:53:45.805+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:5) ** "missing.p" was not found. (293)
[23/05/01@15:53:45.805+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:8) 1 no ** "missing.p" was not found. (293)
[23/05/01@15:53:45.805+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:10) case 2
[23/05/01@15:53:45.805+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:12) ** "missing.p" was not found. (293)
[23/05/01@15:53:45.805+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:15) 2 no ** "missing.p" was not found. (293)
[23/05/01@15:53:45.806+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:29) case 3
[23/05/01@15:53:45.806+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:31) ** "missing.p" was not found. (293)
[23/05/01@15:53:45.806+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:34) 3 no ** "missing.p" was not found. (293)
[23/05/01@15:53:45.806+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:36) case 4
[23/05/01@15:53:45.806+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:38) ** "missing.p" was not found. (293)
[23/05/01@15:53:45.806+0200] P-012120 T-006804 1 AS -- (Procedure: 'fail.p' Line:41) 4 no ** "missing.p" was not found. (293)

The content of a.txt:
The same as in batch in Progress.

3. executed as batch in FWD results in this output:

case 1
1 no 
case 2
** "missing.p" was not found. (293)
2 no 
case 4
case 4
** "missing.p" was not found. (293)
4 no
4 no

And the content of a.txt:

case 3
3 no
case 4
** "missing.p" was not found. (293)
4 no

4. executed as a remote procedure on an appserver in FWD results in this outputToFile content (same as batch):

case 1
1 no 
case 2
** "missing.p" was not found. (293)
2 no 
case 4
case 4
** "missing.p" was not found. (293)
4 no
4 no

And the content of a.txt:
The same as in batch in FWD.

Since the differences are consistent between OE and FWD lets work on batch and later test if it's fixed in chui/gui/appserver.

#10 Updated by Galya B about 1 year ago

Check the diff in batch output redirect files in the attached diff file, shown here as an image:

So the discrepancies are:
1. OE shows an error ** "missing.p" was not found. (293) on executing run missing.p no-error . Missing in FWD.
2. In case 1 in FWD error-status:get-message(1) doesn't produce output.
3. In case 2 in FWD error-status:get-message(1) doesn't produce output, although there is an error thrown.
4. output to a.txt. doesn't stop the output of case 4 to go to the standard out.
5. The messages in case 4 are duplicated (actually 4 no is also duplicated, missing in the .diff and the image).

#11 Updated by Galya B about 1 year ago

I'll focus on 1. for this task. Starting to debug.

#12 Updated by Galya B about 1 year ago

I think the issue is in the converted code that considers it a silent invokation:


public class TestMissing
{
   private static final InvokeConfig RUN_CALL_SITE_1 = new InvokeConfig().setTarget("missing.p");

   private static final InvokeConfig RUN_CALL_SITE_2 = new InvokeConfig().setTarget("missing.p");

   private static final InvokeConfig RUN_CALL_SITE_3 = new InvokeConfig().setTarget("missing.p");

   private static final InvokeConfig RUN_CALL_SITE_4 = new InvokeConfig().setTarget("missing.p");

   @LegacySignature(type = Type.MAIN)
   public void execute()
   {
      externalProcedure(Fail.this, new Block((Body) () -> 
      {

         [...]

         doBlock(TransactionType.SUB, "blockLabel0", onPhrase0, new Block((Body) () -> 
         {
            silent(() -> RUN_CALL_SITE_1.clone().run());
            message("must not show 1");
         }));

         [...]

         doBlock(TransactionType.SUB, "blockLabel1", onPhrase1, new Block((Body) () -> 
         {
            RUN_CALL_SITE_2.clone().run();
            message("must not show 2");
         }));
      }));
   }
}

Do you think it should be fixed conversion time?

#13 Updated by Constantin Asofiei about 1 year ago

Galya, please focus on ControlFlowOps.invokeFailure - the problem is there, we need to adjust that code to:
  • keep the STOP condition being raised
  • properly add the error message to ERROR-STATUS and also display it.

#14 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

Galya, please focus on ControlFlowOps.invokeFailure - the problem is there, we need to adjust that code to:
  • keep the STOP condition being raised

I believe the stop condition is always raised. must not show message is never shown in my tests.

#15 Updated by Constantin Asofiei about 1 year ago

Galya Bogdanova wrote:

Constantin Asofiei wrote:

Galya, please focus on ControlFlowOps.invokeFailure - the problem is there, we need to adjust that code to:
  • keep the STOP condition being raised

I believe the stop condition is always raised. must not show message is never shown in my tests.

Correct.

#16 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

  • properly add the error message to ERROR-STATUS and also display it.

Just to make it clear: This will not fix the missing alerts, because the error is considered silent in the converted code. It will just fix issues 2. and 3. (check #7272#note-10) and from the description of the task I thought we need to fix 1.

But let me see what I can do about 2. and 3.

#17 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

Galya Bogdanova wrote:

Constantin Asofiei wrote:

Galya, please focus on ControlFlowOps.invokeFailure - the problem is there, we need to adjust that code to:
  • keep the STOP condition being raised

I believe the stop condition is always raised. must not show message is never shown in my tests.

Correct.

But that is the OE behavior. What do I fix?

#18 Updated by Constantin Asofiei about 1 year ago

Galya Bogdanova wrote:

I believe the stop condition is always raised. must not show message is never shown in my tests.

Correct.

But that is the OE behavior. What do I fix?

Nothing to fix, just a note that this is important.

Regarding #7272-16 - please solve also the missing alert - if with NO-ERROR OpenEdge still displays the error dialog/message in a ChUI/GUI client, we need to behave the same. This behavior is out of the normal silent error mode in OpenEdge, as the ERROR-STATUS is recording this error message regardless if NO-ERROR is present or not.

#19 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

Regarding #7272-16 - please solve also the missing alert - if with NO-ERROR OpenEdge still displays the error dialog/message in a ChUI/GUI client, we need to behave the same. This behavior is out of the normal silent error mode in OpenEdge, as the ERROR-STATUS is recording this error message regardless if NO-ERROR is present or not.

This should not be considered silent in FWD - it should display an alert and fill in ERROR-STATUS, so the problem is the ErrorManager.silent() wrapper in the converted code. There is nothing silent left in this error.

#20 Updated by Constantin Asofiei about 1 year ago

Galya Bogdanova wrote:

This should not be considered silent in FWD - it should display an alert and fill in ERROR-STATUS, so the problem is the ErrorManager.silent() wrapper in the converted code. There is nothing silent left in this error.

The NO-ERROR affects argument processing, too; not just ControlFlowOps.invokeFailure. So we can't remove it from converted code.

I think it may be possible to disable silent error processing in ControlFlowOps.invokeFailure and re-enable it (if it was previously enabled). This may help - see ErrorManager.setSilent and isSilent.

#21 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

I think it may be possible to disable silent error processing in ControlFlowOps.invokeFailure and re-enable it (if it was previously enabled). This may help - see ErrorManager.setSilent and isSilent.

This is the ErrorManager code responsible for handling that part of the converted procedure:

private static boolean silentWorker(Runnable code, ServerDataAccess srv, WorkArea wa)
      // enable silent error processing
      boolean wasSilent = wa.silent;
      if (!wasSilent)
      {
         srv.setSilent(wa, true);
      }

      try
      {
         code.run();
      }
[...]

At this point I don't know if the code is a RUN external.p.

The Runnable code is () -> new InvokeConfig().setTarget("external.p").run().

The only field set in InvokeConfig is target. Is the presence of it enough to identify the executed code as RUN external.p?

#22 Updated by Galya B about 1 year ago

On line 7159 in ControlFlowOps.invokeImpl the error is to be displayed with invokeFailure(name):

         if (caller == null)
         {
            String pname = wa.pm.getRelativeName(h.get());
            if (function)
            {
               [...]
            }
            else if (explicit)
            {
               [...]
            }

            invokeFailure(name);
            return result;
         }

So there is not much else into the matter.

Basically the only clue we have runtime about what is going on is the InvokeConfig field target value is set and no other arguments are present, but I don't know if this is applicable only to RUN external.p.

#23 Updated by Constantin Asofiei about 1 year ago

Galya, invokeFailure is ever only called for a failure of a RUN externalprogram.p statement; it never gets called when invoking functions or internal procedures. There are some OO cases (like class initialization), but these can be ignored for now.

So when invokeFailure is reached you know that this is a case of an external program.

#24 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

So when invokeFailure is reached you know that this is a case of an external program.

Are you sure? Here it's called on NoSuchMethodException.

#25 Updated by Constantin Asofiei about 1 year ago

Galya Bogdanova wrote:

Constantin Asofiei wrote:

So when invokeFailure is reached you know that this is a case of an external program.

Are you sure? Here it's called on NoSuchMethodException.

This is what " There are some OO cases (like class initialization), but these can be ignored for now." comment is for. I'll work on some OO tests to check once the RUN case is fixed.

#26 Updated by Galya B about 1 year ago

Do we expect to see alert boxes?

This code always receives noMessageBox = false and transforms it in true with all client drivers.

 public static void displayError(String errmsg, boolean noMessageBox, boolean logCallStack,
                                   boolean isFromLogManager)
   {
      noMessageBox |= !ErrorManager.isSystemAlertBoxes();

#27 Updated by Constantin Asofiei about 1 year ago

Run the test with session:system-alert-boxes = false. or session:system-alert-boxes = true., in ChUI and GUI, and see how it behaves.

#28 Updated by Galya B about 1 year ago

This patch produces the following output in batch:

case 1
** "missing.p" was not found. (293)
1 no ** "missing.p" was not found. (293)
case 2
** "missing.p" was not found. (293)
2 no ** "missing.p" was not found. (293)
** "missing.p" was not found. (293)
3 no ** "missing.p" was not found. (293)
3 no ** "missing.p" was not found. (293)
** "missing.p" was not found. (293)
** "missing.p" was not found. (293)
** "missing.p" was not found. (293)

The output for case 1 and 2 is fine now, but the 3rd ** "missing.p" was not found. (293) and below are unexpected lines, that should be fixed in the context of output to a.txt. Is it part of this task?

#29 Updated by Constantin Asofiei about 1 year ago

I think we need to restore the silent mode, something like this:

boolean isSilent = ErrorManager.isSilentError();
if (isSilent)
{
   ErrorManager.setSilent(false);
}
try
{
   ErrorManager.addError(errCode, errMsg, false, true);
   ErrorManager.displayError(err);
   throw new StopConditionException(err, new NumberedException(err, errCode));
}
finally
{
   if (isSilent)
   {
      ErrorManager.setSilent(true);
   }
}

Regarding the unexpected lines, yes, please look into it. Also, is system-alert-boxes behavior working OK?

#30 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

Also, is system-alert-boxes behavior working OK?

It works only in gui, where errors are by default displayed as message boxes and with session:system-alert-boxes = false gui disables error message box. But for both chui swing and terminal session:system-alert-boxes = true doesn't take effect. I'm not sure if that's how it's supposed to work.

#31 Updated by Constantin Asofiei about 1 year ago

session:system-alert-boxes = true. works for both ChUI and GUI OpenEdge clients (displays dialog-box).

#32 Updated by Galya B about 1 year ago

Do we create a separate task? This one will get some time if I need to address all of the issues. Not sure how urgent is the test fix.

#33 Updated by Constantin Asofiei about 1 year ago

Galya Bogdanova wrote:

Do we create a separate task? This one will get some time if I need to address all of the issues. Not sure how urgent is the test fix.

Leave the system-alert-boxes on the side for now. Focus on the original test.

#34 Updated by Galya B about 1 year ago

Can I run .p file in Progress in GUI? I wonder if the system bar messages are even displayed after the redirect to the file.

#35 Updated by Constantin Asofiei about 1 year ago

Galya Bogdanova wrote:

Can I run .p file in Progress in GUI? I wonder if the system bar messages are even displayed after the redirect to the file.

prowin -p testme.p is how you can launch a program for GUI in OpenEdge.

#36 Updated by Galya B about 1 year ago

About the extra output:

Basically the problem was in:
Window.java states in message(String message, Color cs, boolean clear):

in redirected mode we output to both the terminal and to the stream

In chui there is supposed to be:
  • no status bar
  • so messages that are redirected should not appear at all.
While in gui:
  • redirected messages should not appear in alert boxes
  • but still should be shown in the status bar.

This patch makes it work so, but in FWD we have this swing chui case, where there is a status bar in chui. If we want it to show the messages in the bar, I'm not sure how to modify the code.

At the moment it works as expected in gui, batch and chui-terminal and I don't know if chui-swing is expected to behave like chui (in which case it's fine) or gui (in which case there need to be a modification).

#37 Updated by Galya B about 1 year ago

  • % Done changed from 0 to 100
  • Status changed from New to WIP

#38 Updated by Galya B about 1 year ago

  • Status changed from WIP to Review

#39 Updated by Constantin Asofiei about 1 year ago

Galya, please add your changes to the 7272a branch.

#40 Updated by Galya B about 1 year ago

Constantin Asofiei wrote:

Galya, please add your changes to the 7272a branch.

Up in 7272a r14554-14556.

#41 Updated by Constantin Asofiei about 1 year ago

Galya, I don't understand the Window.java change - in ChUI, this code emits the error message, in OpenEdge, in the terminal's message area:

def var h as handle.
output to a.txt.
h:name = "abc".
output close.

Also, I don't understand what 'status bar' you are mentioning. The lower part of the OpenEdge window has two sections:
  • the message area, where MESSAGE statement or error messages are written
  • the status area, where STATUS statement can be used.

#42 Updated by Galya B about 1 year ago

In OE if you run the procedure as batch: pro -b -p proc.p, this is what I'm referring to chui (probably not the right term). When running as batch there is no message area and nothing is displayed anywhere after the output to file statement.

#43 Updated by Galya B about 1 year ago

Our "message" ends up straight on the terminal with batch and chui-terminal, while it's not expected there.

#44 Updated by Constantin Asofiei about 1 year ago

Then this condition is not right boolean switchedOnChui = tc.isChui() && switched; .

Batch is a kind of ChUI client, while terminal is another kind of ChUI client. As I understand, this condition needs to be only for batch mode - using tc.isChUI() is too generic. Use OutputManager.inBatchMode() if you want to know if a client is in batch mode.

#45 Updated by Galya B about 1 year ago

What is chui terminal in OE? In FWD it doesn't have that message area on the bottom, so it looks like batch.

#46 Updated by Constantin Asofiei about 1 year ago

Galya Bogdanova wrote:

What is chui terminal in OE? In FWD it doesn't have that message area on the bottom, so it looks like batch.

  • ChUI terminal in OE is started via pro command. This is the character interface, in FWD can be launched via the native ChUI client, Swing ChUI client or Web ChUI client. All should behave the same, but we care only about the native ChUI client mostly, at this time.
  • batch in OE is started via bpro command. This is a 'kind of' character interface (as all calculation for FRAMEs is done in characters), and in FWD is launched via batch processes.
  • GUI clients in OE are started via prowin. FWD has Swing or Web GUI clients.

#47 Updated by Galya B about 1 year ago

OK, I get confused by all the garbage output from System.err (hopefully some day it will go away). It's indeed a change to be done only for batch.

Fixed in 7272a r14557.

#48 Updated by Constantin Asofiei about 1 year ago

Please provide a status of how it works with 7272a:
  • in ChUI (terminal) - if the message on the screen and in the file are the same
  • in Batch - if the message on the screen and in the file are the same
  • in GUI - if the message on the screen and in the file are the same
  • in appserver - if the logged messages are the same.

#49 Updated by Galya B about 1 year ago

Tested in FWD.

Batch:

output.txt

[?1049h(B[?7h[?1h=case 1
** "missing.p" was not found. (293)
1 no ** "missing.p" was not found. (293)
case 2
** "missing.p" was not found. (293)
2 no ** "missing.p" was not found. (293)
[?1049l
[?1l>

a.txt:

case 3
** "missing.p" was not found. (293)
3 no ** "missing.p" was not found. (293)
case 4
** "missing.p" was not found. (293)
4 no ** "missing.p" was not found. (293)

Chui Terminal:

a.txt:

case 3
** "missing.p" was not found. (293)
3 no ** "missing.p" was not found. (293)
case 4
** "missing.p" was not found. (293)
4 no ** "missing.p" was not found. (293)

GUI:
Two alerts and all messages:


a.txt

case 3
** "missing.p" was not found. (293)
3 no ** "missing.p" was not found. (293)
case 4
** "missing.p" was not found. (293)
4 no ** "missing.p" was not found. (293)

Appserver:
Logging configs in directory.xml:

          <node class="container" name="appserver_process">
            <node class="container" name="clientConfig">
              <node class="string" name="cfgOverrides">
                <node-attribute name="value" value="client:cmd-line-option:clientlog=appserver_process.log/>
              </node>
            </node>
          </node>

[23/05/04@16:36:30.047+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') case 1
[23/05/04@16:36:30.052+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') ** "missing.p" was not found. (293)
[23/05/04@16:36:30.056+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') 1 no ** "missing.p" was not found. (293)
[23/05/04@16:36:30.059+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') case 2
[23/05/04@16:36:30.063+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') ** "missing.p" was not found. (293)
[23/05/04@16:36:30.066+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') 2 no ** "missing.p" was not found. (293)
[23/05/04@16:36:30.142+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') ** "missing.p" was not found. (293)
[23/05/04@16:36:30.147+0300] P-165228 T-000001 1 4GL -- (Procedure: '../../galya/fail.p') ** "missing.p" was not found. (293)

But appserver logging hasn't been worked on, it's related to #3853 entry types ASDefault and ASPlumbing.

#50 Updated by Galya B about 1 year ago

For appserver do we somehow narrow down the condition in Window further by excluding appserver.

#51 Updated by Constantin Asofiei about 1 year ago

Thanks, I think we are OK with what we wanted to solve in this task. Regarding appserver - I see messages being logged in all 4 cases, so is enough for now.

Greg: we are OK to merge to trunk.

#52 Updated by Greg Shah about 1 year ago

Go ahead with the merge.

#53 Updated by Galya B about 1 year ago

Task branch 7272a was merged to the trunk as rev 14555 and archived.

#54 Updated by Greg Shah about 1 year ago

  • Status changed from Review to Test

#55 Updated by Greg Shah 11 months ago

  • Status changed from Test to Closed

Also available in: Atom PDF