Fixed
Status Update
Comments
da...@google.com <da...@google.com> #2
Thanks for reporting this - Looks like Room is trying to give you a warning, possibly POJO & query result column mismatch, but it fails format the message. I guess safeFormat() is not very safe after all. >.>
Could you please provide your full method signature for the failing query method case? If the return type is a data class it would be nice if you could also provide it.
Could you please provide your full method signature for the failing query method case? If the return type is a data class it would be nice if you could also provide it.
an...@gmail.com <an...@gmail.com> #3
What is the alarm sounds that every seems to know about but me it's like I'm being tracked everywhere I go
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit c08fa5ad19b227e73cfcf9fd8e0994ec32273bce
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Wed Nov 14 13:38:50 2018
Make RLog's safeFormat() truly safe by catching all exceptions.
Bug: 119520136
Test: RLogTest
Change-Id: I81c8a4ed9e03b64d6762a9976d2dfcd12ea8327b
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
A room/compiler/src/test/kotlin/androidx/room/log/RLogTest.kt
https://android-review.googlesource.com/826949
https://goto.google.com/android-sha1/c08fa5ad19b227e73cfcf9fd8e0994ec32273bce
Branch: androidx-master-dev
commit c08fa5ad19b227e73cfcf9fd8e0994ec32273bce
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Wed Nov 14 13:38:50 2018
Make RLog's safeFormat() truly safe by catching all exceptions.
Bug: 119520136
Test: RLogTest
Change-Id: I81c8a4ed9e03b64d6762a9976d2dfcd12ea8327b
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
A room/compiler/src/test/kotlin/androidx/room/log/RLogTest.kt
da...@google.com <da...@google.com> #5
A fix for this will be available in Room 2.1.0-alpha03
st...@gmail.com <st...@gmail.com> #6
Great news -- thank you for fast turnaround!
Description
Room integrated and working well, adding new date-related queries; these two are fine:
@Query("SELECT DISTINCT strftime('%Y-%m-%d', dateIso8601)...
@Query("SELECT DISTINCT strftime('%m-%d', dateIso8601)...
but attempting to use just the day field, fails to build:
@Query("SELECT DISTINCT strftime('%d', dateIso8601)...
Build error looks like
e: [kapt] An exception occurred: java.util.IllegalFormatConversionException: d != [Ljava.lang.Object;
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at androidx.room.log.RLog.safeFormat(RLog.kt:40)
at androidx.room.log.RLog.w(RLog.kt:68)
at androidx.room.solver.query.result.PojoRowAdapter.<init>(PojoRowAdapter.kt:74)
at androidx.room.solver.TypeAdapterStore$findRowAdapter$1.invoke(TypeAdapterStore.kt:345)
at androidx.room.solver.TypeAdapterStore$findRowAdapter$1.invoke(TypeAdapterStore.kt:82)
at androidx.room.processor.Context.collectLogs(Context.kt:86)
at androidx.room.solver.TypeAdapterStore.findRowAdapter(TypeAdapterStore.kt:338)
at androidx.room.solver.TypeAdapterStore.findQueryResultAdapter(TypeAdapterStore.kt:305)
at androidx.room.solver.binderprovider.RxCallableQueryResultBinderProvider.provide(RxCallableQueryResultBinderProvider.kt:39)
at androidx.room.solver.TypeAdapterStore.findQueryResultBinder(TypeAdapterStore.kt:272)
at androidx.room.processor.QueryMethodProcessor.process(QueryMethodProcessor.kt:107)
at androidx.room.processor.DaoProcessor.process(DaoProcessor.kt:95)
at androidx.room.processor.DatabaseProcessor.doProcess(DatabaseProcessor.kt:93)
at androidx.room.processor.DatabaseProcessor.process(DatabaseProcessor.kt:53)
at androidx.room.RoomProcessor$DatabaseProcessingStep.process(RoomProcessor.kt:57)
at com.google.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:318)
at com.google.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:171)
at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:99)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:55)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:27)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:218)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:183)
at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:100)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:95)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:105)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:82)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:375)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:67)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:107)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:366)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:120)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:161)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:57)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:96)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:52)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:93)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:442)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:102)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:1029)
at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:102)
at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:1071)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:1028)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:441)
at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)