Skip to content

Clarify compatibility with Protobuf-Java 4.26.x+ #1965

@deathy

Description

@deathy

I guess this would be a continuation of #1690

Some fixes/removals of GeneratedMessageV3 were done there in #1692

However it's not clear if 4.26.x is supported/tested.

I hit a runtime error during classloading when running on 4.26.1.

Partial relevant stack trace:

Caused by: java.lang.NoClassDefFoundError: com/google/protobuf/GeneratedMessageV3
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
        at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107)
        at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        at com.google.cloud.firestore.v1.stub.GrpcFirestoreStub.<clinit>(GrpcFirestoreStub.java:80)
        at com.google.cloud.firestore.spi.v1.GrpcFirestoreRpc.<init>(GrpcFirestoreRpc.java:166)
        at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreRpcFactory.create(FirestoreOptions.java:97)
        at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreRpcFactory.create(FirestoreOptions.java:89)
        at com.google.cloud.ServiceOptions.getRpc(ServiceOptions.java:602)
        at com.google.cloud.firestore.FirestoreOptions.getFirestoreRpc(FirestoreOptions.java:443)
        at com.google.cloud.firestore.FirestoreImpl.<init>(FirestoreImpl.java:82)
        at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreFactory.create(FirestoreOptions.java:80)
        at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreFactory.create(FirestoreOptions.java:73)
        at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:582)

GrpcFirestoreStub.java:80 has:
.setRequestMarshaller(ProtoUtils.marshaller(GetDocumentRequest.getDefaultInstance()))

Error happened when it tried to load class GetDocumentRequest which extends com.google.protobuf.GeneratedMessageV3

That file seems to be generated by protobufs compiler and hasn't changed during #1690

More background: the newer protobuf-java version came in transitively via mysql-connector-j which since version 9.x depends on protobuf-java 4.26.1. I excluded it as workaround and everything works, just would like to have a plan for when other dependencies might upgrade to newer protobuf version.

Metadata

Metadata

Labels

api: firestoreIssues related to the googleapis/java-firestore API.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions