Bug 38174

GemConnect

2.0.1, 2.0, 1.1.5

All platforms

Problem with object change notification on deletes

In GS/S 32-bit version 6.3 and later, and on GS/S 64-bit version 2.2.0
and later, changes were made in how object change notification handles
deletes from collections.  Due to these changes, using GemConnect versions
prior to 2.1 on these GS/S versions will cause indexing errors in the
#aboutToDelete:index: method.

If the following apply, you should use the updated version of
#aboutToDelete:index: listed below:

1.  Your GemConnect application uses object change notification.
2.  Your application defines the method #aboutToDelete:index:
3.  You are using GemConnect versions 1.X (any version), 2.0, or 2.0.1
4.  You are using GS/S 32-bit versions 6.3 or later, or
    You are using GS/S 64-bit versions 2.2.0 or later

Workaround

Add and commit the following code as SystemUser:

category:  'Bug 38174 fix'
method: GsRdbChangeNotifObj
deletingIn: aSeqColl startingAt: offset count: count

   | index |

   " for GS/32 6.2.X and earlier, use the following "
   " for GS/64 2.1.X and earlier, use the following "
   " index := offset - (aSeqColl class instSize). "

   " for GS/32 6.3.0 and later, use the following "
   " for GS/64 2.2.0 and later, use the following "
   index := offset.

   aSeqColl aboutToDelete: (aSeqColl copyFrom: index to: (index + count - 1))
            index: index.
%


Last updated: 10/27/08