Project

General

Profile

bug #7904

DerivedUnitFacadeFieldUnitCacheStrategy.getCollectorAndFieldNumber() creates temporary Team objects which can not be garbage collected.

Added by Andreas Kohlbecker 4 months ago. Updated about 2 months ago.

Status:
Feedback
Priority:
Highest
Category:
cdmlib
Target version:
Start date:
11/13/2018
Due date:
% Done:

10%

Severity:
normal
Found in Version:

Description

The root cause for the excessive memory allocation reported in #7900 is the DerivedUnitFacadeFieldUnitCacheStrategy.getCollectorAndFieldNumber() method in which new Teams are created temporarily in order to create title cache strings. When adding the collector person to this Team the team is registered as PropertyChangeListener to the Person which creates a strong reference between both. The temporary Team objects now can no longer be cleaned up by the garbage collector:

Team-merged-paths.png View (102 KB) Andreas Kohlbecker, 11/13/2018 02:06 PM


Related issues

Copied from Edit - bug #7900: Excessive heap consuption in RegistrationWorkingsetEditor with big workingsets Closed 11/09/2018

History

#1 Updated by Andreas Kohlbecker 4 months ago

  • Copied from bug #7900: Excessive heap consuption in RegistrationWorkingsetEditor with big workingsets added

#2 Updated by Andreas Kohlbecker 4 months ago

The creation of Teams in this methods seems to be completely unnecessary

#3 Updated by Andreas Kohlbecker 4 months ago

  • Status changed from New to Feedback
  • Assignee changed from Andreas Kohlbecker to Andreas Müller
  • % Done changed from 0 to 10

I suggest two modifications:

  1. DerivedUnitFacadeFieldUnitCacheStrategy.getCollectorAndFieldNumber() without the unnecessary Team.NewInstance()
  2. removal of the registration of the person as PropertyChangeListerer to the Team

#4 Updated by Andreas Müller 2 months ago

  • Subject changed from DerivedUnitFacadeFieldUnitCacheStrategy.getCollectorAndFieldNumber() creates temporary Team objects which can not be grabage collected. to DerivedUnitFacadeFieldUnitCacheStrategy.getCollectorAndFieldNumber() creates temporary Team objects which can not be garbage collected.

#5 Updated by Andreas Müller about 2 months ago

  • Status changed from Feedback to In Progress
  • Assignee changed from Andreas Müller to Andreas Kohlbecker

what is the situation here. Is this already implemented and needs review or does it need a decision which step to go?

#6 Updated by Andreas Kohlbecker about 2 months ago

  • Status changed from In Progress to Feedback
  • Assignee changed from Andreas Kohlbecker to Andreas Müller

we need to decide between the alternative solutions suggested in comment 3

If we can decide on this quickly we could apply the according changes for this release otherwise we need to move the issue to the next release and set it to HIGHEST

#7 Updated by Andreas Müller about 2 months ago

  • Target version changed from Release 5.5 to Release 5.6

As we decided to only work on review tickets and easy to fix critical bugs for this version I suggest to move to next version. Or is this critical?

#8 Updated by Andreas Kohlbecker about 2 months ago

  • Priority changed from New to Highest

Andreas Müller wrote:

As we decided to only work on review tickets and easy to fix critical bugs for this version I suggest to move to next version. Or is this critical?

I fully agree in moving this issue to 5.6 .Since this is a major bug we should set the priority to HIGHEST in order to avoid that this issue is being missed.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)