googleapis / google-cloud-datastore

Low-level, Protobuf-based Java and Python client libraries for Cloud Datastore. Check out google-cloud-java and google-cloud-python first!
https://cloud.google.com/datastore
Apache License 2.0
215 stars 133 forks source link

illegal reflective access operation #235

Closed MorinRemi closed 5 years ago

MorinRemi commented 5 years ago

com.google.datastore.v1.client.RemoteRpc does an Illegal reflective access when running on Java 11 (and probably any above java 1.8) resulting in error being sent right to system error.

The offensive line is https://github.com/GoogleCloudPlatform/google-cloud-datastore/blob/a23940d0634d7f537faf01ad9e60598046bcb40a/java/datastore/src/main/java/com/google/datastore/v1/client/RemoteRpc.java#L72

You can read more on the JVM modern behaviour here: http://openjdk.java.net/jeps/261#Relaxed-strong-encapsulation

Full error: WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.google.datastore.v1.client.RemoteRpc$GzipFixingInputStream (file:/Users/gen06958/.gradle/caches/modules-2/files-2.1/com.google.cloud.datastore/datastore-v1-proto-client/1.6.0/8b2516336fdf191d86d9979588b23cd502aa8f73/datastore-v1-proto-client-1.6.0.jar) to field java.io.FilterInputStream.in WARNING: Please consider reporting this to the maintainers of com.google.datastore.v1.client.RemoteRpc$GzipFixingInputStream WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release

eddavisson commented 5 years ago

I posted an update to https://github.com/googleapis/google-http-java-client/issues/367 which would remove the need for this hack entirely.

elharo commented 5 years ago

We can fix this but we need a release of google-http-java-client first.

elharo commented 5 years ago

http-java-client released, proceeding

bhautiksutariya commented 4 years ago

How to fix this? I am using below dependency for datastore org.springframework.cloud:spring-cloud-gcp-starter-data-datastore:1.1.2.RELEASE

elharo commented 4 years ago

Make sure you're using the latest version of the datastore and http clients. libraries-bom 5.6.0 should give you this.