private Document createDocumentVersionUsingDescriptor(final String fileName, final String contentMimeType,
final byte[] fileContent, final boolean isMajorVersion, final String author, final Date creationDate,
final Date lastModificationDate, final DocumentDescriptor documentDescriptor)
throws DocumentationCreationException {
final long length = fileContent == null ? 0 : fileContent.length;
final long versionLabel = documentDescriptor.getLastVersionLabel() + 1;
final DocumentVersionImpl documentVersionImpl = new DocumentVersionImpl(author, creationDate, lastModificationDate,
isMajorVersion, documentDescriptor.getId(), fileName, contentMimeType, length, versionLabel);
documentStorageService.storeDocumentContent(documentVersionImpl, fileContent);
getDbSession().save(documentVersionImpl);
documentDescriptor.setLastVersionId(Long.valueOf(documentVersionImpl.getId()));
documentDescriptor.setLastVersionLabel(versionLabel);
return toDocument(documentDescriptor, documentVersionImpl);
}