Steps to reproduce:
I am trying to run a query exactly as in the README, for testing:
String flux = "from(bucket:\"log\") |> range(start: 0)";
QueryApi queryApi = influxDBClient.getQueryApi();
List<FluxTable> tables = queryApi.query(flux);
for (FluxTable fluxTable : tables) {
List<FluxRecord> records = fluxTable.getRecords();
for (FluxRecord fluxRecord : records) {
System.out.println(fluxRecord.getTime() + ": " + fluxRecord.getValueByKey("_value"));
}
}
Note that we also have a dependency on Gson like with #201, but have made sure to set it to 2.8.5 (verified with mvn dependency:tree) and the exception still occurs.
The stack trace differs a bit from #201, either way.
Expected behavior:
Expected something to be printed other than an exception.
Actual behavior:
I received the following stack trace:
java.lang.IllegalArgumentException: Unable to create @Body converter for class com.influxdb.client.domain.Query (parameter #6)
for method QueryService.postQueryResponseBody
at retrofit2.Utils.methodError(Utils.java:54)
at retrofit2.Utils.parameterError(Utils.java:60)
at retrofit2.RequestFactory$Builder.parseParameterAnnotation(RequestFactory.java:781)
at retrofit2.RequestFactory$Builder.parseParameter(RequestFactory.java:325)
at retrofit2.RequestFactory$Builder.build(RequestFactory.java:206)
at retrofit2.RequestFactory.parseAnnotations(RequestFactory.java:67)
at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:26)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:202)
at retrofit2.Retrofit$1.invoke(Retrofit.java:160)
at jdk.proxy2/jdk.proxy2.$Proxy11.postQueryResponseBody(Unknown Source)
at com.influxdb.client.internal.QueryApiImpl.query(QueryApiImpl.java:796)
at com.influxdb.client.internal.QueryApiImpl.query(QueryApiImpl.java:105)
at com.influxdb.client.internal.QueryApiImpl.query(QueryApiImpl.java:83)
at com.influxdb.client.internal.QueryApiImpl.query(QueryApiImpl.java:73)
at altm.database.TimeSeriesDatabaseConnector.getLogEntries(TimeSeriesDatabaseConnector.java:116)
at altm.logging.LogBuffer.getLogEntries(LogBuffer.java:21)
at altm.logging.LogManager.getLogEntries(LogManager.java:58)
at altm.api.rest.ExportLogEndpoint.fetchData(ExportLogEndpoint.java:33)
at altm.api.rest.ExportLogEndpoint.fetchData(ExportLogEndpoint.java:14)
at altm.api.rest.TimeIntervalEndpoint.handle(TimeIntervalEndpoint.java:45)
at altm.api.rest.RestApi.handle(RestApi.java:31)
at altm.api.rest.RestApiServer$RestHandler.handle(RestApiServer.java:101)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:93)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:96)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:692)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:93)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:664)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.RuntimeException: Unable to invoke no-args constructor for class com.influxdb.client.domain.File$FileBodyAdapter. Registering an InstanceCreator with Gson for this type may fix this problem.
at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228)
at com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory.getTypeAdapter(JsonAdapterAnnotationTypeAdapterFactory.java:55)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:113)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)
at com.google.gson.Gson.getDelegateAdapter(Gson.java:541)
at io.gsonfire.gson.WrapTypeAdapterFactory.create(WrapTypeAdapterFactory.java:26)
at com.google.gson.Gson.getAdapter(Gson.java:458)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)
at com.google.gson.Gson.getDelegateAdapter(Gson.java:541)
at io.gsonfire.gson.WrapTypeAdapterFactory.create(WrapTypeAdapterFactory.java:26)
at com.google.gson.Gson.getAdapter(Gson.java:458)
at retrofit2.converter.gson.GsonConverterFactory.requestBodyConverter(GsonConverterFactory.java:74)
at retrofit2.Retrofit.nextRequestBodyConverter(Retrofit.java:315)
at retrofit2.Retrofit.requestBodyConverter(Retrofit.java:293)
at retrofit2.RequestFactory$Builder.parseParameterAnnotation(RequestFactory.java:778)
... 28 more
Caused by: java.lang.UnsupportedOperationException: Cannot allocate class com.influxdb.client.domain.File$FileBodyAdapter
at com.google.gson.internal.UnsafeAllocator$4.newInstance(UnsafeAllocator.java:104)
at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:225)
... 45 more
Specifications:
- Client Version: 3.1.0
- InfluxDB Version: 2.0
- JDK Version: 16
- Platform: Docker (Alpine Linux)
Steps to reproduce:
I am trying to run a query exactly as in the README, for testing:
Note that we also have a dependency on Gson like with #201, but have made sure to set it to 2.8.5 (verified with
mvn dependency:tree) and the exception still occurs.The stack trace differs a bit from #201, either way.
Expected behavior:
Expected something to be printed other than an exception.
Actual behavior:
I received the following stack trace:
Specifications: