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

com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException in v8.1.0 #735

Closed
sridhar-vadlamani-ck opened this issue Apr 22, 2020 · 4 comments

Comments

@sridhar-vadlamani-ck
Copy link

We're seeing this randomly happen on the latest release.

java -jar ../ci_workspace/flank/flank.jar firebase test android run --config flank_espresso.yml
AndroidArgs
    gcloud:
      results-bucket: ***********-flank
      results-dir: null
      record-video: false
      timeout: 8m
      async: false
      results-history-name: null
      # Android gcloud
      app: /opt/workspace/scripts/app-us-prod-debug.apk
      test: /opt/workspace/scripts/app-us-prod-debug-androidTest.apk
      auto-google-login: false
      use-orchestrator: true
      directories-to-pull:

      performance-metrics: false
      test-runner-class: null
      test-targets:
        - annotation com.creditkarma.testing.ui.EspressoTest
      device:
        - model: Nexus4
          version: 21
          locale: en
          orientation: portrait
        - model: Nexus5
          version: 22
          locale: en
          orientation: portrait
        - model: Nexus7_clone_16_9
          version: 23
          locale: en
          orientation: portrait
        - model: Nexus5X
          version: 24
          locale: en
          orientation: portrait
        - model: Nexus5X
          version: 25
          locale: en
          orientation: portrait
        - model: NexusLowRes
          version: 26
          locale: en
          orientation: portrait
        - model: Nexus6P
          version: 27
          locale: en
          orientation: portrait
        - model: Pixel2
          version: 28
          locale: en
          orientation: portrait
        - model: Pixel2
          version: 29
          locale: en
          orientation: portrait
      num-flaky-test-attempts: 2

    flank:
      max-test-shards: 15
      shard-time: 100
      num-test-runs: 1
      smart-flank-gcs-path: gs://***********-android/test_timings.xml
      smart-flank-disable-upload: false
      files-to-download:

      test-targets-always-run:

      disable-sharding: false
      project: ***********
      local-result-dir: test-lab-results
      # Android Flank Yml
      keep-file-path: false
      additional-app-test-apks:

RunTests
  Uploading app-us-prod-debug-androidTest.apk .  Uploading app-us-prod-debug.apk .

com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: Instantiation of [simple type, class ftl.reports.xml.model.JUnitTestSuite] value failed for JSON property hostname due to missing (therefore NULL) value for creator parameter hostname which is a non-nullable type
 at [Source: (byte[])"<?xml version='1.0' encoding='UTF-8' ?>
<testsuites>
  <testsuite name="Pixel2-28-en-portrait" tests="29" failures="0" flakes="0" errors="0" skipped="0" time="241.681" timestamp="2020-04-22T02:16:04">
    <testcase name="testAllLoginWidgetsAreDisplayed" classname="com.creditkarma.mobile.login.ui.LoginActivityEspressoTest" time="7.721"/>
    <testcase name="testCcuDialogOpensCorrectly" classname="com.creditkarma.mobile.ploans.ui.lightbox.activation.LightboxActivationEspressoTest" time="9.552"/>
 "[truncated 84476 bytes]; line: 33, column: 3] (through reference chain: ftl.reports.xml.model.JUnitTestResult["testsuite"]->java.util.ArrayList[0]->ftl.reports.xml.model.JUnitTestSuite["hostname"])
	at com.fasterxml.jackson.module.kotlin.KotlinValueInstantiator.createFromObjectWith(KotlinValueInstantiator.kt:107)
	at com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.build(PropertyBasedCreator.java:198)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:488)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1287)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
	at com.fasterxml.jackson.dataformat.xml.deser.WrapperHandlingDeserializer.deserialize(WrapperHandlingDeserializer.java:114)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:530)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:528)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:417)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1287)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
	at com.fasterxml.jackson.dataformat.xml.deser.WrapperHandlingDeserializer.deserialize(WrapperHandlingDeserializer.java:114)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3266)
	at ftl.reports.xml.JUnitXmlKt.parseAllSuitesXml(JUnitXml.kt:50)
	at ftl.reports.xml.JUnitXmlKt.parseAllSuitesXml(JUnitXml.kt:54)
	at ftl.gc.GcStorage.downloadJunitXml(GcStorage.kt:94)
	at ftl.args.ArgsHelper.calculateShards(ArgsHelper.kt:222)
	at ftl.args.AndroidTestShard.getTestShardChunks(AndroidTestShard.kt:26)
	at ftl.run.AndroidTestRunner$runTests$2.invokeSuspend(AndroidTestRunner.kt:38)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.ResumeModeKt.resumeUninterceptedMode(ResumeMode.kt:45)
	at kotlinx.coroutines.internal.ScopeCoroutine.afterCompletionInternal(Scopes.kt:32)
	at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:310)
	at kotlinx.coroutines.JobSupport.tryFinalizeFinishingState(JobSupport.kt:236)
	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:849)
	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:811)
	at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:787)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:270)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:79)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:54)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:36)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at ftl.cli.firebase.test.android.AndroidRunCommand.run(AndroidRunCommand.kt:49)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1729)
	at picocli.CommandLine.access$900(CommandLine.java:145)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2101)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2068)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:1935)
	at picocli.CommandLine.execute(CommandLine.java:1864)
	at ftl.Main$Companion.main(Main.kt:41)
	at ftl.Main.main(Main.kt)
@bootstraponline
Copy link
Contributor

This NPE is fixed on master / snapshot (per feedback from @pawelpasterz )

0d1155d#diff-f0556ef0c7b1fa5a40e7d8be03562cfb

@doodla
Copy link
Contributor

doodla commented Apr 22, 2020

That fix looks like it's different? Looks more like it fixed another case of #734

@jan-goral
Copy link
Contributor

Hi @doodla. Looks like your test_timings.xml have no hostname property that was previously required to be non-null. This issue probably was fixed by f114c83#diff-8ceccb778feca8bf020e34db9a3f335dR35, which will be available in next release. You can check the latest snapshot. Be aware that #666 introduces new way to generate results directly from FTL API instead of xml parsing, which can produce slightly different xml output. To make sure that your test_timings.xml will be compatible with latest snapshot you can add option legacy-junit-result: true to your config.

@doodla
Copy link
Contributor

doodla commented Apr 22, 2020

@jan-gogo Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants