<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="PersonRepositoryIntegrationTest[jvm]" tests="6" skipped="0" failures="0" errors="0" timestamp="2026-09-01T13:40:37.558Z" hostname="devserver3.ustadmobile.com" time="9.13">
  <properties/>
  <testcase name="givenRequestMade_whenSameRequestMadeAgain_thenRemoteDataWillReturnNotModified[jvm]" classname="world.respect.datalayer.repository.school.PersonRepositoryIntegrationTest" time="1.305"/>
  <testcase name="givenRemotePagingSourceWillLoad[jvm]" classname="world.respect.datalayer.repository.school.PersonRepositoryIntegrationTest" time="1.153"/>
  <testcase name="givenRequestMade_whenNextRequestSinceParamSetToPreviousConsistentThroughValue_thenRemoteResultShouldBeEmpty[jvm]" classname="world.respect.datalayer.repository.school.PersonRepositoryIntegrationTest" time="1.172"/>
  <testcase name="givenPersonWrittenLocally_whenStored_thenWillSendToRemote[jvm]" classname="world.respect.datalayer.repository.school.PersonRepositoryIntegrationTest" time="1.155"/>
  <testcase name="givenRequestMade_whenDataChangedAndSameRequestMadeAgain_thenRemoteDataWillBeLoaded[jvm]" classname="world.respect.datalayer.repository.school.PersonRepositoryIntegrationTest" time="3.181"/>
  <testcase name="givenRequestMade_whenDataChangedAndNextRequestSinceParamSetToPreviousConsistentThroughValue_thenRemoteResultShouldBeUpdated[jvm]" classname="world.respect.datalayer.repository.school.PersonRepositoryIntegrationTest" time="1.164"/>
  <system-out><![CDATA[2026-09-01 17:40:37.726 [Test worker @coroutine#62] INFO  io.ktor.server.Application - Autoreload is disabled because the development mode is off.
2026-09-01 17:40:37.732 [Test worker @coroutine#62] INFO  io.ktor.server.Application - Application started in 0.098 seconds.
2026-09-01 17:40:37.735 [DefaultDispatcher-worker-2 @coroutine#71] INFO  io.ktor.server.Application - Responding at http://0.0.0.0:36497
2026-09-01 17:40:37.745 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:36497/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:37.745 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:36497/api/school/respect/schoolpermissiongrant.
2026-09-01 17:40:37.749 [eventLoopGroupProxy-13-1 @call-handler#74] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, schoolpermissiongrant]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/person
        /api/school/respect/schoolpermissiongrant, segment:4 -> SUCCESS @ /api/school/respect/schoolpermissiongrant
          /api/school/respect/schoolpermissiongrant [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/schoolpermissiongrant [(method:GET)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "schoolpermissiongrant" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/schoolpermissiongrant [(method:GET)]
2026-09-01 17:40:37.761 [Test worker @coroutine#62] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:36497/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:37.761 [Test worker @coroutine#62] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:36497/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:37.761 [Test worker @coroutine#62] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:36497/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:37.763 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:36497/api/school/respect/schoolpermissiongrant.
2026-09-01 17:40:37.827 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:37.827 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:36497/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:37.829 [eventLoopGroupProxy-13-1 @call-handler#80] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
        /api/school/respect/schoolpermissiongrant, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/schoolpermissiongrant
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:37.847 [Test worker @coroutine#62] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:37.848 [Test worker @coroutine#62] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:37.848 [Test worker @coroutine#62] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:37.849 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:36497/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:37.854 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:37.855 [Test worker @coroutine#62] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:36497/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:37.856 [eventLoopGroupProxy-13-1 @call-handler#86] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
        /api/school/respect/schoolpermissiongrant, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/schoolpermissiongrant
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:37.858 [eventLoopGroupProxy-13-1 @call-handler#86] TRACE i.k.s.p.c.ContentNegotiation - Skipping response body transformation from HttpStatusCode to OutgoingContent for the GET /api/school/respect/person?includeRelated=false request because the HttpStatusCode type is ignored. See [ContentNegotiationConfig::ignoreType].
2026-09-01 17:40:37.858 [Test worker @coroutine#62] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:37.858 [Test worker @coroutine#62] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:37.858 [Test worker @coroutine#62] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:36497/api/school/respect/person?includeRelated=false
2026-09-01 17:40:38.945 [Test worker @coroutine#90] INFO  io.ktor.server.Application - Autoreload is disabled because the development mode is off.
2026-09-01 17:40:38.946 [Test worker @coroutine#90] INFO  io.ktor.server.Application - Application started in 0.04 seconds.
2026-09-01 17:40:38.947 [DefaultDispatcher-worker-3 @coroutine#99] INFO  io.ktor.server.Application - Responding at http://0.0.0.0:43733
2026-09-01 17:40:38.948 [Test worker @coroutine#90] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:43733/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:38.948 [Test worker @coroutine#90] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:43733/api/school/respect/schoolpermissiongrant.
2026-09-01 17:40:38.950 [eventLoopGroupProxy-16-1 @call-handler#102] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, schoolpermissiongrant]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/person
        /api/school/respect/schoolpermissiongrant, segment:4 -> SUCCESS @ /api/school/respect/schoolpermissiongrant
          /api/school/respect/schoolpermissiongrant [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/schoolpermissiongrant [(method:GET)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "schoolpermissiongrant" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/schoolpermissiongrant [(method:GET)]
2026-09-01 17:40:38.952 [Test worker @coroutine#90] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:43733/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:38.953 [Test worker @coroutine#90] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:43733/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:38.953 [Test worker @coroutine#90] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:43733/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:38.953 [Test worker @coroutine#90] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:43733/api/school/respect/schoolpermissiongrant.
2026-09-01 17:40:39.002 [DefaultDispatcher-worker-2 @coroutine#108] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:43733/api/school/respect/person?includeDeleted=true&includeRelated=false&offset=0&limit=100
2026-09-01 17:40:39.002 [DefaultDispatcher-worker-2 @coroutine#108] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:43733/api/school/respect/person?includeDeleted=true&includeRelated=false&offset=0&limit=100.
2026-09-01 17:40:39.004 [eventLoopGroupProxy-16-1 @call-handler#112] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
        /api/school/respect/schoolpermissiongrant, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/schoolpermissiongrant
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:39.007 [DefaultDispatcher-worker-3 @coroutine#108] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:43733/api/school/respect/person?includeDeleted=true&includeRelated=false&offset=0&limit=100
2026-09-01 17:40:39.008 [DefaultDispatcher-worker-3 @coroutine#108] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:43733/api/school/respect/person?includeDeleted=true&includeRelated=false&offset=0&limit=100
2026-09-01 17:40:39.008 [DefaultDispatcher-worker-3 @coroutine#108] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:43733/api/school/respect/person?includeDeleted=true&includeRelated=false&offset=0&limit=100
2026-09-01 17:40:39.009 [DefaultDispatcher-worker-3 @coroutine#108] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:43733/api/school/respect/person?includeDeleted=true&includeRelated=false&offset=0&limit=100.
2026-09-01 17:40:40.118 [Test worker @coroutine#117] INFO  io.ktor.server.Application - Autoreload is disabled because the development mode is off.
2026-09-01 17:40:40.119 [Test worker @coroutine#117] INFO  io.ktor.server.Application - Application started in 0.04 seconds.
2026-09-01 17:40:40.120 [DefaultDispatcher-worker-3 @coroutine#126] INFO  io.ktor.server.Application - Responding at http://0.0.0.0:33607
2026-09-01 17:40:40.123 [Test worker @coroutine#117] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:33607/api/school/respect/person?includeRelated=false
2026-09-01 17:40:40.123 [Test worker @coroutine#117] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:33607/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:40.125 [eventLoopGroupProxy-19-1 @call-handler#130] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:40.129 [Test worker @coroutine#117] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:33607/api/school/respect/person?includeRelated=false
2026-09-01 17:40:40.129 [Test worker @coroutine#117] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:33607/api/school/respect/person?includeRelated=false
2026-09-01 17:40:40.129 [Test worker @coroutine#117] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:33607/api/school/respect/person?includeRelated=false
2026-09-01 17:40:40.130 [Test worker @coroutine#117] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:33607/api/school/respect/person?includeRelated=false.
DataReadyState(data=[Person(guid=4242, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:40.018Z, stored=2026-09-01T13:40:40.168Z, metadata=null, userMasterIdentifier=null, username=null, givenName=Admin, familyName=User, middleName=null, gender=UNSPECIFIED, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SYSTEM_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null)], metaInfo=DataLoadMetaInfo(lastModified=1788270040018, lastStored=1788270040168, etag=null, url=http://localhost:33607/api/school/respect/person?includeRelated=false, consistentThrough=2026-09-01T13:40:40.169266936Z, validationInfoKey=0, varyHeader=null, headers=null, permissionsLastModified=null), localState=DataReadyState(data=[Person(guid=4242, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:40.018Z, stored=2026-09-01T13:40:40.168Z, metadata=null, userMasterIdentifier=null, username=null, givenName=Admin, familyName=User, middleName=null, gender=UNSPECIFIED, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SYSTEM_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null)], metaInfo=DataLoadMetaInfo(lastModified=1788270040018, lastStored=1788270040168, etag=null, url=null, consistentThrough=2026-09-01T13:40:40.169266936Z, validationInfoKey=0, varyHeader=null, headers=null, permissionsLastModified=null), localState=null, remoteState=null), remoteState=DataReadyState(data=[Person(guid=4242, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:40.018Z, stored=2026-09-01T13:40:40.078Z, metadata=null, userMasterIdentifier=null, username=null, givenName=Admin, familyName=User, middleName=null, gender=UNSPECIFIED, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SYSTEM_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null), Person(guid=42, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:40.017Z, stored=2026-09-01T13:40:40.120Z, metadata=null, userMasterIdentifier=null, username=test, givenName=test, familyName=test, middleName=null, gender=FEMALE, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SITE_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null)], metaInfo=DataLoadMetaInfo(lastModified=1788270040000, lastStored=-1, etag=null, url=http://localhost:33607/api/school/respect/person?includeRelated=false, consistentThrough=2026-09-01T13:40:40.126187598Z, validationInfoKey=7092960727423664838, varyHeader=Authorization, headers=io.ktor.client.engine.okhttp.OkUtilsKt$fromOkHttp$1@646e6d07, permissionsLastModified=null), localState=null, remoteState=null))
2026-09-01 17:40:40.180 [Test worker @coroutine#117] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:33607/api/school/respect/person?since=2026-09-01T13%3A40%3A40.126187598Z&includeRelated=false
2026-09-01 17:40:40.180 [Test worker @coroutine#117] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:33607/api/school/respect/person?since=2026-09-01T13%3A40%3A40.126187598Z&includeRelated=false.
2026-09-01 17:40:40.182 [eventLoopGroupProxy-19-1 @call-handler#136] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:40.183 [Test worker @coroutine#117] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:33607/api/school/respect/person?since=2026-09-01T13%3A40%3A40.126187598Z&includeRelated=false
2026-09-01 17:40:40.183 [Test worker @coroutine#117] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:33607/api/school/respect/person?since=2026-09-01T13%3A40%3A40.126187598Z&includeRelated=false
2026-09-01 17:40:40.183 [Test worker @coroutine#117] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:33607/api/school/respect/person?since=2026-09-01T13%3A40%3A40.126187598Z&includeRelated=false
2026-09-01 17:40:40.184 [Test worker @coroutine#117] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:33607/api/school/respect/person?since=2026-09-01T13%3A40%3A40.126187598Z&includeRelated=false.
Run time: 64.051006ms
2026-09-01 17:40:41.282 [Test worker @coroutine#142] INFO  io.ktor.server.Application - Autoreload is disabled because the development mode is off.
2026-09-01 17:40:41.283 [Test worker @coroutine#142] INFO  io.ktor.server.Application - Application started in 0.04 seconds.
2026-09-01 17:40:41.284 [DefaultDispatcher-worker-3 @coroutine#151] INFO  io.ktor.server.Application - Responding at http://0.0.0.0:46149
2026-09-01 17:40:41.329 [DefaultDispatcher-worker-5 @coroutine#149] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:46149/api/school/respect/person
2026-09-01 17:40:41.329 [DefaultDispatcher-worker-5 @coroutine#149] TRACE i.k.c.p.c.ContentNegotiation - Converted request body using io.ktor.serialization.kotlinx.KotlinxSerializationConverter@2d4f892a for http://localhost:46149/api/school/respect/person
2026-09-01 17:40:41.329 [DefaultDispatcher-worker-5 @coroutine#149] TRACE i.k.c.plugins.defaultTransformers - Transformed with default transformers request body for http://localhost:46149/api/school/respect/person from class io.ktor.http.content.TextContent
2026-09-01 17:40:41.332 [eventLoopGroupProxy-22-1 @call-handler#160] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:POST)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:POST)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:POST)]
2026-09-01 17:40:41.337 [eventLoopGroupProxy-22-1 @call-handler#160] TRACE i.k.server.engine.DefaultTransform - No Default Transformations found for class io.ktor.utils.io.ByteChannel and expected type TypeInfo(kotlin.collections.List<world.respect.datalayer.school.model.Person>) for call /api/school/respect/person
2026-09-01 17:40:41.339 [eventLoopGroupProxy-22-1 @call-handler#160] TRACE i.k.s.p.c.ContentNegotiation - Skipping response body transformation from HttpStatusCode to OutgoingContent for the POST /api/school/respect/person request because the HttpStatusCode type is ignored. See [ContentNegotiationConfig::ignoreType].
2026-09-01 17:40:41.339 [DefaultDispatcher-worker-2 @coroutine#149] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:46149/api/school/respect/person
2026-09-01 17:40:41.339 [DefaultDispatcher-worker-2 @coroutine#149] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:46149/api/school/respect/person
2026-09-01 17:40:41.340 [DefaultDispatcher-worker-2 @coroutine#149] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:46149/api/school/respect/person
2026-09-01 17:40:42.454 [Test worker @coroutine#165] INFO  io.ktor.server.Application - Autoreload is disabled because the development mode is off.
2026-09-01 17:40:42.454 [Test worker @coroutine#165] INFO  io.ktor.server.Application - Application started in 0.038 seconds.
2026-09-01 17:40:42.456 [DefaultDispatcher-worker-1 @coroutine#174] INFO  io.ktor.server.Application - Responding at http://0.0.0.0:33223
2026-09-01 17:40:42.456 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:33223/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:42.456 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:33223/api/school/respect/schoolpermissiongrant.
2026-09-01 17:40:42.459 [eventLoopGroupProxy-25-1 @call-handler#177] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, schoolpermissiongrant]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/person
        /api/school/respect/schoolpermissiongrant, segment:4 -> SUCCESS @ /api/school/respect/schoolpermissiongrant
          /api/school/respect/schoolpermissiongrant [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/schoolpermissiongrant [(method:GET)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "schoolpermissiongrant" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/schoolpermissiongrant [(method:GET)]
2026-09-01 17:40:42.460 [Test worker @coroutine#165] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:33223/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:42.460 [Test worker @coroutine#165] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:33223/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:42.460 [Test worker @coroutine#165] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:33223/api/school/respect/schoolpermissiongrant
2026-09-01 17:40:42.461 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:33223/api/school/respect/schoolpermissiongrant.
2026-09-01 17:40:42.502 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:42.502 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:33223/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:42.503 [eventLoopGroupProxy-25-1 @call-handler#183] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
        /api/school/respect/schoolpermissiongrant, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/schoolpermissiongrant
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:42.509 [Test worker @coroutine#165] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:42.509 [Test worker @coroutine#165] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:42.509 [Test worker @coroutine#165] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:42.510 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:33223/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:44.515 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:44.516 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:33223/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:44.517 [eventLoopGroupProxy-25-1 @call-handler#190] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
        /api/school/respect/schoolpermissiongrant, segment:3 -> FAILURE "Selector didn't match" @ /api/school/respect/schoolpermissiongrant
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:44.519 [Test worker @coroutine#165] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:44.519 [Test worker @coroutine#165] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:44.519 [Test worker @coroutine#165] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:33223/api/school/respect/person?includeRelated=false
2026-09-01 17:40:44.520 [Test worker @coroutine#165] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:33223/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:45.628 [Test worker @coroutine#196] INFO  io.ktor.server.Application - Autoreload is disabled because the development mode is off.
2026-09-01 17:40:45.628 [Test worker @coroutine#196] INFO  io.ktor.server.Application - Application started in 0.038 seconds.
2026-09-01 17:40:45.630 [DefaultDispatcher-worker-2 @coroutine#205] INFO  io.ktor.server.Application - Responding at http://0.0.0.0:34577
2026-09-01 17:40:45.632 [Test worker @coroutine#196] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:34577/api/school/respect/person?includeRelated=false
2026-09-01 17:40:45.632 [Test worker @coroutine#196] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:34577/api/school/respect/person?includeRelated=false.
2026-09-01 17:40:45.634 [eventLoopGroupProxy-28-1 @call-handler#209] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:45.637 [Test worker @coroutine#196] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:34577/api/school/respect/person?includeRelated=false
2026-09-01 17:40:45.638 [Test worker @coroutine#196] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:34577/api/school/respect/person?includeRelated=false
2026-09-01 17:40:45.638 [Test worker @coroutine#196] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:34577/api/school/respect/person?includeRelated=false
2026-09-01 17:40:45.639 [Test worker @coroutine#196] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:34577/api/school/respect/person?includeRelated=false.
DataReadyState(data=[Person(guid=4242, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:45.526Z, stored=2026-09-01T13:40:45.676Z, metadata=null, userMasterIdentifier=null, username=null, givenName=Admin, familyName=User, middleName=null, gender=UNSPECIFIED, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SYSTEM_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null)], metaInfo=DataLoadMetaInfo(lastModified=1788270045526, lastStored=1788270045676, etag=null, url=http://localhost:34577/api/school/respect/person?includeRelated=false, consistentThrough=2026-09-01T13:40:45.677007940Z, validationInfoKey=0, varyHeader=null, headers=null, permissionsLastModified=null), localState=DataReadyState(data=[Person(guid=4242, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:45.526Z, stored=2026-09-01T13:40:45.676Z, metadata=null, userMasterIdentifier=null, username=null, givenName=Admin, familyName=User, middleName=null, gender=UNSPECIFIED, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SYSTEM_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null)], metaInfo=DataLoadMetaInfo(lastModified=1788270045526, lastStored=1788270045676, etag=null, url=null, consistentThrough=2026-09-01T13:40:45.677007940Z, validationInfoKey=0, varyHeader=null, headers=null, permissionsLastModified=null), localState=null, remoteState=null), remoteState=DataReadyState(data=[Person(guid=4242, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:45.526Z, stored=2026-09-01T13:40:45.589Z, metadata=null, userMasterIdentifier=null, username=null, givenName=Admin, familyName=User, middleName=null, gender=UNSPECIFIED, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SYSTEM_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null), Person(guid=42, userActive=true, status=ACTIVE, lastModified=2026-09-01T13:40:45.524Z, stored=2026-09-01T13:40:45.630Z, metadata=null, userMasterIdentifier=null, username=test, givenName=test, familyName=test, middleName=null, gender=FEMALE, preferredFirstName=null, preferredMiddleName=null, preferredLastName=null, pronouns=null, roles=[PersonRole(isPrimaryRole=true, roleEnum=SITE_ADMINISTRATOR, beginDate=null, endDate=null)], relatedPersonUids=[], dateOfBirth=null, email=null, phoneNumber=null)], metaInfo=DataLoadMetaInfo(lastModified=1788270045000, lastStored=-1, etag=null, url=http://localhost:34577/api/school/respect/person?includeRelated=false, consistentThrough=2026-09-01T13:40:45.634699447Z, validationInfoKey=7092960727423664838, varyHeader=Authorization, headers=io.ktor.client.engine.okhttp.OkUtilsKt$fromOkHttp$1@29aa4bc9, permissionsLastModified=null), localState=null, remoteState=null))
2026-09-01 17:40:45.680 [Test worker @coroutine#196] TRACE i.k.c.p.c.ContentNegotiation - Adding Accept=application/json header for http://localhost:34577/api/school/respect/person?since=2026-09-01T13%3A40%3A45.634699447Z&includeRelated=false
2026-09-01 17:40:45.680 [Test worker @coroutine#196] TRACE i.k.c.p.c.ContentNegotiation - Body type class io.ktor.client.utils.EmptyContent is in ignored types. Skipping ContentNegotiation for http://localhost:34577/api/school/respect/person?since=2026-09-01T13%3A40%3A45.634699447Z&includeRelated=false.
2026-09-01 17:40:45.681 [eventLoopGroupProxy-28-1 @call-handler#216] TRACE io.ktor.server.routing.Routing - Trace for [api, school, respect, person]
/, segment:0 -> SUCCESS @ /
  /api, segment:1 -> SUCCESS @ /api
    /api/school, segment:2 -> SUCCESS @ /api/school
      /api/school/respect, segment:3 -> SUCCESS @ /api/school/respect
        /api/school/respect/person, segment:4 -> SUCCESS @ /api/school/respect/person
          /api/school/respect/person [(method:GET)], segment:4 -> SUCCESS @ /api/school/respect/person [(method:GET)]
          /api/school/respect/person [(method:POST)], segment:4 -> FAILURE "Selector didn't match" @ /api/school/respect/person [(method:POST)]
Matched routes:
  "" -> "api" -> "school" -> "respect" -> "person" -> "(method:GET)"
Routing resolve result:
  SUCCESS @ /api/school/respect/person [(method:GET)]
2026-09-01 17:40:45.683 [Test worker @coroutine#196] TRACE io.ktor.client.plugins.SaveBody - Saving body for http://localhost:34577/api/school/respect/person?since=2026-09-01T13%3A40%3A45.634699447Z&includeRelated=false
2026-09-01 17:40:45.683 [Test worker @coroutine#196] TRACE i.k.client.plugins.HttpCallValidator - Validating response for request http://localhost:34577/api/school/respect/person?since=2026-09-01T13%3A40%3A45.634699447Z&includeRelated=false
2026-09-01 17:40:45.683 [Test worker @coroutine#196] TRACE i.k.c.p.DefaultResponseValidation - Skipping default response validation for http://localhost:34577/api/school/respect/person?since=2026-09-01T13%3A40%3A45.634699447Z&includeRelated=false
2026-09-01 17:40:45.684 [Test worker @coroutine#196] TRACE i.k.c.p.c.ContentNegotiation - Response body was converted to class java.util.ArrayList for http://localhost:34577/api/school/respect/person?since=2026-09-01T13%3A40%3A45.634699447Z&includeRelated=false.
Run time: 54.709177ms
]]></system-out>
  <system-err><![CDATA[Sep 01, 2026 5:40:42 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] MapPagingSource$load - MapPagingSource(tag=PersonDataSourceDb/listAsPagingSource(params=GetListParams(common=GetListCommonParams(guid=null, searchQuery=null, since=null, sinceIfPermissionsNotChangedSince=null, includeDeleted=null), filterByClazzUid=null, filterByEnrolmentRole=null, filterByName=null, filterByPersonStatus=null, filterByPersonRole=null, includeRelated=false, inClassOnDay=null))): load Refresh(key=0, loadSize=1000)
Sep 01, 2026 5:40:44 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] DelegatedInvalidationPagingSource$onSrcInvalidated - RPaging/DelegatedInvalidationPagingSource(extra=PersonDataSourceDb/listAsPagingSource(params=GetListParams(common=GetListCommonParams(guid=null, searchQuery=null, since=null, sinceIfPermissionsNotChangedSince=null, includeDeleted=null), filterByClazzUid=null, filterByEnrolmentRole=null, filterByName=null, filterByPersonStatus=null, filterByPersonRole=null, includeRelated=false, inClassOnDay=null))) src invalidated
Sep 01, 2026 5:40:44 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] HttpRequestBuilderExtKt$addCacheValidationHeaders - addCacheValidationHeaders = If-Modified-Since = Tue, 01 Sep 2026 13:40:42 GMT for http://localhost:33223/api/school/respect/person?includeRelated=false
Sep 01, 2026 5:40:44 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] MapPagingSource$load - MapPagingSource(tag=PersonDataSourceDb/listAsPagingSource(params=GetListParams(common=GetListCommonParams(guid=null, searchQuery=null, since=null, sinceIfPermissionsNotChangedSince=null, includeDeleted=null), filterByClazzUid=null, filterByEnrolmentRole=null, filterByName=null, filterByPersonStatus=null, filterByPersonRole=null, includeRelated=false, inClassOnDay=null))): load Refresh(key=0, loadSize=1000)
Sep 01, 2026 5:40:45 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] MapPagingSource$load - MapPagingSource(tag=PersonDataSourceDb/listAsPagingSource(params=GetListParams(common=GetListCommonParams(guid=null, searchQuery=null, since=null, sinceIfPermissionsNotChangedSince=null, includeDeleted=null), filterByClazzUid=null, filterByEnrolmentRole=null, filterByName=null, filterByPersonStatus=null, filterByPersonRole=null, includeRelated=false, inClassOnDay=null))): load Refresh(key=0, loadSize=1000)
Sep 01, 2026 5:40:45 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] DelegatedInvalidationPagingSource$onSrcInvalidated - RPaging/DelegatedInvalidationPagingSource(extra=PersonDataSourceDb/listAsPagingSource(params=GetListParams(common=GetListCommonParams(guid=null, searchQuery=null, since=null, sinceIfPermissionsNotChangedSince=null, includeDeleted=null), filterByClazzUid=null, filterByEnrolmentRole=null, filterByName=null, filterByPersonStatus=null, filterByPersonRole=null, includeRelated=false, inClassOnDay=null))) src invalidated
Sep 01, 2026 5:40:45 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] MapPagingSource$load - MapPagingSource(tag=PersonDataSourceDb/listAsPagingSource(params=GetListParams(common=GetListCommonParams(guid=null, searchQuery=null, since=2026-09-01T13:40:45.634699447Z, sinceIfPermissionsNotChangedSince=null, includeDeleted=null), filterByClazzUid=null, filterByEnrolmentRole=null, filterByName=null, filterByPersonStatus=null, filterByPersonRole=null, includeRelated=false, inClassOnDay=null))): load Refresh(key=0, loadSize=1000)
]]></system-err>
</testsuite>
