2 votes

Suppression fiable d'une entité MIME

J'ai un document dans lequel je dois créer une nouvelle entité MIME (un champ) remplie avec un contenu binaire. J'utilise

MIMEEntity mimeE = doc.getMIMEEntity(fieldName);

pour le créer. Bien entendu, lorsque je répète cette opération avec un document existant dans lequel l'élément se trouve déjà, j'obtiens une erreur indiquant que l'élément existe déjà lorsque j'enregistre le document.

L'entité MIMEEntity a une entité enfant, mon approche consistait donc à supprimer cette dernière avant de supprimer l'élément (ce qui ne fonctionnera pas et ne résoudra pas 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ù je retire finalement l'objet lui-même a fait planter le serveur. Je n'ai aucune idée de comment supprimer entièrement cet élément (MIME) juste pour répondre aux besoins de Domino lorsque je crée un "nouveau" document (en remplaçant l'ancien par un nouveau contenu).

Toute meilleure pratique à cet égard serait appréciée.

3voto

Oliver Busse Points 3103

J'ai trouvé un moyen de retirer mon article en toute sécurité :

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();

Il n'est pas certain que cela fonctionne dans toutes les situations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X