Details

    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: WSDL processing
    • Labels:
      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

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

              Dates

              • Created:
                Updated: