Author: dkulp
Date: Thu Oct 29 14:40:57 2009
New Revision: 830966
URL: http://svn.apache.org/viewvc?rev=830966&view=rev
Log:
[CXF-1817] Add a depth check to make sure we don't recurse forever
Modified:
cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
Modified:
cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?rev=830966&r1=830965&r2=830966&view=diff
==============================================================================
---
cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
(original)
+++
cxf/trunk/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
Thu Oct 29 14:40:57 2009
@@ -816,17 +816,28 @@
writeDefaultType(writer, m.listParamTypes()[0], path +
"/" + m.name().substring(3));
writer.write(");");
} else {
- writeDefaultValue(writer, indent,
- path + "/" + m.name().substring(3),
- varName + m.name().substring(3),
- m.listParamTypes()[0]);
- writer.write("\n");
+ int idx = path.indexOf("/" + m.name().substring(3) +
"/");
+ if (idx > 0) {
+ idx = path.indexOf("/" + m.name().substring(3) +
"/", idx + 1);
+ }
+ boolean hasTwo = idx > 0;
+ if (!hasTwo) {
+ writeDefaultValue(writer, indent,
+ path + "/" +
m.name().substring(3),
+ varName + m.name().substring(3),
+ m.listParamTypes()[0]);
+ writer.write("\n");
+ }
writer.write(indent);
writer.write(varName);
writer.write(".");
writer.write(m.name());
writer.write("(");
- writer.write(varName + m.name().substring(3));
+ if (!hasTwo) {
+ writer.write(varName + m.name().substring(3));
+ } else {
+ writer.write("null");
+ }
writer.write(");");
}
} else if (m.type().fullName().startsWith("java.util.List")) {