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;
  

Reply via email to