From de5ba110804ca81b11a263d902b04d2835f87fba Mon Sep 17 00:00:00 2001 From: Richard Millet Date: Fri, 3 Feb 2012 05:38:16 +0000 Subject: [PATCH] CSPACE-4807: Import service code was not properly releasing the Nuxeo repository session. This was most likely the cause of this problem. --- .../services/imports/ImportsResource.java | 25 ++----------------- .../services/imports/nuxeo/ImportCommand.java | 11 ++++---- 2 files changed, 7 insertions(+), 29 deletions(-) diff --git a/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java b/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java index 55128fe12..aeee9f205 100755 --- a/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java +++ b/services/imports/service/src/main/java/org/collectionspace/services/imports/ImportsResource.java @@ -107,31 +107,10 @@ public class ImportsResource extends ResourceBase { } @Override - //public Class getCommonPartClass() { - public Class getCommonPartClass() { - try { - return Class.forName("org.collectionspace.services.imports.ImportsCommon");//.class; - } catch (ClassNotFoundException e){ - return null; - } + public Class getCommonPartClass() { + return ImportsCommon.class; } - - /* KRUFT: - - 1) here is how you can deal with poxpayloads: - //PoxPayloadIn input = new PoxPayloadIn(xmlPayload); - //ServiceContext ctx = createServiceContext(input); - 2) here are some notes: - //First, save the import request to a local file. - // It may be huge. To accept a stream, send it as an upload request; see acceptUpload() - 3) useful for debugging: - System.out.println("\r\n\r\n\r\n=====================\r\n RUNNING create with xmlPayload: \r\n"+xmlPayload); - */ - - - //public static final String TEMPLATE_DIR = "/src/trunk/services/imports/service/src/main/resources/templates"; - private static String _templateDir = null; public static String getTemplateDir(){ if (_templateDir == null){ diff --git a/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java b/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java index 3dfd17565..a8097fc3f 100755 --- a/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java +++ b/services/imports/service/src/main/java/org/collectionspace/services/imports/nuxeo/ImportCommand.java @@ -4,10 +4,8 @@ import java.io.File; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.collectionspace.services.nuxeo.client.java.NuxeoClientEmbedded; -import org.collectionspace.services.nuxeo.client.java.NuxeoConnector; import org.collectionspace.services.nuxeo.client.java.NuxeoConnectorEmbedded; import org.nuxeo.ecm.core.api.repository.RepositoryInstance; -//import org.nuxeo.ecm.core.client.NuxeoClient; import org.nuxeo.ecm.core.io.DocumentPipe; import org.nuxeo.ecm.core.io.DocumentReader; import org.nuxeo.ecm.core.io.DocumentWriter; @@ -17,17 +15,18 @@ import org.nuxeo.ecm.core.io.impl.plugins.DocumentModelWriter; // based loosely on package org.nuxeo.ecm.shell.commands.io.ImportCommand; public class ImportCommand { - private static final Log log = LogFactory.getLog(ImportCommand.class); + private static final Log logger = LogFactory.getLog(ImportCommand.class); public String run(String src, String dest) throws Exception { File file = new File(src); ///cspace way of configuring client and auth: NuxeoClientEmbedded client = NuxeoConnectorEmbedded.getInstance().getClient(); - RepositoryInstance repository = client.openRepository(); + RepositoryInstance repoSession = client.openRepository(); try { - return importTree(repository, file, dest); + return importTree(repoSession, file, dest); } finally { - repository.close(); +// repository.close(); + client.releaseRepository(repoSession); } } -- 2.47.3