Tuscany
  1. Tuscany
  2. TUSCANY-4037

OutOfMemoryError because domain registry holds remote endpoint references created by SCAClientFactory.getService

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: Java-SCA-2.0
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      RuntimeEndpointReferenceImpl has the following code to add an endpoint reference to the domain registry.

      if (!getReference().getName().startsWith("$self$."))
      compositeContext.getEndpointRegistry().addEndpointReference(this);

      The check for a reference name starting with $self$ is intended to prevent references created by SCAClientFactory.getService() from being added to the registry. The check works fine for references to colocated services. However references to remote services start with a different string, $sca.client$.

      1. TUSCANY-4037-rev1.patch
        0.9 kB
        Greg Dritschler

        Activity

        ant elder made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Hide
        ant elder added a comment -

        Patch applied, thanks for the fix Greg.

        Show
        ant elder added a comment - Patch applied, thanks for the fix Greg.
        antelder committed 1332563 (1 file)
        Reviews: none

        TUSCANY-4037: Apply patch from Greg Dritschler to fix OutOfMemoryError because domain registry holds remote endpoint references created by SCAClientFactory.getService

        Greg Dritschler made changes -
        Attachment TUSCANY-4037-rev1.patch [ 12522599 ]
        Hide
        Greg Dritschler added a comment -

        Updated the patch to also keep callback references from being added.

        Show
        Greg Dritschler added a comment - Updated the patch to also keep callback references from being added.
        Greg Dritschler made changes -
        Attachment TUSCANY-4037.patch [ 12521619 ]
        Greg Dritschler made changes -
        Description RuntimeEndpointReferenceImpl has the following code to add an endpoint reference to the domain registry.

                if (!refName.startsWith("$self$."))
                    compositeContext.getEndpointRegistry().addEndpointReference(this);

        The check for a reference name starting with $self$ is intended to prevent references created by SCAClientFactory.getService() from being added to the registry. The check works fine for references to colocated services. However references to remote services start with a different string, $sca.client$.
        RuntimeEndpointReferenceImpl has the following code to add an endpoint reference to the domain registry.

                if (!getReference().getName().startsWith("$self$."))
                    compositeContext.getEndpointRegistry().addEndpointReference(this);

        The check for a reference name starting with $self$ is intended to prevent references created by SCAClientFactory.getService() from being added to the registry. The check works fine for references to colocated services. However references to remote services start with a different string, $sca.client$.
        Greg Dritschler made changes -
        Attachment TUSCANY-4037.patch [ 12521619 ]
        Greg Dritschler made changes -
        Field Original Value New Value
        Description RuntimeEndpointReferenceImpl has the following code to add an endpoint reference to the domain registry.

                if (!refName.startsWith("$self$.") && !refName.startsWith("$sca.client$."))
                    compositeContext.getEndpointRegistry().addEndpointReference(this);

        The check for a reference name starting with $self$ is intended to prevent references created by SCAClientFactory.getService() from being added to the registry. The check works fine for references to colocated services. However references to remote services start with a different string, $sca.client$.
        RuntimeEndpointReferenceImpl has the following code to add an endpoint reference to the domain registry.

                if (!refName.startsWith("$self$."))
                    compositeContext.getEndpointRegistry().addEndpointReference(this);

        The check for a reference name starting with $self$ is intended to prevent references created by SCAClientFactory.getService() from being added to the registry. The check works fine for references to colocated services. However references to remote services start with a different string, $sca.client$.
        Greg Dritschler created issue -

          People

          • Assignee:
            Unassigned
            Reporter:
            Greg Dritschler
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development