title: gson.toJson() throws StackOverflowError
body: <p>I would like to generate a JSON String from my object:</p>
  
  <pre><code>Gson gson = new Gson();
  String json = gson.toJson(item);
  </code></pre>
  
  <p>Everytime I try to do this, I get this error:</p>
  
  <pre><code>14:46:40,236 ERROR [[BomItemToJSON]] Servlet.service() for servlet BomItemToJSON threw exception
  java.lang.StackOverflowError
      at com.google.gson.stream.JsonWriter.string(JsonWriter.java:473)
      at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:347)
      at com.google.gson.stream.JsonWriter.value(JsonWriter.java:440)
      at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:235)
      at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:220)
      at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
      at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
      at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:200)
      at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
      at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
      at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60)
      at com.google.gson.Gson$FutureTypeAdapter.write(Gson.java:843)
  </code></pre>
  
  <p>These are the attributes of my <strong>BomItem</strong> class:</p>
  
  <pre><code>private int itemId;
  private Collection&lt;BomModule&gt; modules;
  private boolean deprecated;
  private String partNumber;
  private String description; //LOB
  private int quantity;
  private String unitPriceDollar;
  private String unitPriceEuro;
  private String discount; 
  private String totalDollar;
  private String totalEuro;
  private String itemClass;
  private String itemType;
  private String vendor;
  private Calendar listPriceDate;
  private String unitWeight;
  private String unitAveragePower;
  private String unitMaxHeatDissipation;
  private String unitRackSpace;
  </code></pre>
  
  <p>Attributes of my referenced <strong>BomModule</strong> class:</p>
  
  <pre><code>private int moduleId;
  private String moduleName;
  private boolean isRootModule;
  private Collection&lt;BomModule&gt; parentModules;
  private Collection&lt;BomModule&gt; subModules;
  private Collection&lt;BomItem&gt; items;
  private int quantity;
  </code></pre>
  
  <p>Any idea what causes this error? How can I fix it?</p>