Anyone know what this means?? How can I change the pre-configured STRICT strategy : net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy to LENIENT ?? and will that even help me here? Using Hibernate 3.1 with Struts 2.1.3 and the REST plugin. XML serializaion works fine after changing Hiberbate lazy loading to FALSE...
Stacktraces *net.sf.json.JSONException: There is a cycle in the hierarchy!* net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:73) net.sf.json.JSONObject._fromBean(JSONObject.java:658) net.sf.json.JSONObject.fromObject(JSONObject.java:182) net.sf.json.JSONObject._processValue(JSONObject.java:2426) net.sf.json.JSONObject._setInternal(JSONObject.java:2447) net.sf.json.JSONObject.setValue(JSONObject.java:1189) net.sf.json.JSONObject._fromBean(JSONObject.java:725) net.sf.json.JSONObject.fromObject(JSONObject.java:182) net.sf.json.JSONArray._processValue(JSONArray.java:2294) net.sf.json.JSONArray.processValue(JSONArray.java:2325) net.sf.json.JSONArray.addValue(JSONArray.java:2312) net.sf.json.JSONArray._fromCollection(JSONArray.java:841) net.sf.json.JSONArray.fromObject(JSONArray.java:137) net.sf.json.JSONObject._processValue(JSONObject.java:2402) net.sf.json.JSONObject._setInternal(JSONObject.java:2447) net.sf.json.JSONObject.setValue(JSONObject.java:1189) net.sf.json.JSONObject._fromBean(JSONObject.java:725) net.sf.json.JSONObject.fromObject(JSONObject.java:182) net.sf.json.JSONObject._processValue(JSONObject.java:2426) net.sf.json.JSONObject._setInternal(JSONObject.java:2447) net.sf.json.JSONObject.setValue(JSONObject.java:1189) net.sf.json.JSONObject._fromBean(JSONObject.java:725) net.sf.json.JSONObject.fromObject(JSONObject.java:182) net.sf.json.JSONArray._processValue(JSONArray.java:2294) net.sf.json.JSONArray.processValue(JSONArray.java:2325) net.sf.json.JSONArray.addValue(JSONArray.java:2312) net.sf.json.JSONArray._fromCollection(JSONArray.java:841) net.sf.json.JSONArray.fromObject(JSONArray.java:137) net.sf.json.JSONArray.fromObject(JSONArray.java:120) org.apache.struts2.rest.handler.JsonLibHandler.fromObject(JsonLibHandler.java:62) org.apache.struts2.rest.ContentTypeHandlerManager.handleResult(ContentTypeHandlerManager.java:168) org.apache.struts2.rest.RestActionInvocation.processResult(RestActionInvocation.java:132) org.apache.struts2.rest.RestActionInvocation.invokeAction(RestActionInvocation.java:102) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:272) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:235) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) org.apache.struts2.rest.ContentTypeInterceptor.intercept(ContentTypeInterceptor.java:67) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:179) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:140) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:225) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:179) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:204) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) com.opensymphony.xwork2.DefaultActionProxy.execute(DefaultActionProxy.java:129) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:449) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) java.lang.Thread.run(Thread.java:595)