Changeset 13488


Ignore:
Timestamp:
07/05/09 11:43:40 (3 years ago)
Author:
sys
Message:

memLeak : purge ref au dialogue en cours.

Location:
trunk/Jav_GE/com/scenari/m/ge/donnee
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Jav_GE/com/scenari/m/ge/donnee/WDonneeNavOutline.java

    r13381 r13488  
    545545        protected final synchronized String xGetValue(IHDialog pDialog, Object pOwner, Object pArguments, Writer pWriter) throws Exception { 
    546546                fWalker.setCurrentDialog((IWADialog) pDialog); 
    547                 fWalker.gotoCurrent(); 
    548                 if (xNavSteps(fSteps)) { 
    549                         if (pWriter == null) { 
    550                                 return fWalker.getDialogUrl(); 
    551                         } else { 
    552                                 pWriter.write(fWalker.getDialogUrl()); 
    553                                 return null; 
    554                         } 
    555                 } else if (fIfNoneSteps != null) { 
    556                         for (int i = 0; i < fIfNoneSteps.length; i++) { 
    557                                 fWalker.gotoCurrent(); 
    558                                 if (xNavSteps(fIfNoneSteps[i])) { 
    559                                         if (pWriter == null) { 
    560                                                 return fWalker.getDialogUrl(); 
    561                                         } else { 
    562                                                 pWriter.write(fWalker.getDialogUrl()); 
    563                                                 return null; 
     547                try { 
     548                        fWalker.gotoCurrent(); 
     549                        if (xNavSteps(fSteps)) { 
     550                                if (pWriter == null) { 
     551                                        return fWalker.getDialogUrl(); 
     552                                } else { 
     553                                        pWriter.write(fWalker.getDialogUrl()); 
     554                                        return null; 
     555                                } 
     556                        } else if (fIfNoneSteps != null) { 
     557                                for (int i = 0; i < fIfNoneSteps.length; i++) { 
     558                                        fWalker.gotoCurrent(); 
     559                                        if (xNavSteps(fIfNoneSteps[i])) { 
     560                                                if (pWriter == null) { 
     561                                                        return fWalker.getDialogUrl(); 
     562                                                } else { 
     563                                                        pWriter.write(fWalker.getDialogUrl()); 
     564                                                        return null; 
     565                                                } 
    564566                                        } 
    565567                                } 
    566568                        } 
     569                } finally { 
     570                        fWalker.setCurrentDialog(null); 
    567571                } 
    568572                return ""; 
  • trunk/Jav_GE/com/scenari/m/ge/donnee/WDonneeOutline.java

    r13381 r13488  
    257257        protected final synchronized void xGetValue(IHDialog pDialog, Object pOwner, Object pArguments, Writer pWriter) throws Exception { 
    258258                fWalker.setCurrentDialog((IWADialog) pDialog); 
    259                 IXmlWriter vWriter = new XmlWriterAppendable(pWriter); 
    260  
    261                 if (fResult == RESULT_TREECONTENT) { 
    262                         vWriter.writeOpenTag("treeContent"); 
    263                         if (fWalker.gotoFirstChild()) { 
    264                                 do { 
    265                                         xPublishOutlineXml(vWriter); 
    266                                 } while (fWalker.gotoNextSibling()); 
     259                try { 
     260                        IXmlWriter vWriter = new XmlWriterAppendable(pWriter); 
     261 
     262                        if (fResult == RESULT_TREECONTENT) { 
     263                                vWriter.writeOpenTag("treeContent"); 
     264                                if (fWalker.gotoFirstChild()) { 
     265                                        do { 
     266                                                xPublishOutlineXml(vWriter); 
     267                                        } while (fWalker.gotoNextSibling()); 
     268                                } 
     269                                vWriter.writeCloseTag("treeContent"); 
     270                        } else if (fResult == RESULT_PROGRESSSTATUS) { 
     271                                vWriter.writeStartTag("progressStatus"); 
     272                                int vSeen = 0; 
     273                                int vNotSeen = 0; 
     274                                fWalker.gotoRoot(); 
     275                                boolean vCurrentPassed = false; 
     276                                while (fWalker.gotoNext()) { 
     277                                        if (vCurrentPassed) { 
     278                                                vNotSeen++; 
     279                                        } else { 
     280                                                if (fWalker.getPosition() == OutlineWalker.POS_CURRENT) vCurrentPassed = true; 
     281                                                vSeen++; 
     282                                        } 
     283                                } 
     284                                if (fNumPagesToExcludeBefore > 0) { 
     285                                        vSeen -= fNumPagesToExcludeBefore; 
     286                                        if (vSeen < 0) { 
     287                                                vNotSeen += vSeen; 
     288                                                vSeen = 0; 
     289                                        } 
     290                                } 
     291                                if (fNumPagesToExcludeAfter > 0) { 
     292                                        vNotSeen -= fNumPagesToExcludeAfter; 
     293                                        if (vNotSeen < 0) { 
     294                                                vSeen += vNotSeen; 
     295                                                vNotSeen = 0; 
     296                                        } 
     297                                } 
     298                                float vRatio = (float) vSeen / (vSeen + vNotSeen); 
     299                                vWriter.writeAttribute("seen", Integer.toString(vSeen)); 
     300                                vWriter.writeAttribute("notSeen", Integer.toString(vNotSeen)); 
     301                                vWriter.writeAttribute("total", Integer.toString(vSeen + vNotSeen)); 
     302                                vWriter.writeAttribute("ratio", Float.toString(vRatio)); 
     303                                vWriter.writeAttribute("percent", Integer.toString(Math.round(vRatio * 100))); 
     304                                vWriter.writeEndEmptyTag(); 
    267305                        } 
    268                         vWriter.writeCloseTag("treeContent"); 
    269                 } else if (fResult == RESULT_PROGRESSSTATUS) { 
    270                         vWriter.writeStartTag("progressStatus"); 
    271                         int vSeen = 0; 
    272                         int vNotSeen = 0; 
    273                         fWalker.gotoRoot(); 
    274                         boolean vCurrentPassed = false; 
    275                         while (fWalker.gotoNext()) { 
    276                                 if (vCurrentPassed) { 
    277                                         vNotSeen++; 
    278                                 } else { 
    279                                         if (fWalker.getPosition() == OutlineWalker.POS_CURRENT) vCurrentPassed = true; 
    280                                         vSeen++; 
    281                                 } 
    282                         } 
    283                         if (fNumPagesToExcludeBefore > 0) { 
    284                                 vSeen -= fNumPagesToExcludeBefore; 
    285                                 if (vSeen < 0) { 
    286                                         vNotSeen += vSeen; 
    287                                         vSeen = 0; 
    288                                 } 
    289                         } 
    290                         if (fNumPagesToExcludeAfter > 0) { 
    291                                 vNotSeen -= fNumPagesToExcludeAfter; 
    292                                 if (vNotSeen < 0) { 
    293                                         vSeen += vNotSeen; 
    294                                         vNotSeen = 0; 
    295                                 } 
    296                         } 
    297                         float vRatio = (float) vSeen / (vSeen + vNotSeen); 
    298                         vWriter.writeAttribute("seen", Integer.toString(vSeen)); 
    299                         vWriter.writeAttribute("notSeen", Integer.toString(vNotSeen)); 
    300                         vWriter.writeAttribute("total", Integer.toString(vSeen + vNotSeen)); 
    301                         vWriter.writeAttribute("ratio", Float.toString(vRatio)); 
    302                         vWriter.writeAttribute("percent", Integer.toString(Math.round(vRatio * 100))); 
    303                         vWriter.writeEndEmptyTag(); 
     306                } finally { 
     307                        fWalker.setCurrentDialog(null); 
    304308                } 
    305309        } 
Note: See TracChangeset for help on using the changeset viewer.