Changeset 834


Ignore:
Timestamp:
09/20/12 10:18:20 (12 years ago)
Author:
pharms
Message:
  • improved memory usage
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/quest-plugin-jfc/src/main/java/de/ugoe/cs/quest/plugin/jfc/JFCTraceCorrector.java

    r833 r834  
    318318            currentSession.dump(outFile); 
    319319            currentSession = null; 
     320            allSources.clear(); 
    320321        } 
    321322        else if (qName.equals("newsession")) { 
     
    324325            currentSession.dump(outFile); 
    325326            currentSession = null; 
     327            allSources.clear(); 
    326328        } 
    327329        else if (qName.equals("event")) { 
     
    330332        } 
    331333        else if (qName.equals("source")) { 
    332             rememberSource(currentSource); 
    333             currentEvent.source = currentSource; 
     334            currentEvent.source = getUniqueSource(currentSource); 
    334335            currentSource = null; 
    335336        } 
     
    351352     * @param source the source to store 
    352353     */ 
    353     private void rememberSource(Source source) { 
     354    private Source getUniqueSource(Source source) { 
    354355        String toStringValue = getToStringParam(source); 
    355          
    356         List<Source> sources = allSources.get(toStringValue); 
    357          
    358         if (sources == null) { 
    359             sources = new ArrayList<Source>(); 
    360             allSources.put(toStringValue, sources); 
    361         } 
    362          
    363         sources.add(source); 
     356 
     357        Source existingSource = findSource(toStringValue); 
     358         
     359        if (existingSource == null) { 
     360            List<Source> sources = allSources.get(toStringValue); 
     361         
     362            if (sources == null) { 
     363                sources = new ArrayList<Source>(); 
     364                allSources.put(toStringValue, sources); 
     365            } 
     366             
     367            sources.add(source); 
     368            existingSource = source; 
     369        } 
     370         
     371        return existingSource; 
    364372    } 
    365373 
     
    385393            for (Source candidate : candidates) { 
    386394                if (toStringValue.equals(getToStringParam(candidate)) && 
    387                         (candidate.components != null) && (candidate.components.size() > 0)) 
     395                    (candidate.components != null) && (candidate.components.size() > 0)) 
    388396                { 
    389397                    existingSource = candidate; 
     398                    break; 
    390399                } 
    391400            } 
Note: See TracChangeset for help on using the changeset viewer.