- Messages/Events are grouped uploaded in Batches either when the "upload loop" executes, or
MParticle#upload()is invoked and are limited to 100 entries each. Previously, we would only upload 1 Batch per loop/invocation, but this caused issues when an application was uploading more than 100 events between each time uploads were processed and may have attributed to events getting lost if the message queue grew indefinitely.
- This release changes that behavior so that, every time the "upload loop" executes or
MParticle#upload()is invoked, we will create and upload as many Batches until the message queue is cleared. This means if there are 750 events waiting to be uploaded, we will create and upload 8 Batches in the background, sequentially.
Bug (Batches with incorrect DeviceInfo/ApplicationInfo)
- We discovered a bug that resulted in batches getting uploaded with DeviceInfo and ApplicationInfo from the current Session rather than the Session generated within. This bug occurred when a Session ended and a new one started with more than 100 events/messages remaining in the queue from the previous Session. In this case, we would process the first 100 messages into an upload batch with the corresponding Session's Application and Device Info, then delete the old Session object in the belief that we did not need it to generate further batches. When the next buffer of events from the previous Session was processed, we would be unable to fetch the proper old Session object, so we'd fall back on the current Session's DeviceInfo and Application.
- A number of updates for our internal Instrumented Testing suite which will increase reliability
- update Kits to latest versions
- Add public method
Session.getStartTime()which will return the start time of the current Session. The current
Sessionobject is accessible via
Migrate from the Android Support Libraries to the Jetpack (AndroidX) Libraries.
Applications are required to migrate to Android X before using this version. For more info, see
Migrating to AndroidX
- Add functionality for configurable event and identity blocking for kits based on Data Plan versions
uploadIntervalissue. The MParticle SDK allows configuration of the
MParticleOptionsand through static XML properties. Recently we identified a bug where, during the course of the SDK running,
uploadIntervalmay have been reset to the default value when we attempted to parse the XML configuration.
The root cause of this bug was that we were inadvertently providing a default/fallback value when we queried the XML configuration for uploadInterval. When this query returned it appeared as though there was a client-provided value present, which we would apply in place of the value contained in MParticleOptions. The default value that the SDK would revert to is 600 seconds