0

I am getting the following exception while testing an API. using java specifications predicates join column in jpa

java.lang.StackOverflowError: null
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125) ~[na:1.8.0_222]
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:136) ~[na:1.8.0_222]
    at java.util.SimpleTimeZone.toString(SimpleTimeZone.java:947) ~[na:1.8.0_222]
    at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
    at java.util.Calendar.toString(Calendar.java:3345) ~[na:1.8.0_222]
    at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
    at com.afcs.entity.TblWayBill.toString(TblWayBill.java:51) ~[classes/:na]
    at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
    at com.afcs.entity.TblTrip.toString(TblTrip.java:33) ~[classes/:na]
    at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) ~[na:1.8.0_222]
    at org.hibernate.collection.internal.PersistentBag.toString(PersistentBag.java:510) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
    at com.afcs.entity.TblWayBill.toString(TblWayBill.java:51) ~[classes/:na]
    at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
    at com.afcs.entity.TblTrip.toString(TblTrip.java:33) ~[classes/:na]
    at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_222]
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_222]
    at java.util.AbstractCollection.toString(AbstractCollection.java:462) ~[na:1.8.0_222]
Pshemo
  • 122,468
  • 25
  • 185
  • 269
Somil Jain
  • 11
  • 2

1 Answers1

0

Even looking at your stack trace I can tell that you have a recursive toString() function implementation. Your object A.toString() calls B.toString(), which in turn calls A.toString() again and again. Usually, it happens when you have generated toString that calls another entity and that entity calls another entity. Make sure to exclude these attributes from your toString() method implementation and it will work as you expected.

Alan Sereb
  • 2,358
  • 2
  • 17
  • 31