2016-12-16 1 views
2

J'ai un document dans lequel je dois créer un nouveau MIMEEntity (un champ) rempli de contenu binaire. J'utiliseSupprimer de façon fiable un MIMEEntity

MIMEEntity mimeE = doc.getMIMEEntity(fieldName); 

pour le créer. Bien sûr, quand je répète ceci avec un document existant où l'article est déjà dedans, j'obtiens l'erreur que l'article existe déjà quand je sauve le document.

Le MIMEEntity a une entité enfant, donc mon approche était de supprimer puis avant de supprimer l'élément (ce qui ne fonctionnera pas et résoudra mon problème en général);

if (mimeE != null) { 
      MIMEEntity child = mimeE.getFirstChildEntity(); 
      while(child!=null){ 
       MIMEEntity ent = child.getNextEntity(); 
       child.remove(); 
       child.recycle(); 
       child = ent; 
      } 
      mimeE.remove(); 
      mimeE.recycle(); 
      doc.removeItem(fieldName); 
     } 

La ligne où j'ai finalement retiré l'élément lui-même a écrasé le serveur. Je ne sais pas comment supprimer complètement cet élément (MIME) pour répondre aux besoins de Domino quand je crée un "nouveau"/en remplaçant l'ancien par un nouveau contenu).

Tous les meilleurs pratiques pour ce serait apprécié.

Répondre

3

J'ai trouvé un moyen de supprimer en toute sécurité mon élément avec ceci:

MIMEEntity mimeE = doc.getMIMEEntity(fieldName); 
     if (mimeE != null) { 
      MIMEEntity mime = mimeE.getFirstChildEntity(); 
      if (mime != null) { 
       mime.remove(); 
      } 
     } else { 
      mimeE = doc.createMIMEEntity(fieldName); 
     } 

     MIMEEntity mime = mimeE.createChildEntity(); 

Je ne sais pas si cela va fonctionner dans toutes les situations bien.