Full Exception trace of the above issue:
org.apache.chemistry.opencmis.commons.exceptions.CmisStorageException: Expected 68307 bytes but retrieved 0 bytes!
at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:485)
at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.put(AbstractAtomPubService.java:653)
at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.put(AbstractAtomPubService.java:640)
at org.apache.chemistry.opencmis.client.bindings.spi.atompub.VersioningServiceImpl.checkIn(VersioningServiceImpl.java:164)
at org.apache.chemistry.opencmis.client.runtime.DocumentImpl.checkIn(DocumentImpl.java:274)
at org.alfresco.cmis.client.impl.AlfrescoDocumentImpl.checkIn(AlfrescoDocumentImpl.java:82)
at org.apache.chemistry.opencmis.client.runtime.DocumentImpl.checkIn(DocumentImpl.java:528)
at com.mps.document.repository.DocumentRepositoryHandler.checkinFile(DocumentRepositoryHandler.java:503)
at com.mps.document.repository.DocumentRepositoryHandler.checkinFile(DocumentRepositoryHandler.java:476)
at com.mps.document.repository.DocumentRepository.createFile(DocumentRepository.java:144)
at com.mps.ui.util.DocumentUploadServlet.doPost(DocumentUploadServlet.java:192)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at com.googlecode.webutilities.filters.CompressionFilter.doFilter(CompressionFilter.java:112)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at com.mps.ui.security.filters.AuthenticationFilter.doFilter(AuthenticationFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Thread.java:744)
Below is the code snippets:
/**
public static String createFile(String fileName, String fileDescription, InputStream fIO, String parentFolderId, Map<String, String> properties) {
if(null == sessionFactory) {
setupSession();
}
Session session = sessionFactory.createSession(sessionParams);
Folder parentFolder = (Folder) session.getObject(parentFolderId);
String mimeType = MimeType.getDefault().value();
ContentStream contentStream = session.getObjectFactory().createContentStream(fileName, -1, mimeType, fIO);
if(null == properties) {
properties = new HashMap<String, String>();
properties.put(PropertyIds.OBJECT_TYPE_ID, "D:gk:doc,P:cm:titled");
} else {
if(!properties.containsKey(PropertyIds.OBJECT_TYPE_ID)) {
properties.put(PropertyIds.OBJECT_TYPE_ID, "D:gk:doc,P:cm:titled");
}
}
properties.put(PropertyIds.NAME, fileName);
properties.put("cm:description", fileDescription);
Document doc = parentFolder.createDocument(properties, contentStream, VersioningState.MAJOR);
String docId = doc.getProperty("cmis:versionSeriesId").getValue();
if(LOGGER.isDebugEnabled()) {
LOGGER.debug(String.format("Created file %s with ID: %s", fileName, docId));
}
return docId;
}
/** This method we are ussing to checkin the checked out file with a different version
public static String checkinFile(String fileId, InputStream io, Map<String, String> properties) {
if(null == sessionFactory) {
setupSession();
}
Session session = sessionFactory.createSession(sessionParams);
String newId = fileId;
Document doc = (Document) session.getObject(fileId);
if(null != doc) {
String fileName = doc.getName();
String mimeType = MimeType.getDefault().value();
ContentStream contentStream = session.getObjectFactory().createContentStream(fileName, -1, mimeType, io);
ObjectId newObjId = doc.checkIn(true, properties, contentStream, "Replaced document");
if(null != newObjId) {
Document newDoc = (Document) session.getObject(newObjId);
newId = newDoc.getProperty("cmis:versionSeriesId").getValue();
}
}
return newId;
}
I am using:
chemistry-opencmis 0.10.0 version
and alfresco-opencmis-extension 0.7 version.