Fixed
Status Update
Comments
yb...@google.com <yb...@google.com> #2
since these are in public API (:/) we need to do this in 1.2
yb...@google.com <yb...@google.com> #3
since it is already marked as deprecated, we can probably do it by now.
ra...@gmail.com <ra...@gmail.com> #4
Opening diff shortly
ra...@gmail.com <ra...@gmail.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request fromhttps://github.com/androidx/androidx/pull/61 .
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
https://android-review.googlesource.com/1396827
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request from
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
ra...@gmail.com <ra...@gmail.com> #6
..
ra...@gmail.com <ra...@gmail.com> #7
...
Description
Version used: either 1.0.0 or 1.1.0-alpha2
Devices/Android versions reproduced on: n/a
The Room compiler does not support two @Dao classes with the same simple name and same package. This would occur if you have two static @Dao classes:
@Entity
public class GoodThingy {
@PrimaryKey int id;
public String something;
@Dao
public static abstract class Store {
@Query("SELECT * FROM GoodThingy")
public abstract List<GoodThingy> all();
}
}
@Entity
public class BadThingy {
@PrimaryKey int id;
public String something;
@Dao
public static abstract class Store {
@Query("SELECT * FROM BadThingy")
abstract List<BadThingy> all();
}
}
The code generator tries generating Store_Impl.java for each of those, and that fails with:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> javax.annotation.processing.FilerException: Attempt to recreate a file for type com.commonsware.abstractroombug.Store_Impl
The workaround is to name each static @Dao something different (e.g., GoodStore, BadStore).
IMHO, ideally either:
- Using the same name is supported, by generating distinct Java classes for each (e.g., GoodThingy_Store_Impl.java, BadThingy_Store_Impl.java), or
- This limitation is documented, or
- The error message be more specific, indicating that this sort of thing is the source of the trouble (as "Attempt to recreate a file" may not be intuitively obvious to developers)
The code shown above is from the attached project that reproduces the problem. The project right now is set for 1.1.0-alpha2, but the same problem exists with 1.0.0.