Standard Java convention for exception messages is:
- getMessage() → returns the raw detail message
- toString() → returns ClassName: getMessage()
FlowController creates exceptions without implementing getMessage() or calling super(msg) in its constructors. Consequently, getMessage() returns null.
When logging framework uses getMessage() to render the output you will get very limited text representation.
For example:
com.google.api.gax.batching.FlowController$MaxOutstandingRequestBytesReachedException: null
at com.google.cloud.pubsub.v1.Publisher$MessageFlowController.acquire(Publisher.java:1019)
at com.google.cloud.pubsub.v1.Publisher.publish(Publisher.java:297)
Standard Java convention for exception messages is:
FlowController creates exceptions without implementing getMessage() or calling super(msg) in its constructors. Consequently, getMessage() returns null.
When logging framework uses getMessage() to render the output you will get very limited text representation.
For example: