Search code examples
alfrescoalfresco-shareopencmisapache-chemistry

Alfresco: Stream is already closed


I am trying to create text document using apache-chemistry in alfresco. My code is for creating document is

Document document = FileUtils.createTextDocument("/", "test.txt", "test document", BaseTypeId.CMIS_DOCUMENT.value(), VersioningState.MAJOR, session);

when I execute my code I am getting following exception

org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Cannot access "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom/children?id=5717e8a0-61b2-4bcb-8a91-2f4b61ebfefa&versioningState=major": Stream is already closed! at org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invoke(DefaultHttpInvoker.java:233) at org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invokePOST(DefaultHttpInvoker.java:68) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:713) at org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.createDocument(ObjectServiceImpl.java:122) at org.apache.chemistry.opencmis.client.runtime.SessionImpl.createDocument(SessionImpl.java:1165) at org.apache.chemistry.opencmis.client.runtime.FolderImpl.createDocument(FolderImpl.java:77) at org.apache.chemistry.opencmis.client.runtime.FolderImpl.createDocument(FolderImpl.java:460) at org.apache.chemistry.opencmis.client.util.FileUtils.createTextDocument(FileUtils.java:168)


Solution

  • Try this worked fine for me

    public static void main(String args[]) {
    String serverUrl = args[0];
    String username = args[1];
    String password = args[2];
    Session session = getSession(serverUrl, username, password);
    Folder root = session.getRootFolder();
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_
    DOCUMENT.value());
    String name = "New Document (" + System.currentTimeMillis() +
    ").txt";
    properties.put(PropertyIds.NAME, name);
    List<Ace> addAces = new LinkedList<Ace>();
    List<Ace> removeAces = new LinkedList<Ace>();
    List<Policy> policies = new LinkedList<Policy>();
    String content = "The quick brown fox jumps over the lazy dog.";
    ContentStream contentStream = new ContentStreamImpl("text.txt",
    BigInteger.valueOf(content.length()),
    "text/plain", new ByteArrayInputStream(content.
    getBytes()));
    Document newDocument = root.createDocument(properties,
    contentStream, VersioningState.MAJOR, policies, addAces, removeAces,
    session.getDefaultContext());
    System.out.println(newDocument.getId());
    }