Skip to content
This repository was archived by the owner on Jun 20, 2023. It is now read-only.

Gson to jackson refactoring (EXPOSUREAPP-12791) #5741

Merged
merged 57 commits into from
Jan 10, 2023

Conversation

schauersbergern
Copy link
Contributor

@schauersbergern
Copy link
Contributor Author

Also tested deserialisation of created objects from 3.1. branch. Seems to work so far.
Never the less two errors remain. The MockWebServer seems to ignore the JsonProperty Annotations although the api is configured with the jacksonConverterFactory.
This leads to two problems:

  1. The dateOfBirthKey of RegistrationTokenRequest is not serialised as keyDob (See failing test VerificationApiV1Test, test getRegistrationToken - GUID())
  2. The VerificationApiV1 doesn't provide a RegistrationToken, it seems to be null (See failing test VerificationServerTest, all requests have the same footprint for plausible deniability())

@schauersbergern schauersbergern marked this pull request as ready for review January 4, 2023 08:44
@schauersbergern schauersbergern requested a review from a team January 4, 2023 08:44
@mtwalli
Copy link
Contributor

mtwalli commented Jan 5, 2023

@schauersbergern I fixed the test now , but the app is crashing when an older version is installed 2.27.2 and then upgraded to 3.1.0 (this branch)

         ... 13 more
01-05 16:39:11.655 31087 31125 E DefaultDispatcher-worker-8:    Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@2e94966, Dispatchers.Default]
01-05 16:39:11.656 31087 31125 V DefaultBugReporter: Processing reported bug (info=Uncaught exception!) from DefaultDispatcher-worker-8: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Invalid type definition for type `de.rki.coronawarnapp.coronatest.type.rapidantigen.RACoronaTest`: Argument #18 of constructor [constructor for `de.rki.coronawarnapp.coronatest.type.rapidantigen.RACoronaTest` (26 args), annotations: [null] has no property name annotation; must have name when multiple-parameter constructor annotated as Creator
01-05 16:39:11.656 31087 31125 V DefaultBugReporter:  at [Source: (String)"[{"dateOfBirth":"1979-09-27","didShowBadge":true,"firstName":"Lulu","hasResultChangeBadge":false,"identifier":"qrcode-RAPID_ANTIGEN-30136fa8b368c806d819b7f36a3274664e3e8ebfbffb2236f17e6389f0897398","isAdvancedConsentGiven":true,"isDccConsentGiven":true,"isDccDataSetCreated":true,"isDccSupportedByPoc":true,"isResultAvailableNotificationSent":true,"isSubmitted":false,"isViewed":true,"labId":"cwa-app-cli","lastName":"Roy","lastUpdatedAt":1672932368018,"qrCodeHash":"f2db276e913b6ba980b960f64c386db5e"[truncated 233 chars]; line: 1, column: 1]
01-05 16:39:11.658 31087 31157 D WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver enabled
01-05 16:39:11.659 31087 31125 E AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-8
01-05 16:39:11.659 31087 31125 E AndroidRuntime: Process: de.rki.coronawarnapp.test, PID: 31087
01-05 16:39:11.659 31087 31125 E AndroidRuntime: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Invalid type definition for type `de.rki.coronawarnapp.coronatest.type.rapidantigen.RACoronaTest`: Argument #18 of constructor [constructor for `de.rki.coronawarnapp.coronatest.type.rapidantigen.RACoronaTest` (26 args), annotations: [null] has no property name annotation; must have name when multiple-parameter constructor annotated as Creator
01-05 16:39:11.659 31087 31125 E AndroidRuntime:  at [Source: (String)"[{"dateOfBirth":"1979-09-27","didShowBadge":true,"firstName":"Lulu","hasResultChangeBadge":false,"identifier":"qrcode-RAPID_ANTIGEN-30136fa8b368c806d819b7f36a3274664e3e8ebfbffb2236f17e6389f0897398","isAdvancedConsentGiven":true,"isDccConsentGiven":true,"isDccDataSetCreated":true,"isDccSupportedByPoc":true,"isResultAvailableNotificationSent":true,"isSubmitted":false,"isViewed":true,"labId":"cwa-app-cli","lastName":"Roy","lastUpdatedAt":1672932368018,"qrCodeHash":"f2db276e913b6ba980b960f64c386db5e"[truncated 233 chars]; line: 1, column: 1]
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.DeserializationContext.reportBadTypeDefinition(DeserializationContext.java:35)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:1172)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:212)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:2397)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:789)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:2)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:66)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:5)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.createContextual(CollectionDeserializer.java:132)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.DeserializationContext.handleSecondaryContextualization(DeserializationContext.java:16)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:10)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:12)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:82)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:7)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at de.rki.coronawarnapp.coronatest.storage.CoronaTestStorage$getCoronaTests$$inlined$map$2$2.emit(Emitters.kt:89)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.DistinctFlowImpl$collect$2.emit(Distinct.kt:95)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at de.rki.coronawarnapp.util.datastore.DataStoreExtensionsKt$map$$inlined$map$2$2.emit(Emitters.kt:67)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catchImpl$2.emit(Errors.kt:61)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.internal.SafeCollectorKt$emitFun$1.invoke(SafeCollector.kt:5)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:24)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:1)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at androidx.datastore.core.SingleProcessDataStore$data$1$invokeSuspend$$inlined$map$1$2.emit(Collect.kt:73)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.FlowKt__LimitKt$dropWhile$1$1.emit(Limit.kt:126)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.StateFlowImpl.collect(StateFlow.kt:192)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.flow.StateFlowImpl$collect$1.invokeSuspend(Unknown Source:12)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:9)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:107)
01-05 16:39:11.659 31087 31125 E AndroidRuntime:        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:82)
01-05 16:39:11.660  1434 31187 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
01-05 16:39:11.660 31087 31125 E AndroidRuntime:        Suppressed: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Invalid type definition for type `de.rki.coronawarnapp.coronatest.type.pcr.PCRCoronaTest`: Argument #13 of constructor [constructor for `de.rki.coronawarnapp.coronatest.type.pcr.PCRCoronaTest` (21 args), annotations: [null] has no property name annotation; must have name when multiple-parameter constructor annotated as Creator
01-05 16:39:11.660 31087 31125 E AndroidRuntime:  at [Source: (String)"[{"isDccSupportedByPoc":true,"authCode":"d29b614e-e661-4103-9b5b-6bbb3e740d64","didShowBadge":true,"hasResultChangeBadge":false,"identifier":"qrcode-PCR-804D32-804D3286-C806-44E2-8FEE-0EF8326E11D8","isAdvancedConsentGiven":true,"isDccConsentGiven":false,"isDccDataSetCreated":false,"isResultAvailableNotificationSent":true,"isSubmitted":true,"isViewed":true,"labId":"cwa-app-cli","lastUpdatedAt":1672932044829,"qrCodeHash":"069c6668406fd544f85e6932ab660dfd7e8e8fb55b3210545f36aced4ac1bb29","recycledA"[truncated 1343 chars]; line: 1, column: 1]
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.DeserializationContext.reportBadTypeDefinition(DeserializationContext.java:35)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:1172)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:212)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:2397)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:789)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:2)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:66)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:5)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.createContextual(CollectionDeserializer.java:132)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.DeserializationContext.handleSecondaryContextualization(DeserializationContext.java:16)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:10)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:12)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:82)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:7)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                at de.rki.coronawarnapp.coronatest.storage.CoronaTestStorage$getCoronaTests$$inlined$map$1$2.emit(Emitters.kt:89)
01-05 16:39:11.660 31087 31125 E AndroidRuntime:                ... 13 more
01-05 16:39:11.660 31087 31125 E AndroidRuntime:        Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@2e94966, Dispatchers.Default]
01-05 16:39:11.660  1434  2562 E ActivityManager: do not add repeated dropbox, mLastAppCrashedPid==31087
01-05 16:39:11.661  1434  2562 W ActivityTaskManager:   finishTopCrashedActivityLocked Force finishing activity de.rki.coronawarnapp.test/de.rki.coronawarnapp.ui.launcher.LauncherActivity
01-05 16:39:11.661  1434  2562 V ActivityTaskManager: positionChild stackId=0 to top.
01-05 16:39:11.662  1434  2562 W HwActivityTaskManagerServiceEx: appSwitch from: de.rki.coronawarnapp.test to: ch.deletescape.lawnchair.plah
01-05 16:39:11.662  2423  4626 I Hicom_Monitor: mAppSwitchNotifierEx. uid: 10207, foreground app: ch.deletescape.lawnchair.plah, foreground activity: ch.deletescape.lawnchair.LawnchairLauncher
01-05 16:39:11.662  1434  1472 D HwGameAssistantController: UPDATE: mCurFgPkg=ch.deletescape.lawnchair.plah, mCurFgPid=24420, mIsCurGame=false
01-05 16:39:11.662  1434  2562 I WindowManager: Changing focus from Window{504b5be u0 de.rki.coronawarnapp.test/de.rki.coronawarnapp.ui.launcher.LauncherActivity} to null displayId=0 Callers=com.android.server.wm.RootWindowContainer.updateFocusedWindowLocked:209 com.android.server.wm.WindowManagerService.updateFocusedWindowLocked:6517 com.android.server.wm.ActivityDisplay.setFocusedApp:1593 com.android.server.wm.ActivityTaskManagerService.setResumedActivityUncheckLocked:6561 
01-05 16:39:11.662  1434  2562 I HwDisplayContentEx: currentFocus windowstate null
01-05 16:39:11.663  1434  2562 D ZrHung.AppEyeFocusWindow: FocusWindowErrorScene CheckFreezeScreen
01-05 16:39:11.663  1434  2562 D ZrHung.AppEyeTransparentWindow: TransparentWindow cancelCheckFreezeScreen
01-05 16:39:11.663  2447  3150 I ScenarioService: app focus change from: de.rki.coronawarnapp.test to:ch.deletescape.lawnchair.plah
01-05 16:39:11.663  2447  3150 I ScenarioService: add focus on app:ch.deletescape.lawnchair.plah to visiblePkgs
01-05 16:39:11.663 31087 31157 D WM-SystemJobScheduler: Scheduling work ID 038cad03-f6f1-427c-b33a-8aa94a3b8f1a Job ID 46
01-05 16:39:11.663  2423  4214 I AssistantService-11.2.1.200: registerHwActivityNotifier call fromPackage:de.rki.coronawarnapp.test, toPackage:ch.deletescape.lawnchair.plah
01-05 16:39:11.663  2423  4493 D AssistantService-11.2.1.200: handleMessage app switch fromPackage:de.rki.coronawarnapp.test, toPackage:ch.deletescape.lawnchair.plah
01-05 16:39:11.663  2423  3226 W Hicom_XEngineProc: handleForegroundAppChanged. Feature is not enable.
01-05 16:39:11.663  2423  2923 I DollieActivityManagerAdapter: handleAppSwitch bg:true,pid:24420,uid:10207,ch.deletescape.lawnchair.LawnchairLauncher
01-05 16:39:11.663  2423  2923 E DollieAdapterService: notifyActivityState pkg:ch.deletescape.lawnchair.plah/ch.deletescape.lawnchair.LawnchairLauncher state:2 fg:true mUid:10207
01-05 16:39:11.663  1434  1490 I PowerManagerService: handleSandman: wakefulness: 1,startDreaming: false
01-05 16:39:11.663  2423  2923 I HidataAppQoeP: foregroundUidRemove uid: 10207 name: ch.deletescape.lawnchair.plah
01-05 16:39:11.664  2423  2923 I ConnCureStateMonitor: handleMessage: msg[2]
01-05 16:39:11.664  2402 11365 I iconnect:BluetoothApi: adapter status 12
01-05 16:39:11.664  3847 28512 I HiAdKit.KitStatisticsReport:  do not report kit daily active
01-05 16:39:11.664  2423  2923 I HwPacketFilterBypass: handleActivityUidStateChanged uid:10207 -1 foreground:1
01-05 16:39:11.664  2402 11365 I iconnect:NearbyDeviceDetect: isPropEnable=true, isBluetoothEnabled=true, isScreenOn=true, isNotSpecialAppOnTop=true, scanCondition=0
01-05 16:39:11.664  2423  2923 I OllieMsgCenter: publishEvt=2135097351
01-05 16:39:11.664  2423  2923 I NetworkQoeChr: checkForegroundApp timer end
01-05 16:39:11.664  2423  2923 D AppDynamicRtt: getAppRttSlowThreshold rtt sample not enought, uid:10207, sample:98
01-05 16:39:11.664  2423  2923 I OllieMsgCenter: publishEvt=2130771969
01-05 16:39:11.664  2423  2923 I OllieMsgCenter: publishEvt=2130771985
01-05 16:39:11.664  2423  2923 I SpeedTestNotifier: Speed test app is back Activity
01-05 16:39:11.664  2423  2923 I SmartDualCardConfig: getAppType,pkgName=ch.deletescape.lawnchair.plah,appType=-1
01-05 16:39:11.664  2423  2923 E SmartDualCardConfig: isAppInBlackList false,items==null
01-05 16:39:11.664  2423  2923 I PowerMsgAdapter: UID hot switch, uid:10207, pkgName:ch.deletescape.lawnchair.plah
01-05 16:39:11.665  2423  2923 E Booster_MatterAppRecommend: [isMatterPackage]invalid mMatterPackagesConfig
01-05 16:39:11.665  2423  2923 I OllieMsgCenter: publishEvt=2134966274
01-05 16:39:11.665  1434  2106 I WiFi_PRO_WifiProStateMachine: current app ch.deletescape.lawnchair.plah, has changed
01-05 16:39:11.665  2423  2923 I OllieMsgCenter: publishEvt=2135097350
01-05 16:39:11.665  1434  2106 I WiFi_PRO_WifiProStateMachine: not in RecommendWifi2CellState.
01-05 16:39:11.666  2447  7470 I PGServer: getTopFrontApp. calling pkg: android
01-05 16:39:11.666  3326 28638 I HiAdKit.DC.PersistentMessageCenter:  notifyMessage com.huawei.hwid_app_switch_from_to_intent
01-05 16:39:11.666  1434  1460 I ActivityManager: get AppResource
01-05 16:39:11.666  1434  2565 I JobScheduler.Time: Add job to TimeTracking: be1eb1e #u0a275/46 de.rki.coronawarnapp.test/androidx.work.impl.background.systemjob.SystemJobService, delayTime:265341698, deadlineTime:9223372036854775807

Copy link
Contributor

@mtwalli mtwalli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mtwalli mtwalli merged commit 8162a50 into release/3.1.x Jan 10, 2023
@mtwalli mtwalli deleted the feature/12791_gson_to_jackson branch January 10, 2023 09:34
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 2 Code Smells

82.6% 82.6% Coverage
3.8% 3.8% Duplication

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
maintainers Tag pull requests created by maintainers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants