Describe the bug
When a customItemSerializer is registered on CosmosClientBuilder, queries using ORDER BY fail with a NullPointerException. The issue is that the custom serializer is invoked during internal deserialization of OrderByRowResult, not just for the final application-level object.
Version: com.azure:azure-cosmos:4.70.0
Java: 21
Steps to reproduce:
- Register a custom CosmosItemSerializer on CosmosClientBuilder
- Execute a query: SELECT * FROM c ORDER BY c.id
- The query fails during deserialization
Stack trace:
java.lang.NullPointerException: Cannot invoke Object.getClass() because object is null
at com.azure.cosmos.implementation.query.orderbyquery.OrderByRowResult.getPayload(OrderByRowResult.java:43)
at com.azure.cosmos.implementation.query.OrderByDocumentQueryExecutionContext.lambda(OrderByDocumentQueryExecutionContext.java:695)
Expected: The customItemSerializer should only be called for the final application-level object, not for internal Cosmos SDK structures like OrderByRowResult or Document.
Describe the bug
When a customItemSerializer is registered on CosmosClientBuilder, queries using ORDER BY fail with a NullPointerException. The issue is that the custom serializer is invoked during internal deserialization of OrderByRowResult, not just for the final application-level object.
Version: com.azure:azure-cosmos:4.70.0
Java: 21
Steps to reproduce:
Stack trace:
java.lang.NullPointerException: Cannot invoke Object.getClass() because object is null
at com.azure.cosmos.implementation.query.orderbyquery.OrderByRowResult.getPayload(OrderByRowResult.java:43)
at com.azure.cosmos.implementation.query.OrderByDocumentQueryExecutionContext.lambda(OrderByDocumentQueryExecutionContext.java:695)
Expected: The customItemSerializer should only be called for the final application-level object, not for internal Cosmos SDK structures like OrderByRowResult or Document.