java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.testing.models.Account

Passionate Engineer

I'm getting below error:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.testing.models.Account

with below code

final int expectedId = 1;

Test newTest = create();

int expectedResponseCode = Response.SC_OK;

ArrayList<Account> account = given().when().expect().statusCode(expectedResponseCode)
    .get("accounts/" + newTest.id() + "/users")
    .as(ArrayList.class);
assertThat(account.get(0).getId()).isEqualTo(expectedId);

Is there a reason why I cannot do get(0)?

Mark Peters

The issue's coming from Jackson. When it doesn't have enough information on what class to deserialize to, it uses LinkedHashMap.

Since you're not informing Jackson of the element type of your ArrayList, it doesn't know that you want to deserialize into an ArrayList of Accounts. So it falls back to the default.

Instead, you could probably use as(JsonNode.class), and then deal with the ObjectMapper in a richer manner than rest-assured allows. Something like this:

ObjectMapper mapper = new ObjectMapper();

JsonNode accounts = given().when().expect().statusCode(expectedResponseCode)
    .get("accounts/" + newClub.getOwner().getCustId() + "/clubs")
    .as(JsonNode.class);


//Jackson's use of generics here are completely unsafe, but that's another issue
List<Account> accountList = mapper.convertValue(
    accounts, 
    new TypeReference<List<Account>>(){}
);

assertThat(accountList.get(0).getId()).isEqualTo(expectedId);

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast

From Dev

SDN4: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to [EntityNode]

From Dev

Spring websocket @messagemapping de-serialization issue java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast

From Dev

java.util.LinkedHashMap cannot be cast to DataList

From Dev

java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList

From Dev

java.lang.ClassCastException: java.util.HashMap$EntrySet cannot be cast to java.util.Map$Entry

From Dev

How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer

From Dev

java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

From Dev

java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.lang.Integer in DAO

From Dev

How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer

From Dev

java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.lang.Integer

From Dev

parse.com java.lang.ClassCastException: java.util.HashMap cannot be cast to org.json.JSONObject

From Dev

LinkedHashMap$Entry cannot be cast to java.util.LinkedHashMap

From Dev

java.util.LinkedHashMap cannot be cast to java.lang.String (RestTemplate)

From Dev

java.lang.ClassCastException: models.Task cannot be cast to models.Task on Play Framework

From Dev

Class cast Exception: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long

From Dev

How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to double[]

From Dev

java.lang.ClassCastException: java.util.HashSet cannot be cast to Custom Class

From Dev

java.lang.ClassCastException: java.util.Collections$UnmodifiableMap cannot be cast to Param

From Dev

What causes the ClassCastException: java.util.TreeSet cannot be cast to java.lang.Comparable?

From Dev

java.lang.ClassCastException: java.util.Collections$UnmodifiableMap cannot be cast to Param

From Dev

java.lang.ClassCastException: com.MyComp.model.Image cannot be cast to java.lang.Comparable

From Dev

java.lang.ClassCastException: java.lang.String cannot be cast to com.parse.ParseUser

From Dev

java.lang.ClassCastException: com.model.Image cannot be cast to java.lang.String

From Dev

java.lang.ClassCastException: java.lang.String cannot be cast to com.parse.ParseUser

From Dev

Android HashMap java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.Map$Entry

From Dev

java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String when using Univocity

From Dev

java.lang.ClassCastException: cannot be cast to java.lang.Object

From Dev

UISelectMany in ui:repeat causes java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.List

Related Related

  1. 1

    java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast

  2. 2

    SDN4: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to [EntityNode]

  3. 3

    Spring websocket @messagemapping de-serialization issue java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast

  4. 4

    java.util.LinkedHashMap cannot be cast to DataList

  5. 5

    java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList

  6. 6

    java.lang.ClassCastException: java.util.HashMap$EntrySet cannot be cast to java.util.Map$Entry

  7. 7

    How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer

  8. 8

    java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

  9. 9

    java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.lang.Integer in DAO

  10. 10

    How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer

  11. 11

    java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.lang.Integer

  12. 12

    parse.com java.lang.ClassCastException: java.util.HashMap cannot be cast to org.json.JSONObject

  13. 13

    LinkedHashMap$Entry cannot be cast to java.util.LinkedHashMap

  14. 14

    java.util.LinkedHashMap cannot be cast to java.lang.String (RestTemplate)

  15. 15

    java.lang.ClassCastException: models.Task cannot be cast to models.Task on Play Framework

  16. 16

    Class cast Exception: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long

  17. 17

    How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to double[]

  18. 18

    java.lang.ClassCastException: java.util.HashSet cannot be cast to Custom Class

  19. 19

    java.lang.ClassCastException: java.util.Collections$UnmodifiableMap cannot be cast to Param

  20. 20

    What causes the ClassCastException: java.util.TreeSet cannot be cast to java.lang.Comparable?

  21. 21

    java.lang.ClassCastException: java.util.Collections$UnmodifiableMap cannot be cast to Param

  22. 22

    java.lang.ClassCastException: com.MyComp.model.Image cannot be cast to java.lang.Comparable

  23. 23

    java.lang.ClassCastException: java.lang.String cannot be cast to com.parse.ParseUser

  24. 24

    java.lang.ClassCastException: com.model.Image cannot be cast to java.lang.String

  25. 25

    java.lang.ClassCastException: java.lang.String cannot be cast to com.parse.ParseUser

  26. 26

    Android HashMap java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.Map$Entry

  27. 27

    java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.String when using Univocity

  28. 28

    java.lang.ClassCastException: cannot be cast to java.lang.Object

  29. 29

    UISelectMany in ui:repeat causes java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.List

HotTag

Archive