1. Michał Misijuk
  2. PowerBuilder
  3. Wednesday, 22 May 2019 08:43 AM UTC

It's very hard to add this code without revealing sensitive data, so I explain problem as best as I can.

There is a user objects, let's call them uo_object and uo_caller.


uo_object has 2 events:
ue_refresh_1 and ue_refresh_2

object uo_caller calls events from uo_object like:

iuo_obj.event ue_refresh1.

PROBLEM:
When i full-build application, and run it, line iuo_obj.event ue_refresh1
calls not event ue_refresh1 but ue_refresh2  (?!?!?!?).
But when i open powerbuilder and add a space, new-line any where in this uo_caller,line iuo_obj.event ue_refresh1 calls ue_refresh1.
Of course when i again full-build application after adding space or new-line, this behaviour is repeating.

Does anyone has an idea why??

I'm on Powerbulder 2017 R2. This is also happening on R3 version

Attachments (1)
Michael Kramer Accepted Answer Pending Moderation
  1. Wednesday, 22 May 2019 21:46 PM UTC
  2. PowerBuilder
  3. # 1

Hi Michał,

I enjoy solving weird bugs. I will try to repro tomorrow but this looks very, very, VERY unexpected and completely irrational behavior for user events without Event ID.

I use custom user events on controls incredibly often and I never saw this behavior before. This does look like a very weird bug. Let me try to repro in a <"one window", "one TAB control"> setup. If I can repro this way, we have a great repro case for PB engineering. If not, we have a good comparison target for debugging.

Unfortunately I don't have PB 2017 R2 installed at this moment. I will check on PB 2017 R3, #1858 and potentially upgrade to latest bug fix if repro is possible on #1858.

I will also try on PB 2019 #2076 albeit not yet officially released.

If there are *ANY* tech details you believe are important but unable to share in public, please contact me directly through this community. I understand this can be a challenge.

Kindly, /Michael

Comment
  1. Michael Kramer
  2. Friday, 24 May 2019 10:06 AM UTC
Sorry, I can't repro. My code always calls the event my source code references. Full build time and again without any issues. This is what I expected - but worth verifying.







I have seen your type of issue in three scenario types:



1) Duplicate class name across PBL files in library list and different library lists. Maybe library list when doing Full Build differs from library list you have while editing code? Same issue when developers create their own library lists instead of sharing the library list. Or all developers use individual work.pbl library in front of library list - and that work.pbl has different content.



2) Duplicate EventID - sometimes not in same class but in ancestor/descendant classes. Compilation sequence determines which Event "wins".



3) Some PBL shared across multiple apps. Compile your class under app A - then it misbehaves running app B. Now compile same class under app B and B runs fine - however now running app A fails.

  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 22 May 2019 17:04 PM UTC
  2. PowerBuilder
  3. # 2

Hi Michał;


   Have you tried "optimizing" your PBL's lately? Sometimes, there are older "ghost" images of a PB object class's source code that get picked up in the compile thread instead of the latest object source.

Regards ... Chris

Comment
There are no comments made yet.
Michael Kramer Accepted Answer Pending Moderation
  1. Wednesday, 22 May 2019 09:56 AM UTC
  2. PowerBuilder
  3. # 3

Hi Michał,

What Event ID and/or parameters are defined for ue_refresh_1 and ue_refresh_2 respectively?

My immediate suspicion is EventID clash and order of definition in source code therefore impacting which actual method is called at runtime.

 

HTH /Michael

Comment
  1. Michał Misijuk
  2. Wednesday, 22 May 2019 10:16 AM UTC
Hi Michael,

I update my question, there is a pb.jpg attached
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.