Hi everyone,
I’m running OR-Tools (Java) inside a Spring Boot backend and started seeing a runtime failure after upgrading Firebase Admin (to use FCM HTTP v1). OR-Tools was working fine before introducing/upgrading Firebase Admin.
Java: 11
Spring Boot: 2.3.3.RELEASE
OR-Tools: com.google.ortools:ortools-java:9.14.6206
com.google.ortools:ortools-darwin-aarch64:9.14.6206 (runtime)
Firebase Admin: com.google.firebase:firebase-admin:9.3.0
OS: macOS aarch64 (Apple Silicon)
When calling an endpoint that triggers OR-Tools (routing/optimization), the server returns HTTP 500.
The error message is:
com/google/protobuf/Internal$IntListAdapter$IntConverter
This looks like a NoClassDefFoundError / missing Protobuf internal type at runtime.
What changedThe issue started only after upgrading/adding Firebase Admin (for FCM v1).
I’m not calling Firebase code in the failing path — the failure occurs when OR-Tools is executed, but the dependency graph/classpath changed due to Firebase (gRPC/Protobuf stack).
I inspected my Spring Boot fat jar (target/u2d-0.0.1-SNAPSHOT.jar):
It contains:
BOOT-INF/lib/protobuf-java-4.27.1.jar
BOOT-INF/lib/protobuf-java-util-4.27.1.jar
BOOT-INF/lib/grpc-protobuf-1.62.2.jar
BOOT-INF/lib/grpc-protobuf-lite-1.62.2.jar ← unexpected
So grpc-protobuf and grpc-protobuf-lite are both present in the runtime classpath.
Also, inside protobuf-java-4.27.1.jar, the class below does not exist:
com/google/protobuf/Internal$IntListAdapter$IntConverter
(Confirmed by extracting the jar and grepping for Internal$IntListAdapter.)
QuestionsHas anyone seen OR-Tools Java fail with Internal$IntListAdapter$IntConverter when another stack introduces grpc-protobuf-lite / protobuf-javalite?
Does OR-Tools require “full” Protobuf runtime (protobuf-java) and conflict with the “lite” runtime pulled by gRPC/Firebase?
Is there a recommended Protobuf / gRPC version set for OR-Tools 9.14.6206 in Java to avoid these conflicts?
Any guidance on how to exclude/avoid grpc-protobuf-lite (or align dependencies) when OR-Tools is used alongside Firebase Admin / Google Cloud libraries?
Happy to share mvn dependency:tree output for protobuf/grpc if helpful.
Thanks!