0

Alfresco の特定のフォルダーに (特定の名前で) ファイルを作成するレポ層に Java を利用した Web スクリプトがあります。

ファイル名の重複の問題を処理するために、次のコードを書きました。

NodeRef node = null;
        try {
            node = createNode(fullName, folderNodeRefId);
        } catch (DuplicateChildNodeNameException e) {
            System.out.println("Catched");
            boolean done = false;
            for (int i = 1; !done; i++) {
                String newName = filename + "_" + i + "." + fileFormat;
                System.out.println("Duplicate Name. Trying: " + newName);
                try {
                    node = createNode(newName, folderNodeRefId);
                    done = true;
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
            }
        }
        System.out.println("Done");
        ContentWriter writer = serviceRegistry.getContentService().getWriter(node, ContentModel.PROP_CONTENT, true);
        writer.setMimetype(getFileFormatMimetype(fileFormat));
        writer.putContent(inputStream);
        writer.guessEncoding();

private NodeRef createNode(String filename, String folderNodeRefId)
            throws InvalidNodeRefException, InvalidTypeException, InvalidQNameException {
        System.out.println("In " + filename);
        NodeRef folderNodeRef = new NodeRef(folderNodeRefId);
        Map<QName, Serializable> props = new HashMap<QName, Serializable>(1);
        props.put(ContentModel.PROP_NAME, filename);
        return serviceRegistry.getNodeService()
                .createNode(folderNodeRef, ContentModel.ASSOC_CONTAINS,
                        QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, filename), ContentModel.TYPE_CONTENT,
                        props)
                .getChildRef();
    }

ファイル名の重複 (新しい名前) がなければ、コードは非常にうまく機能します。ただし、エラーなしで実行されますが、重複がある場合は何もしません! テストすると、例外はスローされませんが、ファイルも作成されません!

その原因についてのヒントはありますか?

ありがとう、

4

1 に答える 1