可靠删除MIMEEntity

时间:2016-12-16 09:18:48

标签: xpages lotus-domino mime

我有一个Document,我必须在其中创建一个填充二进制内容的新MIMEEntity(字段)。 我用

MIMEEntity mimeE = doc.getMIMEEntity(fieldName);

创建它。当然,当我使用现有文档重复此项目时,我会在保存文档时收到项目已存在的错误。

MIMEEntity有一个子实体,所以我的方法是在删除项目之前将其移除(这将无效并解决我的问题);

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

我最终删除项目本身的行崩溃了服务器。 我不知道如何完全删除该项(MIME)只是为了满足Domino的需求,当我创建一个“新”的/用新内容替换旧的那个时。)

任何最好的实践都将受到赞赏。

1 个答案:

答案 0 :(得分:3)

我找到了一种安全删除项目的方法:

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

不确定这是否适用于所有情况。