Consultor Eletrônico



Kbase P187135: Can't close MDI container if contained input field is blank
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   04/05/2011
Status: Unverified

SYMPTOM(s):

Can't close MDI container if contained input field is blank

Input field has CausesValidation = True, Nullable = False set

The MDI container executes "delete object this-object" in a FormClosing evenr handler

First attempt to close form fails, but deletes some objects

Second attempt to close form raises .NET exception:

System.NullReferenceException: Attempt to use an object that has been deleted.
at Progress.ClrBridge.ProMarshal.ToGCHandle(Object , Boolean )
at Progress.ClrBridge.BrgClrToPro.HandleUIEvent(Object , Object , Int32 , String , Int32 , Int32 )
at MDIManager2FormClosingReceiver.OnFormClosing(Object , FormClosingEventArgs )
at System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at Progress.Windows.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

FACT(s) (Environment):

OpenEdge 10.2x
Windows

CAUSE:

Bug# OE00207270

CAUSE:

When the form is closed, the validation runs for the contained input field - this valiadation fails because it's a non-nullable field with a null value. This blocks deletion of the .NET objects.
However, the DELETE OBJECT statement does delete the objects on the ABL side, which leaves a partially deleted hybrid class.

FIX:

None at this time