Когда я загружаю папки как zip, тип которых не является cm: папкой, я получаю пустой zip-архив. Для папок с типом контента cm: и для документов он работает правильно.Загрузите папку Zip с настраиваемой папкой типа
Подробнее:
В нашем проекте мы создали пользовательский тип папки, которые родителя типа cm:folder
:
<type name="ef:folder">
<title>Parent of all folders</title>
<parent>cm:folder</parent>
<mandatory-aspects>
<aspect>ef:typed</aspect>
</mandatory-aspects>
</type>
Проблема заключается в том, что, когда я нажимаю Скачать в Zip кнопки для выбранной папки (ы) я получаю пустой zip-файл. Оно происходит от startNode
метода ZipDownloadExporter.java
:
@Override
public void startNode(NodeRef nodeRef)
{
this.currentName = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
path.push(new Pair<String, NodeRef>(currentName, nodeRef));
if (ContentModel.TYPE_FOLDER.equals(nodeService.getType(nodeRef)))
{
String path = getPath() + PATH_SEPARATOR;
ZipArchiveEntry archiveEntry = new ZipArchiveEntry(path);
try
{
zipStream.putArchiveEntry(archiveEntry);
zipStream.closeArchiveEntry();
}
catch (IOException e)
{
throw new ExporterException("Unexpected IOException adding folder entry", e);
}
}
}
Поскольку пользовательские папки имеет тип ef:folder
эта проверка возвращает ложь:
if (ContentModel.TYPE_FOLDER.equals(nodeService.getType(nodeRef)))
и папка не добавляется в почтовый индекс.
Является ли это ошибкой (возможно, правильным решением было бы проверить не только тип узла, но и родительский тип)?
Как это можно было бы устранить без создания пользовательского экспортера для пользовательских типов папок?
Из-за ограничения типа проекта папка не может быть изменена на папку cm:.