https://issues.apache.org/jira/browse/AXIS-2442

        James Calfee - A flag is needed to disable overgrown constructor
generation.

I like the idea James Calfee had of a WSDL2Java flag to disable Bean
constructors.

============================================================================
========

The method paramerer limit is 255 - 1 ( this ) and futher reduced if using
long and double parameters.

http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88
659

The number of method parameters is limited to 255 by the definition of a
method descriptor (ยง4.3.3), where the limit includes one unit for this in
the case of instance or interface method invocations.

Note that a method descriptor is defined in terms of a notion of method
parameter length in which a parameter of type long or double contributes two
units to the length, so parameters of these types further reduce the limit.

============================================================================
========

http://svn.apache.org/viewvc?view=rev&revision=512459

The current fix ( names.size() > 254 ) is just counting the number of
entries in the vector, you need to calculate the number allowed by checking
the type of each parameter.

        String, Object, etc .. 1 each
        long and double        2 each

Also it look like the names vector is using 2 indexes for each field, one
for the type and one for the variable name

            String typeName = (String) names.get(i);
            String variable = (String) names.get(i + 1);

http://svn.apache.org/viewvc/webservices/axis/trunk/java/src/org/apache/axis
/wsdl/toJava/JavaBeanWriter.java?view=markup&pathrev=512459

    /** Field names */
    protected Vector names = new Vector(); 

    /**
     * Writes the default constructor.
     */
    protected void writeDefaultConstructor() {
        // Define the default constructor
        pw.println("    public " + className + "() {");
        pw.println("    }");
        pw.println();
    }

   /**
     * Write a constructor containing the fields in this class.
     * Will not write a construtor with more than 254 arguments as
     * the Java compiler will choke.
     */
    protected void writeMinimalConstructor()
    {

        if (isUnion() || names.size() == 0 || names.size() > 254)
        {
            return;
        }

        pw.println("    public " + className + "(");
        for (int i = 0; i < names.size(); i += 2) {
            String typeName = (String) names.get(i);
            String variable = (String) names.get(i + 1);
            pw.print("           " + typeName + " "
                    + variable);
            if (i >= names.size() - 2) {
                pw.println(") {");
            } else {
                pw.println(",");
            } 
        }
        
        for (int i = 0; i < names.size(); i += 2) {
            String variable = (String) names.get(i + 1);
            pw.println("           this." + variable + " = " + variable +
";");
            if (i >= names.size() - 2) {
                break;
            }
        }
        pw.println("    }");
        pw.println();
    }

============================================================================
========

-----Original Message-----
From: Steve Cohen [mailto:[EMAIL PROTECTED]
Sent: Saturday, 27 September 2008 11:55 PM
To: [email protected]
Subject: Re: Axis 1.4 - a non-supported version?


Thanks.

Bjorn Townsend wrote:
>
> Steve,
>
> Nightly builds have not been performed on this project since Axis 1.4 
> was released in 2006. The change Tom describes in that issue was made 
> in February 2007. This means that yes, unfortunately the only way to 
> get this fix is to build from source at the present time.
>
> I have been working on a final bugfix release version, Axis 1.5 when 
> my personal time allows for the last year that will include this fix 
> and many others. Since I'm working on this by myself and my job 
> doesn't allow me to devote time to open source as it once did, 
> progress has been slow, but I'm hoping to be able to propose a release 
> of 1.5 during ApacheCon this November.
>
> Meanwhile if you need any assistance in getting Axis to build for you, 
> let me know and I'll be happy to help in any way I can.
>
> Regards,
> Bjorn Townsend
>
> On Sep 26, 2008, at 3:14 PM September 26, Steve Cohen wrote:
>
>> The Axis (1) web site has nightly build links that are broken. I 
>> would like to get hold of a bug fix that was made over a year ago. 
>> (AXIS-2442) Is there no way to get this other than building from source?
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to