@Override public void deleteContent(final String documentId) throws DocumentNotFoundException { final DocumentContent documentContent = getDocumentContent(documentId); getDbSession().delete(documentContent); }
private DocumentContent getDocumentContent(final String documentId) throws DocumentNotFoundException { DocumentContent documentContent = null; final ClassLoader ori = Thread.currentThread().getContextClassLoader(); try { // it's necessary to set the Classloader to avoid exception while using // the Studio // java.lang.IllegalArgumentException: interface // org.hibernate.engine.jdbc.WrappedBlob is not visible from class loader final CommonClassLoader commonClassLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); Thread.currentThread().setContextClassLoader(commonClassLoader); documentContent = getDbSession().getDocumentContent(Long.valueOf(documentId)); } finally { if (ori != null) { Thread.currentThread().setContextClassLoader(ori); } } if (documentContent == null) { throw new DocumentNotFoundException(documentId); } return documentContent; }
@Override public byte[] getContent(final String documentId) throws DocumentNotFoundException { final DocumentContent documentContent = getDocumentContent(documentId); return documentContent.getContent(); }
@Override public DocumentVersion storeDocumentContent(final DocumentVersion document, final byte[] documentContent) throws DocumentationCreationException { final ClassLoader ori = Thread.currentThread().getContextClassLoader(); try { // it's necessary to set the class loader to avoid exception while using the Studio // java.lang.IllegalArgumentException: interface org.hibernate.engine.jdbc.BlobImplementer is not visible from class loader final CommonClassLoader commonClassLoader = EnvTool.getClassDataLoader().getCommonClassLoader(); Thread.currentThread().setContextClassLoader(commonClassLoader); final DocumentContentImpl content = new DocumentContentImpl(documentContent); getDbSession().save(content); document.setContentStorageId(content.getId()); return document; } finally { if (ori != null) { Thread.currentThread().setContextClassLoader(ori); } } }