Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix missing internal limits impl #304

Merged
merged 4 commits into from
May 13, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -301,8 +301,8 @@ public void internalLimits_cancelTrace_keyLength() {
}

/**
* Test that tracing network keys are not affected by key length truncation
* Validate that the truncated version of the key is not present because it is not truncated
* Test that tracing network keys are affected by key length truncation
* Validate that the truncated version of the key is present because it is truncated
*/
@Test
public void internalLimits_recordNetworkTrace_keyLength() throws JSONException {
Expand All @@ -314,11 +314,11 @@ public void internalLimits_recordNetworkTrace_keyLength() throws JSONException {

mCountly.apm().recordNetworkTrace(key, 234, 123, 456, 7654, 8765);
Assert.assertFalse(mCountly.moduleAPM.networkTraces.containsKey(key)); // because it is sent to the request queue
Assert.assertFalse(mCountly.moduleAPM.networkTraces.containsKey("a_tra")); // because it is sent to the request queue

Assert.assertFalse(mCountly.moduleAPM.codeTraces.containsKey(key));
// also validate that the truncated version of the key is not present because it is not truncated
Assert.assertFalse(mCountly.moduleAPM.codeTraces.containsKey(UtilsInternalLimits.truncateKeyLength(key, 5, new ModuleLog(), "tag")));
validateNetworkRequest(0, key, 8765 - 7654, 234, 123, 456);
Assert.assertFalse(mCountly.moduleAPM.codeTraces.containsKey("a_tra"));
validateNetworkRequest(0, "a_tra", 8765 - 7654, 234, 123, 456);
}

/**
Expand All @@ -336,7 +336,7 @@ public void internalLimits_startNetworkTrace_keyLength() throws JSONException {
mCountly.apm().startNetworkRequest(key, "ID");
mCountly.apm().endNetworkRequest(key, "ID", 200, 123, 456);

validateNetworkRequest(0, key, -1, 200, 123, 456);
validateNetworkRequest(0, "a_tra", -1, 200, 123, 456);
}

private void validateNetworkRequest(int rqIdx, String key, long duration, int responseCode, int requestPayloadSize, int responsePayloadSize) throws JSONException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ public void internalLimit_setProperties() throws JSONException {
/**
* Given max value size truncates the values of the:
* - Custom user property values
* - user property values
* - user property values except picture
* Validate all values are truncated to the max value size that is 2
* And validate non-String values are not clipped
*
Expand Down Expand Up @@ -576,7 +576,7 @@ public void internalLimit_setProperties_maxValueSize() throws JSONException {
ModuleUserProfile.ORG_KEY, "or",
ModuleUserProfile.USERNAME_KEY, "us",
ModuleUserProfile.NAME_KEY, "na",
ModuleUserProfile.PICTURE_KEY, "pi"
ModuleUserProfile.PICTURE_KEY, "picture"
), TestUtils.map(
"custom1", "va", // because in user profiles, all values are stored as strings
"custom2", "23",
Expand All @@ -588,6 +588,33 @@ public void internalLimit_setProperties_maxValueSize() throws JSONException {
);
}

/**
* Given max value size for pictures 4096 truncates the value of the picture
* and is not affected by the general max value size
*
* @throws JSONException if JSON parsing fails
*/
@Test
public void internalLimit_setProperties_maxValueSizePicture() throws JSONException {
Countly mCountly = Countly.sharedInstance();
CountlyConfig config = TestUtils.createBaseConfig();
config.sdkInternalLimits.setMaxValueSize(2);
mCountly.init(config);

Object obj = new Object();
Countly.sharedInstance().userProfile().setProperties(TestUtils.map(
ModuleUserProfile.PICTURE_KEY,
"n6Ok5gRm79wnjkAMRoJV1NwWlLCeIkIglcnWbWcNxqO9nqzr3pc2CFdg6K9lBAfdm7jYPa4CQXGVhBsjUWcrEKexnGZRPt9AtCluMBHJosihukkFW7IR87tgpVti7bUw9ZunCWLHQ1Hlag5cNIv42YG81vC2D4WbemzyVhKowVCWiRIVX423JKkkzhvWGE6UjzjOmSYMte50Gi2JJlXDYbv2DomsBNgiCJEUoXWjgcRWCHpwCTE2vhbIZEa7dbT3IqbCXIgwAGifRJaoqQ45Va8hvXP0KTjaUlFGuhfzxadOTqsM9QppbdGov7tzvZL69oIVCoCzbwrKJaYbI982HBCP3G3rSJ9dezltjm9V0DUJLGhWXu5RXvQzUt0lcMnamWkksRHQxX7IkFUKLLgPPNEvUlagjDTvPzB24cWVZRbvZ7EPDpDKPndcHAHYNlsjUawmMxvGloxrAunKuQiqqpWBJbMj9tv0fV1jPRjZQYWX6zuU4tSXXVJcDgDjlKIiEPVvZaEogZVqH4bXse21hdn0ByKfG8HHsIqHS9D9JNh6FBao8Qrdjcxs6vMPE0s8l8addpbvexEYP4MSVqugb1rwjEwDbAxiIkksmlp215L21Uc3F3iLdh9oWeionkHNCOgz94oN1RKw9tNpveSgP5l0gVOABA0Vy7dMrVjf5VRsNXK3GmAX2uWrmYypUojq8QvwBajNxDJuHs6QXnMyaDj6i3Mn1RrE8TeRRXt8C337JgOyAAUFRlETPHAY37nOAzxyiJuAHYz4ey94BxUU5CNTjODmJmD92HSIAQDfmoTjLERtBv69uiLN0xLq4xflt425U5g4ldlzAXJPU6mKwWZKvXzHS4j7BN2WL7F0jdPBvphbRgnG7m3Pd1bDOpamj6XLYQhtf9W8MRVMZG1BQ1uUZPeiBWcKbx6Z7sXTCHp7A4PKAUqDqr8JhMfKTICihbJrvOJTYgY8ryqxorUrOgcRe8a1dWB4CpqCwY6jCCZUEveeSb9xe2IZEigHQ2Bkepra9v8jn3tnp5f86xdktR1eTsiVUtU7MkoRAyuC5t3G5Xyt7lXNJEJRJLWnCD42OpOsYmxeAow2Pd5maVoZLwsqn28XwmsPmPCyxAXeV3nQZYkl2kOaVQLJDAeJsRmRXPUKJA9XA7oS9ddEDzbum5l4z57JVaXZjl90JT4O8npWDIYF2Mvnf1kmCwoQEnvM0KkrMRcivUnPxcYYxD1fbvl80rQI1XYuLul9GTHUJ4nps5qFVwcKeJQEsOlesvtprpgaKlQkXLgZ18wkc5uyxk8dDH5BcCyYN6Oi4EXe5GFMwMh51FLHI8loIYUR27sAPhPyEkmqbAipgXkSItlUcZ5F8UJgZO2Ud12qrVRYwvOqBHS07ys2nOZJyQMLQxPf5PxNyE8sehBG85PWjUB3Phd3jPpUQfU5CnXywZu90lzICZadGssvewqvcp1QTOKRmGGrpr9emwYDLr1t3E3Pvf5Tu8AVGAY4racg3mU0Rmc43kg9a4fJJENl0OdipewaVPg9yeo3WEWVZlPDM9nfben37QEzLfxwRE7TDtNEuMfgjMDzk74FGzi50X5GXLwKnfUnp4WCwphTJo6QgtXCIp8uNCX1gAKKFNPPT8425CLIPcNYySYGSv0QUM9GfSObZsIt44IM88VRRVXoGjpuxcAyrPDUDqmIu6AACBecZhKaJhaZkchoxPJgDtIpxkW2qBVyEC6PmdvVz29qPJloqnKNkzaG3wXzlSKu6jttln1oNQ5t5YLaUjv0fuxlI2hv4jbflbvqTBshGRyIbQq8NCAcXbGZEINeXNg8ezzW9almBhaEFVyEElEPhnas8cb9QncVWUFhha9zcx5QrNMP8FOJiGxiBBGK2g5S74ZwL6LrqXYTrJ456tmlYe9xlSgooZaUNpr6ZQ3MhcR4Ozo3HtoNujA5f5ZeN1Mkx8lIrnlDjsQsaioGLIAtwlTmHC1j42eLcT4mvIaaTRfy4xhxMH3Frb9UQQP4gm2LitatYcYK9PIHV6c4kvpgoYMMg8f58ovq21AXwhxOmVSsVrYXAslPKTZhe6C2ZnYCZaykzI1CpUIrtG5y0PvxsDDIFFtXOml74KchEq2DSBOB6FNJCroExNFkU2L7aD03FrR9qRgwyO1aXDuug1yDbzoUTZpyulmScxcqwKRn2GA26YuPuQYcMQIUdkgd5lCgeNhsQwjByB2jzLXJmDPyTywhLIWZolpVskZ6s32hH2qvAHrmsAXtBj6URiiBWL2HkPnY4oZpZDLe8I2ZkX6jqUQvlj7dsf72xRTxVKFkR7v3gbGP1hHyEoFfYOD5yTLmW1J3WrxI28cRTRc52UPRtzpYudFawodE6TopPkUUFE565b0om1E9YfcZ3I2qPGjvID2fuQjKtlwXesL0uDNFXK7dPpndiV8A0iaJNs83ZIDD3L4c9WTM1DDiqdU4WeatnnUlg5rTApzbw5Ro51Lm3hi6NWWXVifC9S3kjNax6OXfbS8Rwv2rVJvfPCrzbqddExkgv9B6Vw4q69eF3cKr4bIB2Wci3BhvqyRsqiHEP6BdvMIfKAVdzqUi5o7aBq0jR6pyiUQtzzKmXdanMLFlDZNEnAAjlOkQG0fhWbN4PtpGMt5U5xtWUtyVMuMjDQncmyt3BuRqDJ2cRNeF590IBoKEm0jEw4ihBlXWbJfb9uuvUqenIlIVJg7CJdrQFsjPP727IgJqPfhayIzJYjpl9sPmzhTKar4A0M3iIUjiaeZXXLwnUIMCyDiG3Lc5OG4awPoui6KBrcfW03JUPlI4HdpOigJsTXTi39fufdccwsFuWdd7UzKJIPD5RFH8Y64CIDjfuY7byZaSj7XJmiDRL9sevjXulkRivCtSRV3sgsdrBCJbdfltWNJLUwNQzIAXuejXZhLkYNud5rLHWO9ZPcCfFAoTKx8qwlCF5r1v2cdNWjcBsh1aWOVcIMC8NL2zJqYxeYVFtSBuTYjD4k68cVTKjgfQXuawEk5S0EHLj1SwY3jHODXdZxiyd2PARTBZsekdG8GE54JWuPtzUGBiWW2pPRV7wiTHWglp9xbHfQEA7U3mDxRz4mb0VLiitgy0wu7wWxksT8JMyZICP3eK2Ncsa80Olttxa1p8EoAckncyRssxw03swlYtJQ3ccABDhXm76QtApDpgcnepOVIiHeIFK1g3f6Z6yojEqVoKoJjvu6InsXszWcmvbFDqOH4NIJdd3yULyJ5UPApVMJhfWXWp1SRB12bzs7YrO26QBFyiWeg0d17WTrdUelBx7KWWrxPibNBJFZyrZLyAwa53VnLuALIyWdP6LlOcIeCGkywXML16FiaPFby22T5D6QyvVvFfj5lCBWOY3T23XBDEMFyhi5pBsaUAN1ur9EQjk4zCx4dOOaelFF3rVZH69qAr03kxnrRQFWhPQVcw64NpjfVKhWZkRdddg4VIz2MOZGMPCc9loCaPmHhOlPFBqaFPKuDJnJCw38EssEc55jTzinBllGXpswjWuAKdQqUv5Aiq885OmtwsIXHT0hmGi80pmSscYdmKiYntsL31BVpPAtCqiPcnnGoXRwbV2v8KwVLhcBzzeNQ8MZRq5DZRSzX3H6fZ7kypuEPkxuPEhOPREv3fVNQTmSMjPJEw5EmSC3E9cZlQzGCzy9EAJcU2jsEWwPEszwYwL7q2ylbvpvOeguvge5IpCUsLq9DIrI43W7FSXTMUCRCCJx5V17qxya7kby5P6S6OBzV3xSvK0mFtIs1Y6el0MGRUbuSpQ6fYheNLjzlbyBOdCXGDNt8DlzrHwkmoi9R6kirwIu6YtkWTMmuXoRaZh4EAmxcjdhoX2PfnpJosLe8hQaJZHaQxwUB7j2nSVZBNj2DrTDrZVvVvccChxDLUJ0ngkIvMJvTdriDZYR6tSyMvBRFUCzKzBelxH0DoCBRQCg64JKe5dEdRaQ074M4HNixZAOOlsl8KYQaReBkeGPFIQv9ekpzM1mwjnSEM11tOFokEltflGax5Y7WRKaZvZClMGLSApaNakvtX6sQHCTv7aCikwTvthRXgGXQPHu7YvKEKBoinOaNKZ08htxaIRjSr6keJyLhaxXAPRZorNfYcSwErgLIJaMmwIjydxFYLSGPuz1fh5znQ5l46D8NnuY6dTaW5mQnJCDyKO0gYHWhQji0BmYTWPXgECMR5hVbdRYsiemyD2nHSfWGLwhpjyUReClZloqUWBpAYBWL3FAiV9D6gufzsoiD8PUxXvzC1dDLvkVB9LQynBk8xDgmwox0XZtHc8dQx8Fvx3nzuqiD3tfVGG0K7rD6FS4PF0JAL1b5SutkarLHhICYlGdGTcWFnk3nHNixgNLR0M0Hsykm3TTrQAJpQvFGoMjXq9KalFKZcKRe9KkQYBg0tC5LyReaaRngHeYDNl6eoDuejbBkc0rOwHSoE50jOLeDxjeW4ir9hTMy9U33SInqsGG5islhGRjAXL4UTXxbWSBIgxn8HkamRDj4OsJnLMJJr2zMctbyRd1ydTl4oK1ib5XZfOP4mJfNd4vMF3k9Ps4CwSY8bRQeUIruhVlVc9mLQx1cB57XntKluWgkrB9mbRpz9izR124rVCUbKVyATJWKlkxN5SWT9cqW21aBtauFoKG6SqaraP2TrFuusPsdJID6BJKq80LKAJC1nWnwzVPXhWpJ6WXqER2PFcx3S2xtGjR5SUmbfQGdsiFDwQw7HN5jATsOWZh45e3cXRPJ9xr0g8gCX3bhZ9nRFERmqXUUcX2BHeVrqgk9yJagHUCkBc38rFw4ssMaAzvzNXvhkvsCdGMDhiyhLVnEQr9wDk3Bhco8fCc3JuA8vYFj7v3847pB0vFes2ZbZY1cWcD8dn9mZfPOa3Qoi7MpoLnynJiX0JeLbqRGeYaJniED5xBEBjIg3vnkoeoKyNqZz2F2hVJggDVWegwAnW2deREyjZJFwjovvUM9Bbu80mzzSuWzkQhEDAtov81OzXufIMlSmpT53H9cxkqfl0AK7GOR92FBa0tqc3yOfgYXb8wZ5PLiuRUDR1EkWBkfwPAL2X7uv0K69KsUDbZuqXLPMxWL7Ncef0X66BWogsZO7keCAi8flJLXjjfx4NLwHAlu49OPq3ZqCo48nAAsLXpxsdeJMNsO75Ml3qpnRQMGiD3hHZ9OMAVcFpa6sItwU190sPqTUCDwxA0Ymj7Y2eWjKMhYHQaz3J89suYsxGQdqk6o8Kn5tLGHbtvzEnrt6u1uQ7umvj4d1RdkOiLgqdqjmkfWNtCzvmnB98DE2Dpg9FGSnJSG2FegNmCdmz5GrhMnt9zuZ5oq7i9QOARVPZfInyAuu10EdZpMz9i6BiTRGLlG4bhBm8SMENy1GpkPCkYOyYcBa0s38FAHQrUdB3v9J3dKPkw2LXfVx5oryTAkFYCGQMHRpTDe1HsVxCfJ2F2ZLGZjWneYO86G4LsQnFz7GmnuRvta13k2myaVQHklTGcuTzZJOpTFucvzpa1JuqZZMdnzv4lzrgTngOU4EnxrNoTgvMCWXMli1KjHZzVs1jZOBlIcsv1jEaCljl5Jh8XbIB79wX1aIEcSEcX1w1TQiXUsXG3MXekba3NUO7NiUHIdOcl7mH0LRFUpmvy8HmCKdj3dQwC5UrWSPS7njaNnDCMKWeOuINybHfmmlVcdc5MAyEKG6ZAJDNq9XPz83Rt69uu9oOBStOR4SGLVnsLkn79WGyL2xayH0IJ1w8O1evO5CV47QuPIpWIwzRtDr4g0ohCXdd0F8z9wSaBlR0nuBWkzKfO9K3Rrjrww1ILqL0NAdmq55Y9uTwvCZK18dbfdMmXAyivqdLitZjwCdRm5zhJvpbfjku6ml8t9Pu0A0JNAFEyo0wTK0R5skw03tNPZ6txphOakiWhKfqWKESmZmI7dMAfsbMC01xZNBbLn4iOdZvn1OEX7QqG3fP9m0dklibb6epFG0Zu4kgfxuzvddgFAvPy8XM2RYhR7M"
));
Countly.sharedInstance().userProfile().save();

validateUserProfileRequest(TestUtils.map(
ModuleUserProfile.PICTURE_KEY,
"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"
arifBurakDemiray marked this conversation as resolved.
Show resolved Hide resolved
), TestUtils.map()
);
}

/**
* Given max value size truncates the values of the:
* - Custom user property values
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ public class ConfigSdkInternalLimits {
//SDK internal limits
protected Integer maxKeyLength;
protected Integer maxValueSize;
protected int maxValueSizePicture = 4096;
protected Integer maxSegmentationValues;
protected Integer maxBreadcrumbCount;
protected Integer maxStackTraceLinesPerThread;
Expand Down
1 change: 1 addition & 0 deletions sdk/src/main/java/ly/count/android/sdk/ModuleAPM.java
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ void recordNetworkRequestInternal(String networkTraceKey, int responseCode, int
}

//validate trace key
networkTraceKey = UtilsInternalLimits.truncateKeyLength(networkTraceKey, _cly.config_.sdkInternalLimits.maxKeyLength, L, "[ModuleAPM] recordNetworkRequestInternal");
networkTraceKey = validateAndModifyTraceKey(networkTraceKey);

Long responseTimeMs = endTimestamp - startTimestamp;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -282,8 +282,12 @@ void setPropertiesInternal(@NonNull Map<String, Object> data) {
boolean isNamed = false;

// limit to the picture path is applied when request is being made in the ConnectionProcessor
if (value instanceof String && !key.equals(PICTURE_PATH_KEY)) {
value = UtilsInternalLimits.truncateValueSize(value.toString(), _cly.config_.sdkInternalLimits.maxValueSize, _cly.L, "[ModuleUserProfile] setPropertiesInternal");
if (value instanceof String) {
if (key.equals(PICTURE_PATH_KEY) || key.equals(PICTURE_KEY)) {
value = UtilsInternalLimits.truncateValueSize(value.toString(), _cly.config_.sdkInternalLimits.maxValueSizePicture, _cly.L, "[ModuleUserProfile] setPropertiesInternal");
} else {
value = UtilsInternalLimits.truncateValueSize(value.toString(), _cly.config_.sdkInternalLimits.maxValueSize, _cly.L, "[ModuleUserProfile] setPropertiesInternal");
}
}

for (String namedField : namedFields) {
Expand Down
Loading