tdraier 2005/11/16 12:23:33 CET
Modified files:
core/src/java/org/jahia/services/importexport
ImportExportBaseService.java
ImportHandler.java
Log:
-throw an error when using incompatible languages
-fix date parsing
-fix file import
Revision Changes Path
1.44 +19 -10
jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java.diff?r1=1.43&r2=1.44&f=h
1.46 +25 -2
jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java.diff?r1=1.45&r2=1.46&f=h
Index: ImportExportBaseService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- ImportExportBaseService.java 14 Nov 2005 16:06:13 -0000 1.43
+++ ImportExportBaseService.java 16 Nov 2005 11:23:32 -0000 1.44
@@ -600,16 +600,15 @@
if (!name.startsWith("export") &&
!name.equals("filesacl.xml")) {
name = "/" + name;
if (zipentry.isDirectory()) {
- final String name1 = name;
- ensureDir(name1, jParams, jParams.getSite());
} else {
- final String name2 = name;
- DAVFileAccess dir = ensureDir(name2.substring(0,
name2.lastIndexOf('/')), jParams, jParams.getSite());
- String filename =
name2.substring(name2.lastIndexOf('/') + 1);
- String contentType =
Jahia.getStaticServletConfig().getServletContext().getMimeType(filename);
- dir.beginTransaction();
- dir.uploadFile(filename, zis, zipentry.getSize(),
contentType);
- dir.commitTransaction();
+ DAVFileAccess dir = ensureDir(name.substring(0,
name.lastIndexOf('/')), jParams, jParams.getSite());
+ String filename =
name.substring(name.lastIndexOf('/') + 1);
+ if (dir != null) {
+ String contentType =
Jahia.getStaticServletConfig().getServletContext().getMimeType(filename);
+ dir.beginTransaction();
+ dir.uploadFile(filename, zis,
zipentry.getSize(), contentType);
+ dir.commitTransaction();
+ }
}
} else {
OutputStream os = new ByteArrayOutputStream();
@@ -654,7 +653,14 @@
public DAVFileAccess ensureDir(String name, ProcessingContext jParams,
JahiaSite site) {
DAVFileAccess dir = JahiaWebdavBaseService.getInstance
().getDAVFileAccess (jParams, site, jParams.getUser(), name);
if (!dir.isValid()) {
- DAVFileAccess parentDir =
ensureDir(name.substring(0,name.lastIndexOf('/')), jParams, site);
+ int endIndex = name.lastIndexOf('/');
+ if (endIndex == -1) {
+ return null;
+ }
+ DAVFileAccess parentDir = ensureDir(name.substring(0,endIndex),
jParams, site);
+ if (parentDir == null) {
+ return null;
+ }
parentDir.beginTransaction();
parentDir.createCollection(
name.substring(name.lastIndexOf('/')+1));
parentDir.commitTransaction();
@@ -668,6 +674,9 @@
if (!dest.isValid() && file.isValid()) {
String path = file.getPath();
DAVFileAccess parentDir =
ensureDir(path.substring(0,path.lastIndexOf('/')), jParams, destSite);
+ if (parentDir == null) {
+ return;
+ }
JahiaFileField jahiaFileField = file.getJahiaFileField();
parentDir.beginTransaction();
parentDir.uploadFile(path.substring(path.lastIndexOf('/')+1),
file.downloadFile(), jahiaFileField.getSize(), jahiaFileField.getType() );
Index: ImportHandler.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- ImportHandler.java 15 Nov 2005 12:38:39 -0000 1.45
+++ ImportHandler.java 16 Nov 2005 11:23:32 -0000 1.46
@@ -107,7 +107,27 @@
public void startDocument() throws SAXException {
oldLocale = jParams.getCurrentLocale();
-
jParams.setCurrentLocale(LanguageCodeConverters.languageCodeToLocale(language));
+ Locale currentLocale =
LanguageCodeConverters.languageCodeToLocale(language);
+
+ try {
+ List languageSettingsAsLocales =
site.getLanguageSettingsAsLocales(false);
+
+ while (!languageSettingsAsLocales.contains(currentLocale)) {
+ if (!"".equals(currentLocale.getVariant())) {
+ currentLocale = new Locale(currentLocale.getLanguage(),
currentLocale.getCountry());
+ } else if (!"".equals(currentLocale.getCountry())) {
+ currentLocale = new Locale(currentLocale.getLanguage());
+ } else {
+ throw new SAXException("Languages do not match");
+ }
+ }
+ } catch (JahiaException e) {
+ //??
+ }
+
+ language = currentLocale.toString();
+
+ jParams.setCurrentLocale(currentLocale);
oldElr = jParams.getEntryLoadRequest();
jParams.setEntryLoadRequest(elr);
@@ -887,6 +907,9 @@
}
public String parseValue(int type, String value) {
+ if (value == null) {
+ return null;
+ }
switch (type) {
case ContentFieldTypes.DATE:
DateFormat df = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
@@ -894,7 +917,7 @@
Date d = df.parse(value);
return Long.toString(d.getTime());
} catch (ParseException e) {
- e.printStackTrace();
+ return null;
}
default:
return value;