This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 684ce4490f557c2a08add408f22c621afdfbcf72 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Aug 27 11:01:41 2015 +0200 Test si le stream en entrée est gzippé lors de l'import d'un dump --- .../fr/ird/observe/ObserveTopiaApplicationContext.java | 17 ++++++++++++++--- .../services/service/DataSourceServiceTopia.java | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java b/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java index 4eccb1e..809f4c1 100644 --- a/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java +++ b/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java @@ -9,6 +9,7 @@ import org.hibernate.tool.hbm2ddl.SchemaExport; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.jdbc.JdbcH2Helper; import org.nuiton.topia.replication.TopiaReplicationService; +import org.nuiton.util.GZUtil; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; @@ -95,7 +96,7 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat } } - public void executeGzipSqlStatements(File temporaryDirectory, byte... content) throws IOException { + public void executeSqlStatements(File temporaryDirectory, byte... content) throws IOException { Path sqlScriptFile = new File(temporaryDirectory, "script_" + System.nanoTime() + ".sql").toPath(); @@ -103,8 +104,18 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat log.info("script: " + sqlScriptFile); } - try (InputStream inputSream = new BufferedInputStream(new GZIPInputStream(new ByteArrayInputStream(content)))) { - Files.copy(inputSream, sqlScriptFile); + boolean gzip; + try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(content)) { + gzip = GZUtil.isGzipStream(byteArrayInputStream); + } + if (gzip) { + try (InputStream inputSream = new BufferedInputStream(new GZIPInputStream(new ByteArrayInputStream(content)))) { + Files.copy(inputSream, sqlScriptFile); + } + } else { + try (InputStream inputSream = new BufferedInputStream(new ByteArrayInputStream(content))) { + Files.copy(inputSream, sqlScriptFile); + } } ObserveTopiaConfiguration topiaConfiguration = getConfiguration(); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java index 849d92b..687a8ab 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java @@ -192,7 +192,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS File temporaryDirectory = serviceContext.createTemporaryDirectory(temporaryFilePrefix); try { - topiaApplicationContext.executeGzipSqlStatements(temporaryDirectory, content); + topiaApplicationContext.executeSqlStatements(temporaryDirectory, content); } catch (IOException e) { //TODO Avoir une exception concrete throw new RuntimeException("Could not execute GZipSqlStatements", e); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.