Uploaded image for project: 'Axis'
  1. Axis
  2. AXIS-2505

memory leak in wsdl generation

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • WSDL processing
    • None

    Description

      There's a memory leak in org.apache.axis.description.JavaServiceDesc.setDefaultNamespace():
      the method adds the given namespace to an ArrayList. This method is called from
      org.apache.axis.wsdl.fromJava.Emitter.init(), which in turn is called from
      org.apache.axis.providers.BasicProvider.generateWSDL() each time wsdl is generated for a service,
      i.e. whenever .../ServiceName?wsdl is invoked.

      To reproduce start an Axis server in a debugger, invoke ...?wsdl from a browser a couple of times for
      a certain service, and check the instance variable namespaceMappings in the JavaServiceDesc
      for that service. It grows by one element each time the wsdl is generated.

      A simple (if not very elegant) fix would be to simply remove the namespace before adding it to the list again. If it's not present, nothing happens; if it is, it's moved to the first slot:

      public void setDefaultNamespace(String namespace) {
      if (namespaceMappings == null)
      namespaceMappings = new ArrayList();
      namespaceMappings.remove(namespace);
      namespaceMappings.add(0, namespace);
      }

      Attachments

        Activity

          People

            Unassigned Unassigned
            jcsahnwaldt Christopher Sahnwaldt
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: