My cloud function:
public ArrayList<ChatMessage> getAllMessages() {
String userId = InvocationContext.getUserId();
BackendlessDataQuery query = new BackendlessDataQuery();
query.setWhereClause("from = '" + userId + "' OR to = '" + userId + "'");
query.setPageSize(100);
BackendlessCollection<ChatMessage> collection = Backendless.Data.of(ChatMessage.class).find(query);
ArrayList<ChatMessage> out = new ArrayList<ChatMessage>(collection.getTotalObjects());
out.addAll(collection.getCurrentPage());
for (int i = 100; i <= collection.getTotalObjects(); i += 100) {
collection = collection.nextPage();
out.addAll(collection.getCurrentPage());
}
return out;
}
Generated SDK function:
public void getAllMessagesAsync(AsyncCallback<java.util.ArrayList<com.jns.backend.model.ChatMessage>> callback)
{
Object[] args = new Object[]{};
Backendless.CustomService.invoke( SERVICE_NAME, SERVICE_VERSION_NAME, "getAllMessages", args, java.util.ArrayList.class, callback);
}
=> Results in ClassCastException!
This change makes the function work:
public void getAllMessagesAsync(AsyncCallback<com.jns.backend.model.ChatMessage[]> callback)
{
Object[] args = new Object[]{};
Backendless.CustomService.invoke( SERVICE_NAME, SERVICE_VERSION_NAME, "getAllMessages", args, com.jns.backend.model.ChatMessage[].class, callback);
}