[
http://issues.apache.org/jira/browse/AXIS-1985?page=comments#action_12313384 ]
David Rolfe commented on AXIS-1985:
-----------------------------------
We examined the zip file you uploaded - We noticed something:
Our code works with 3 record classes wheras you test appears to use the
wsdl2java generated versions of those classes. For example our our WsdlElement
looks like this:
package axis12bug;
public class WsdlElement
{
public Object column;
public WsdlElement()
{
}
} // Generated by OrindaBuild 5.0
Yours looks like this:
/**
* WsdlElement.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.2.1 Jun 11, 2005 (10:08:18 EDT) WSDL2Java emitter.
*/
package axis12bug;
public class WsdlElement implements java.io.Serializable {
private java.lang.Object column;
public WsdlElement() {
}
public WsdlElement(
java.lang.Object column) {
this.column = column;
}
/**
* Gets the column value for this WsdlElement.
*
* @return column
*/
public java.lang.Object getColumn() {
return column;
}
/**
* Sets the column value for this WsdlElement.
*
* @param column
*/
public void setColumn(java.lang.Object column) {
this.column = column;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof WsdlElement)) return false;
WsdlElement other = (WsdlElement) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.column==null && other.getColumn()==null) ||
(this.column!=null &&
this.column.equals(other.getColumn())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getColumn() != null) {
_hashCode += getColumn().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(WsdlElement.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("urn:axis12bug",
"WsdlElement"));
org.apache.axis.description.ElementDesc elemField = new
org.apache.axis.description.ElementDesc();
elemField.setFieldName("column");
elemField.setXmlName(new javax.xml.namespace.QName("", "column"));
elemField.setXmlType(new
javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "anyType"));
elemField.setNillable(true);
typeDesc.addFieldDesc(elemField);
}
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}
We suspect that your test worked because you were using axis generated code on
both 'sides' for the records. Tomorrow we'll re-write our test to use your
classes and see if we can reproduce your successfull behaviour. If so, we'll
try and come up with a well defined and clear bug definition.
> Arrays of arrays work in 1.1 but not in 1.2.1
> ---------------------------------------------
>
> Key: AXIS-1985
> URL: http://issues.apache.org/jira/browse/AXIS-1985
> Project: Apache Axis
> Type: Bug
> Components: Serialization/Deserialization
> Versions: 1.2RC3
> Environment: Web Servers: Tomcat 4.1.31, 5.0.28, 5.5.4
> Axis Versions: Not present in Axis 1.1. Occurs in Axis 1.2 all releases up to
> 1.2.1.
> Java: 1.4.2_04
> Operating Systems: Present on Windows XP and Solaris 5.8
> Reporter: David Rolfe
> Assignee: Davanum Srinivas
> Priority: Blocker
> Attachments: AXIS-1985.zip, Axis1985WSDL.zip, deploy.wsdd, full1.wsdl
>
> We make a product for running Oracle stored procedures and SQL statements
> that is designed to work with Axis. An essential part of such a product is
> the ability to represent the results of arbitrary SQL queries. We use 3
> classes to represent a Query, its rows and its columns. The relationship is
> like this:
> WsdlRowSet - Represents a query. Has an array of String[] (column names) and
> WsdlRow (rows)
> WsdlRow - Represents a row. Has an array of WsdlElement (a value)
> WsdlElement - a wrapper for Object.
> All of this works fine in Axis 1.1 but in 1.2 all the elements except the
> last one in both the row arrays and the list of column names are lost. We
> have zipped a test case and uploaded it to:
> http://www.orindasoft.com/public/friends/smallarraysbug.zip
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira