Fixed
Status Update
Comments
da...@google.com <da...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit b2dde00cacbbb6e82822c9d02da233c0589a9609
Author: Elif Bilgin <elifbilgin@google.com>
Date: Wed Nov 24 16:36:19 2021
Converting room-migration from Java to Kotlin.
Test: All tests in the room-migration directory.
Bug: 206858622
Relnote: Converting room-migration from Java to Kotlin.
Change-Id: I2724b688fc6dcd3c632dfe167364924edc5248b9
A room/room-migration/api/restricted_current.ignore
M room/room-compiler/src/main/kotlin/androidx/room/vo/Entity.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/SchemaEqualityUtil.kt
M room/room-compiler/src/test/kotlin/androidx/room/util/SchemaDifferTest.kt
M room/room-migration/build.gradle
M room/room-migration/src/test/java/androidx/room/migration/bundle/IndexBundleTest.kt
M room/room-migration/api/restricted_current.txt
M room/room-migration/src/main/java/androidx/room/migration/bundle/DatabaseViewBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/EntityBundleTest.kt
M room/room-compiler/src/main/kotlin/androidx/room/vo/DatabaseView.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/SchemaEquality.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/BundleUtil.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/ForeignKeyBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/IndexBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/PrimaryKeyBundleTest.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/PrimaryKeyBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/FieldBundleTest.kt
M room/room-compiler/src/main/kotlin/androidx/room/vo/FtsEntity.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/EntityBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/DatabaseViewBundleTest.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/FtsOptionsBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/SchemaBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/FieldBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.kt
M room/room-compiler/src/main/kotlin/androidx/room/vo/Index.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/ForeignKeyBundleTest.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/FtsEntityBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.kt
https://android-review.googlesource.com/1902291
Branch: androidx-main
commit b2dde00cacbbb6e82822c9d02da233c0589a9609
Author: Elif Bilgin <elifbilgin@google.com>
Date: Wed Nov 24 16:36:19 2021
Converting room-migration from Java to Kotlin.
Test: All tests in the room-migration directory.
Bug: 206858622
Relnote: Converting room-migration from Java to Kotlin.
Change-Id: I2724b688fc6dcd3c632dfe167364924edc5248b9
A room/room-migration/api/restricted_current.ignore
M room/room-compiler/src/main/kotlin/androidx/room/vo/Entity.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/SchemaEqualityUtil.kt
M room/room-compiler/src/test/kotlin/androidx/room/util/SchemaDifferTest.kt
M room/room-migration/build.gradle
M room/room-migration/src/test/java/androidx/room/migration/bundle/IndexBundleTest.kt
M room/room-migration/api/restricted_current.txt
M room/room-migration/src/main/java/androidx/room/migration/bundle/DatabaseViewBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/EntityBundleTest.kt
M room/room-compiler/src/main/kotlin/androidx/room/vo/DatabaseView.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/SchemaEquality.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/BundleUtil.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/ForeignKeyBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/IndexBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/PrimaryKeyBundleTest.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/PrimaryKeyBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/FieldBundleTest.kt
M room/room-compiler/src/main/kotlin/androidx/room/vo/FtsEntity.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/EntityBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/DatabaseViewBundleTest.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/FtsOptionsBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/SchemaBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/FieldBundle.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.kt
M room/room-compiler/src/main/kotlin/androidx/room/vo/Index.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/ForeignKeyBundleTest.kt
M room/room-migration/src/main/java/androidx/room/migration/bundle/FtsEntityBundle.kt
M room/room-migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.kt
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 2486fa234325be141fd48460835e42f630295a63
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Jul 25 13:33:47 2019
Ignore binding errors for ignored columns via @Entity
When processing POJO fields don't log a processor error due to missing
bindings for a field with a column name that is ignored via the
ignoredColumns property of @Entity.
Bug: 138238182
Test: PojoProcessorTest & testapp
Change-Id: If7e283310e236d67bea62fd47d45a93015a29fc8
M room/compiler/src/main/kotlin/androidx/room/processor/FieldProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
M room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/LibraryItemDao.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/LibraryPojo.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/RoomLibraryPojo.java
https://android-review.googlesource.com/1091024
https://goto.google.com/android-sha1/2486fa234325be141fd48460835e42f630295a63
Branch: androidx-master-dev
commit 2486fa234325be141fd48460835e42f630295a63
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Jul 25 13:33:47 2019
Ignore binding errors for ignored columns via @Entity
When processing POJO fields don't log a processor error due to missing
bindings for a field with a column name that is ignored via the
ignoredColumns property of @Entity.
Bug: 138238182
Test: PojoProcessorTest & testapp
Change-Id: If7e283310e236d67bea62fd47d45a93015a29fc8
M room/compiler/src/main/kotlin/androidx/room/processor/FieldProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/PojoProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
M room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/LibraryItemDao.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/LibraryPojo.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/RoomLibraryPojo.java
Description
Version used: 2.2.0-alpha01
Devices/Android versions reproduced on: Emulator x86_64 API level 27
I have been provided JAR with a POJO from a third party. The POJO is used extensively by the library code and it has package name such as "com.library.LibraryItem". I want to use this POJO with Room as an entity so I can save instances to a local DB.
I cannot annotate their library POJO, it is a JAR supplied to us that may change on a semi-regular basis.
I tried creating a subclass and using ignoredColumns but I still get errors because Room complains it cannot convert some of the fields I said to ignored. I created a TypeConverter to make the errors from Room go away but there are still more errors referring to the columns I am ignoring.
Here is my subclass:
/**
* I really want to save instances of LibraryItem in my database!
*/
@Entity(tableName = "items", ignoredColumns = "obj")
public class RoomItem extends LibraryItem {
// I have to put these fields here even though they aren't used to store any
// data just to make Room happy!
@PrimaryKey
@NonNull
private String id;
private String name;
private Long price;
public RoomItem(String id, String name, Long price) {
setId(id);
setName(name);
setPrice(price);
}
}
See the attached sample app that demonstrates the trouble. The output currently is:
> Task :app:compileDebugJavaWithJavac FAILED
/home/jacob/work/source/jwapp/app/src/main/java/com/library/LibraryItem.java:13: error: Cannot find getter for field.
private final JSONObject obj = new JSONObject();
^
/home/jacob/work/source/jwapp/app/src/main/java/com/jwapp/ItemDao.java:14: warning: com.jwapp.RoomItem has some fields [obj] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: id, name, price. Fields in com.jwapp.RoomItem: id, name, price, obj.
List<RoomItem> getAll();
^
/home/jacob/work/source/jwapp/app/src/main/java/com/jwapp/ItemDao.java:17: warning: com.jwapp.RoomItem has some fields [obj] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: id, name, price. Fields in com.jwapp.RoomItem: id, name, price, obj.
List<RoomItem> loadAllByIds(int[] ids);
^
/home/jacob/work/source/jwapp/app/src/main/java/com/jwapp/ItemDao.java:20: warning: com.jwapp.RoomItem has some fields [obj] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: id, name, price. Fields in com.jwapp.RoomItem: id, name, price, obj.
RoomItem findByName(String name);
^
1 error
3 warnings