if (obj instanceof Param) {\r
\r
Param temp = (Param)obj;\r
+ boolean thcycle;\r
+ boolean tmcycle;\r
if (this._content != null) {\r
if (temp._content == null) return false;\r
- else if (!(this._content.equals(temp._content))) \r
- return false;\r
- }\r
- else if (temp._content != null)\r
+ if (this._content != temp._content) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._content);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._content);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._content); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._content); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._content.equals(temp._content)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._content);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._content);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._content);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._content);\r
+ }\r
+ }\r
+ } else if (temp._content != null)\r
return false;\r
if (this._name != null) {\r
if (temp._name == null) return false;\r
- else if (!(this._name.equals(temp._name))) \r
- return false;\r
- }\r
- else if (temp._name != null)\r
+ if (this._name != temp._name) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._name);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._name);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._name); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._name); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._name.equals(temp._name)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._name);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._name);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._name);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._name);\r
+ }\r
+ }\r
+ } else if (temp._name != null)\r
return false;\r
if (this._type != null) {\r
if (temp._type == null) return false;\r
- else if (!(this._type.equals(temp._type))) \r
- return false;\r
- }\r
- else if (temp._type != null)\r
+ if (this._type != temp._type) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._type);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._type);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._type); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._type); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._type.equals(temp._type)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._type);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._type);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._type);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._type);\r
+ }\r
+ }\r
+ } else if (temp._type != null)\r
return false;\r
return true;\r
}\r
int result = super.hashCode();\r
\r
long tmp;\r
- if (_content != null) {\r
+ if (_content != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_content)) {\r
result = 37 * result + _content.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_content);\r
}\r
- if (_name != null) {\r
+ if (_name != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_name)) {\r
result = 37 * result + _name.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_name);\r
}\r
- if (_type != null) {\r
+ if (_type != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_type)) {\r
result = 37 * result + _type.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_type);\r
}\r
\r
return result;\r