Fixed
Status Update
Comments
st...@gmail.com <st...@gmail.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
https://android-review.googlesource.com/1123258
https://goto.google.com/android-sha1/b90079595f33f58fece04026a97faa0d243acdb1
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
il...@google.com <il...@google.com> #3
st...@gmail.com <st...@gmail.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically ( b/140759491 ).
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
https://android-review.googlesource.com/1288456
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically (
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
jb...@google.com <jb...@google.com>
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit c2f42d17627d19ad4de6121a098a0e8f463aeff4
Author: Clara Fok <clarafok@google.com>
Date: Tue Sep 17 20:38:29 2024
Improve unknown NavType exception message
RouteSerializer.computeNavType throws an IllegalArgumentExcpetion when it fails to map a route argument to a NavType.
To provide an exception with more specific details, the two direct callers of `RouteSerializer.computeNavType` will now catch the exception and throw a different IllegalArgumentExcpetion with a message that contains:
1. argument name
2. arugment fqn
3. route fqn
Test: ./gradlew navigation:navigation-common:cc
Test: ./gradlew navigation:navigation-compose:cC
Bug: 346264232
Relnote: "When Navigation fails to map a route's argument to a NavType, the new error message will contain the argument name, argument fully qualified name, and the route's fully qualified name."
Change-Id: Id84161f47630fe76d85af01bb06c7f3a13d372bb
M navigation/navigation-common/src/androidTest/java/androidx/navigation/NavDestinationBuilderTest.kt
M navigation/navigation-common/src/main/java/androidx/navigation/serialization/RouteSerializer.kt
M navigation/navigation-common/src/test/java/androidx/navigation/serialization/NavArgumentGeneratorTest.kt
M navigation/navigation-compose/src/androidTest/java/androidx/navigation/compose/NavGraphBuilderTest.kt
https://android-review.googlesource.com/3266718
Branch: androidx-main
commit c2f42d17627d19ad4de6121a098a0e8f463aeff4
Author: Clara Fok <clarafok@google.com>
Date: Tue Sep 17 20:38:29 2024
Improve unknown NavType exception message
RouteSerializer.computeNavType throws an IllegalArgumentExcpetion when it fails to map a route argument to a NavType.
To provide an exception with more specific details, the two direct callers of `RouteSerializer.computeNavType` will now catch the exception and throw a different IllegalArgumentExcpetion with a message that contains:
1. argument name
2. arugment fqn
3. route fqn
Test: ./gradlew navigation:navigation-common:cc
Test: ./gradlew navigation:navigation-compose:cC
Bug: 346264232
Relnote: "When Navigation fails to map a route's argument to a NavType, the new error message will contain the argument name, argument fully qualified name, and the route's fully qualified name."
Change-Id: Id84161f47630fe76d85af01bb06c7f3a13d372bb
M navigation/navigation-common/src/androidTest/java/androidx/navigation/NavDestinationBuilderTest.kt
M navigation/navigation-common/src/main/java/androidx/navigation/serialization/RouteSerializer.kt
M navigation/navigation-common/src/test/java/androidx/navigation/serialization/NavArgumentGeneratorTest.kt
M navigation/navigation-compose/src/androidTest/java/androidx/navigation/compose/NavGraphBuilderTest.kt
cl...@google.com <cl...@google.com> #6
Fixed internally, available in navigation 2.8.2
.
pr...@google.com <pr...@google.com> #7
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.annotation:annotation-wasm-js:1.9.0-rc01
androidx.annotation:annotation-watchosdevicearm64:1.9.0-rc01
androidx.navigation:navigation-common:2.8.2
androidx.navigation:navigation-compose:2.8.2
na...@google.com <na...@google.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.navigation:navigation-common:2.9.0-alpha01
androidx.navigation:navigation-compose:2.9.0-alpha01
Description
Component used: Navigation
Version used: 2.8.0-beta02
Devices/Android versions reproduced on: Any
After migrating to use the new APIs, the last step for me was to go ahead and implement all the right
typeMap: Map<KType, @JvmSuppressWildcards NavType<*>>
to pass into my destinations. The stacktrace for those looked something like this:But the problem is that until the last point where it does lead me to the right place (at
com.hedvig.android.app.navigation.HedvigNavHostKt.HedvigNavHost$lambda$56$lambda$55(HedvigNavHost.kt:99)
) from that point and up, all the references to my own code are to lines that do not match my real project. For exampleHomeGraph.kt:82
points to line "82" but the entire file is 71 lines.I am not sure where this mismatch is happening, but it's making fixing the type maps a very slow job as I need to now go and manually check every single destination and manually deduce if it needs a type-map or not.