xlawrence    2005/06/21 16:15:18 CEST

  Modified files:
    core/src/java/org/jahia/engines/shared BigText_Field.java 
  Log:
  Updated the BigText engine so it can handle URL integrity checks
  
  Revision  Changes    Path
  1.9       +217 -102  
jahia/core/src/java/org/jahia/engines/shared/BigText_Field.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/shared/BigText_Field.java.diff?r1=1.8&r2=1.9&f=h
  
  
  
  Index: BigText_Field.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/shared/BigText_Field.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- BigText_Field.java        14 Jun 2005 14:08:58 -0000      1.8
  +++ BigText_Field.java        21 Jun 2005 14:15:18 -0000      1.9
  @@ -22,18 +22,24 @@
   import java.util.Map;
   import java.util.HashMap;
   import java.util.Collection;
  +import java.util.List;
   import java.util.Vector;
   import org.jahia.data.containers.JahiaContainer;
  -import org.jahia.data.fields.*;
  +import org.jahia.data.containers.JahiaContainerList;
  +import org.jahia.data.fields.JahiaField;
  +import org.jahia.data.fields.JahiaBigTextField;
  +import org.jahia.engines.EngineMessage;
   import org.jahia.engines.EngineMessages;
   import org.jahia.engines.JahiaEngine;
   import org.jahia.engines.JahiaEngineTools;
   import org.jahia.exceptions.JahiaException;
  +import org.jahia.exceptions.JahiaPageNotFoundException;
   import org.jahia.params.ParamBean;
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.services.acl.JahiaBaseACL;
   import org.jahia.services.htmlparser.JahiaTextContentTidy;
   import org.jahia.services.sites.JahiaSite;
  +import org.jahia.services.sites.SiteLanguageSettings;
   import org.jahia.utils.JahiaString;
   import org.jahia.utils.JahiaTools;
   import org.jahia.services.htmlparser.ExtractLinksDOMVisitor;
  @@ -51,15 +57,18 @@
   import org.jahia.utils.I18n;
   
   import org.jahia.services.acl.JahiaACLEntry;
  -
  -import org.jahia.content.ContentObject;
  -import org.jahia.content.ObjectKey;
  -import org.jahia.content.JahiaObject;
  +import org.jahia.data.fields.FieldsEditHelper;
  +import org.jahia.data.fields.FieldsEditHelperAbstract;
   
   import org.jahia.services.version.EntryLoadRequest;
   
   import org.jahia.services.workflow.WorkflowService;
   
  +/**
  + * Sub-Engine for managing BigText Fields
  + *
  + * Modified by Xavier Lawrence, June 2005
  + */
   public class BigText_Field {
       
       private static org.apache.log4j.Logger logger =
  @@ -72,12 +81,10 @@
       public static final String HTMLEDITOR_VIEW_HELPER_ATTRIBUTE =
               "org.jahia.engines.shared.BigText_Field.HTMLEditorsViewHelper";
       
  -    protected StringBuffer buff;
  +protected final StringBuffer buff;
       
       /**
        * getInstance
  -     * AK    19.12.2000
  -     *
        */
       public static BigText_Field getInstance() {
           return theObject;
  @@ -100,9 +107,9 @@
       public boolean handleField( ParamBean jParams, Integer modeInt, HashMap 
engineMap )
       throws JahiaException {
           final int mode = modeInt.intValue();
  -        String fieldsEditCallingEngineName = (String) engineMap.get(
  +        final String fieldsEditCallingEngineName = (String) engineMap.get(
                   "fieldsEditCallingEngineName" );
  -        JahiaField  theField = (JahiaField) engineMap.get(
  +        final JahiaField  theField = (JahiaField) engineMap.get(
                   buff.append(fieldsEditCallingEngineName).append(".theField").
                   toString() );
           buff.delete(0, buff.length());
  @@ -141,7 +148,12 @@
       private boolean getFormData( ParamBean jParams, HashMap engineMap, 
JahiaField theField )
       throws JahiaException {
           
  -        boolean out = true;        
  +        final String theScreen = (String) engineMap.get("screen");
  +        if (theScreen.equals("cancel")) {
  +            return true;
  +        }
  +        
  +        boolean out = true;
           String fieldValue = (String)jParams.getRequest().getParameter(
                   buff.append("_").append(theField.getID()).toString());
           buff.delete(0, buff.length());
  @@ -161,9 +173,9 @@
                   // case.
                   fieldValue = I18n.windows1252ToISO(fieldValue);
               }
  -            String oriFieldValue = fieldValue;
  +            final String oriFieldValue = fieldValue;
               
  -            JahiaSite site = 
ServicesRegistry.getInstance().getJahiaSitesService()
  +            final JahiaSite site = 
ServicesRegistry.getInstance().getJahiaSitesService()
               .getSite(theField.getJahiaID());
               
               if ( site.getHtmlCleanup() == 1 ){
  @@ -197,7 +209,7 @@
                   }
               }
               
  -            EngineMessages resultMessages = ServicesRegistry.getInstance().
  +            final EngineMessages resultMessages = 
ServicesRegistry.getInstance().
                       
getHtmlParserService().checkTextParsingErrors(fieldValue);
               if ( !resultMessages.isEmpty() ) {
                   resultMessages.saveMessages(
  @@ -208,15 +220,35 @@
                   fieldValue = oriFieldValue;
                   out = false;
               }
  -            
  +     
           } else {
               fieldValue = theField.getValue();
           }
           fieldValue = JahiaString.getProperStr(fieldValue, 
jParams.getLocale());
           
  -        theField.setValue(fieldValue);
  +        final String values[] = ((JahiaBigTextField)theField).
  +                cleanUpHardCodedLinks(fieldValue, jParams.getRequest(), 
  +                jParams.getLocale().toString());
  +        
  +        theField.setRawValue(values[0]);
  +        theField.setValue(values[1]);
           theField.setObject(null);
           
  +        if (jParams.getRequest().getParameter("ignoreWarnings") == null) {
  +            final EngineMessages warningMessages = 
composeWarningMessages(jParams,
  +                    engineMap, theField, false);
  +            
  +            if ( ! warningMessages.isEmpty() ) {
  +                warningMessages.saveMessages(
  +                        
buff.append(theField.getID()).append(".warning.").toString(),
  +                        jParams.getRequest());
  +                buff.delete(0, buff.length());
  +                logger.debug("There are some warning messages !");
  +                
  +                return false;
  +            }
  +        }
  +        
           return out;
       } // end getFormData
       
  @@ -225,8 +257,8 @@
        */
       private void findAndStoreCrossLinks(ExtractLinksDOMVisitor
               linkExtractionVisitor, ParamBean paramBean, HashMap engineMap) {
  -        Set pageXRefs = new HashSet();
  -        Iterator linkIter = 
linkExtractionVisitor.getDocumentLinks().iterator();
  +        final Set pageXRefs = new HashSet();
  +        final Iterator linkIter = 
linkExtractionVisitor.getDocumentLinks().iterator();
           while (linkIter.hasNext()) {
               String curLink = (String) linkIter.next();
               logger.debug("Found link [" + curLink + "] in bigtext field.");
  @@ -331,33 +363,33 @@
           // 0 for parentAclID in saveField, because field already exists
           //  -> field already has an aclID
           //  -> no need to create a new one
  -        Set pageXRefs = (Set) engineMap.get("pageXRefs");
  +        final Set pageXRefs = (Set) engineMap.get("pageXRefs");
           if ((pageXRefs != null) && (pageXRefs.size() > 0)) {
               
  -            ContentFieldKey fieldKey = new ContentFieldKey(theField.getID());
  +            final ContentFieldKey fieldKey = new 
ContentFieldKey(theField.getID());
               
               // first we remove all the existing references for this object.
  -            ArrayList references = ObjectLink.findByTypeAndLeftObjectKey(
  +            final ArrayList references = 
ObjectLink.findByTypeAndLeftObjectKey(
                       "hardcodedLink", fieldKey);
  -            Iterator refIterator = references.iterator();
  +            final Iterator refIterator = references.iterator();
               while (refIterator.hasNext()) {
  -                ObjectLink curLink = (ObjectLink) refIterator.next();
  +                final ObjectLink curLink = (ObjectLink) refIterator.next();
                   curLink.remove();
               }
               
  -            Iterator pageXRefIter = pageXRefs.iterator();
  +            final Iterator pageXRefIter = pageXRefs.iterator();
               while (pageXRefIter.hasNext()) {
  -                Integer curPageIDInt = (Integer) pageXRefIter.next();
  +                final Integer curPageIDInt = (Integer) pageXRefIter.next();
                   logger.debug("Found reference to page " + curPageIDInt + " 
in this bigtext");
  -                ObjectLink newLink = ObjectLink.createLink(fieldKey,
  +                final ObjectLink newLink = ObjectLink.createLink(fieldKey,
                           new ContentPageKey(curPageIDInt.intValue()), 
"hardcodedLink", 1,
                           new Date(),
                           "root:0", new Date(), "root:0", new HashMap(),
                           new HashMap(), new HashMap());
               }
           }
  -        return theField.save(jParams);
           
  +        return theField.save(jParams);         
       } // end saveData
       
       /**
  @@ -372,14 +404,14 @@
       private boolean composeEngineMap( ParamBean jParams, HashMap engineMap, 
JahiaField theField )
       throws JahiaException {
           
  -        String fieldsEditCallingEngineName = (String) engineMap.get( 
"fieldsEditCallingEngineName" );
  -        FieldsEditHelper feh = (FieldsEditHelper)engineMap.get(
  +        final String fieldsEditCallingEngineName = (String) engineMap.get( 
"fieldsEditCallingEngineName" );
  +        final FieldsEditHelper feh = (FieldsEditHelper)engineMap.get(
                   buff.append(fieldsEditCallingEngineName).append(".").
                   
append(FieldsEditHelperAbstract.FIELDS_EDIT_HELPER_CONTEXTID));
           buff.delete(0, buff.length());
           
           boolean editable = false;
  -        JahiaContainer theContainer = (JahiaContainer)engineMap.get(
  +        final JahiaContainer theContainer = (JahiaContainer)engineMap.get(
                   buff.append(fieldsEditCallingEngineName).
                   append(".theContainer"));
           buff.delete(0, buff.length());
  @@ -388,7 +420,7 @@
               // in case of a field , not a field in a container
               editable = true;
           } else if ( theContainer.getListID()!=0 && feh.getCtnListFieldAcls() 
!= null ){
  -            JahiaBaseACL acl = JahiaEngineTools.getCtnListFieldACL(
  +            final JahiaBaseACL acl = JahiaEngineTools.getCtnListFieldACL(
                       feh.getCtnListFieldAcls(), theField.getID());
               if ( acl != null ){
                   editable = acl.getPermission(jParams.getUser(),
  @@ -398,12 +430,12 @@
               editable = true;
           }
           
  -        String output = "";
  +        initHtmlEditorsHelpers(engineMap, jParams);
           
  -        initHtmlEditorsHelpers(engineMap,jParams);
  +        final String output;
           
           if ( editable ){
  -            JahiaSite site = 
ServicesRegistry.getInstance().getJahiaSitesService()
  +            final JahiaSite site = 
ServicesRegistry.getInstance().getJahiaSitesService()
               .getSite(theField.getJahiaID());
               
               String fieldValue = theField.getValue();
  @@ -422,7 +454,7 @@
                   fieldValue = 
JahiaTextContentTidy.tidyPostProcessing(fieldValue);
               }
               
  -            EngineMessages resultMessages = ServicesRegistry.getInstance().
  +            final EngineMessages resultMessages = 
ServicesRegistry.getInstance().
                       
getHtmlParserService().checkTextParsingErrors(fieldValue);
               if ( !resultMessages.isEmpty() ){
                   resultMessages.saveMessages(String.valueOf(theField.getID()) 
+
  @@ -449,7 +481,6 @@
           return true;
       } // end composeEngineMap
       
  -    
       private void initHtmlEditorsHelpers(HashMap engineMap, ParamBean jParams)
       throws JahiaException {
           
  @@ -462,61 +493,21 @@
                       heViewHelper);
           }
           // define a default Html Editor
  -        String selectedHtmlEditor =
  +        final String selectedHtmlEditor =
                   jParams.getRequest().getParameter("htmlEditor");
           if ( selectedHtmlEditor != null ){
  -            heViewHelper.setDefaultEditorID(selectedHtmlEditor);
  +            heViewHelper.setDefaultEditorID(selectedHtmlEditor); 
           }
           
           // define a default CSS
  -        String selectedCSS =
  +        final String selectedCSS =
                   jParams.getRequest().getParameter("htmlEditorCSS");
           if ( selectedCSS != null ){
  -            heViewHelper.setDefaultCSSID(selectedCSS);
  +            heViewHelper.setDefaultCSSID(selectedCSS); 
           }
       };
       
       /**
  -     * Finds all the ContentObjects which point to the current BigText.
  -     * @param pageID The page nesting the BigText.
  -     * @return A Set of ObjectKey Objects
  -     */
  -    private Set contentObjectsPointingOnPage(int pageID)
  -    throws JahiaException {
  -        ArrayList objectLinks = ObjectLink.findByTypeAndRightObjectKey(
  -                "hardcodedLink", new ContentPageKey(pageID));
  -        Iterator objectLinkIter = objectLinks.iterator();
  -        Set result = new HashSet();
  -        while (objectLinkIter.hasNext()) {
  -            ObjectLink curLink = (ObjectLink) objectLinkIter.next();
  -            ObjectKey objectKey = curLink.getLeftObjectKey();
  -            try {
  -                ContentObject contentObject = (ContentObject) JahiaObject.
  -                        getInstance(objectKey);
  -                if (contentObject != null) {
  -                    if 
(!contentObject.getActiveAndStagingEntryStates().isEmpty()) {
  -                        result.add(objectKey);
  -                    } else {
  -                        logger.debug(
  -                                "No active or staging entries found for 
objectKey=" +
  -                                objectKey +
  -                                ", not displaying deleted or archived 
references");
  -                    }
  -                } else {
  -                    logger.warn(
  -                            "Hardcoded URL link found for object that no 
longer exists:" +
  -                            objectKey + ", removing reference");
  -                    curLink.remove();
  -                }
  -            } catch (ClassNotFoundException cnfe) {
  -                logger.error("Error while loading Jahia object from 
objectKey=" +
  -                        objectKey, cnfe);
  -            }
  -        }
  -        return result;
  -    }
  -    
  -    /**
        * Returns a Collection of the GroupIDs not having Read Access on the 
given page
        */
       public Collection getFieldGroupsNotHavingAccessOnPage(int pageID,
  @@ -524,14 +515,14 @@
           logger.debug("Comparing ACLs of field "+field.getID()+ " and page "+
                   pageID);
           final ContentPage page = ContentPage.getPage(pageID);
  -        final ContentObject aclObject = getFieldACLObject(field, jParams, 
engineMap);
  +        final JahiaBaseACL aclObject = getFieldACLObject(field, jParams, 
engineMap);
           
           // Define an ACLEntry for "Read" Rights
           final JahiaACLEntry aclEntry = new JahiaACLEntry();
           aclEntry.setPermission(JahiaBaseACL.READ_RIGHTS, 
JahiaACLEntry.ACL_YES);
           
           // Get all the groups which can see the field
  -        final Vector fieldACLGroups = 
aclObject.getACL().getGroupnameListNoAdmin(aclEntry);
  +        final Vector fieldACLGroups = 
aclObject.getGroupnameListNoAdmin(aclEntry);
           logger.debug("fieldACLGroups: "+fieldACLGroups);
           
           if (page == null) { return fieldACLGroups; }
  @@ -540,11 +531,11 @@
           final Vector pageACLGroups = 
page.getACL().getGroupnameListNoAdmin(aclEntry);
           logger.debug("pageACLGroups: "+pageACLGroups);
           
  -        Vector result = new Vector(fieldACLGroups.size());
  +        final Vector result = new Vector(fieldACLGroups.size());
           
  -        Iterator ite = fieldACLGroups.iterator();
  +        final Iterator ite = fieldACLGroups.iterator();
           while (ite.hasNext()) {
  -            String groupID = (String)ite.next();
  +           String groupID = (String)ite.next();
               
               if (!pageACLGroups.contains(groupID)) {
                   // get rid of the site ID
  @@ -564,11 +555,12 @@
       /**
        * Returns a String of comma separated GroupIDs not having Read Access 
on the given page
        */
  -    public String getFieldGroupsNotHavingAccessOnPageAsString (int pageID,
  +    public String getFieldGroupsNotHavingAccessOnPageAsString(int pageID,
               JahiaField field, ParamBean jParams, HashMap engineMap) throws 
JahiaException {
           
  -        Collection c = getFieldGroupsNotHavingAccessOnPage(pageID, field, 
jParams, engineMap);
  -        Iterator ite = c.iterator();
  +        final Collection c = getFieldGroupsNotHavingAccessOnPage(pageID, 
field, 
  +                jParams, engineMap);
  +        final Iterator ite = c.iterator();
           
           while (ite.hasNext()) {
               String groupID = (String)ite.next();
  @@ -576,10 +568,10 @@
           }
           
           if (buff.length() > 0) {
  -            buff = buff.deleteCharAt(buff.length() - 1);
  +            buff.deleteCharAt(buff.length() - 1);
           }
           
  -        String result = buff.toString();
  +        final String result = buff.toString();
           buff.delete(0, buff.length());
           return result;
       }
  @@ -587,11 +579,11 @@
       /**
        * Returns the ContentObject of the given field or its closest parent.
        */
  -    private ContentObject getFieldACLObject(JahiaField field, ParamBean 
jParams,
  +    private JahiaBaseACL getFieldACLObject(JahiaField field, ParamBean 
jParams,
               HashMap engineMap) throws JahiaException {
           if (field.getID() <= 0) {  // this means the field has not yet been 
saved
               // fetch the parent container ACL entry instead...
  -            JahiaContainer container = 
(JahiaContainer)engineMap.get("theContainer");
  +            final JahiaContainer container = 
(JahiaContainer)engineMap.get("theContainer");
               logger.debug("Trying to use parent Container ACL instead: ID = " 
+
                       container.getID());
               
  @@ -603,7 +595,7 @@
                   
                   if (ctnListID <= 0) { // this means the containerList is 
empty
                       // fetch the page ACL entry instead
  -                    ContentPage fieldPage = 
ContentPage.getPage(field.getPageID());
  +                    final ContentPage fieldPage = 
ContentPage.getPage(field.getPageID());
                       logger.debug("Trying to use parent ContentPage ACL 
instead: ID = " +
                               field.getPageID());
                       
  @@ -615,20 +607,20 @@
                                   JahiaException.ERROR_SEVERITY);
                       }
                       
  -                    return fieldPage;
  +                    return fieldPage.getACL();
                       
                   } else {
  -                    return 
ServicesRegistry.getInstance().getJahiaContainersService().
  -                            loadContainerList(ctnListID, LoadFlags.ALL, 
jParams).
  -                            getContentContainerList();
  +                    final JahiaContainerList list = 
ServicesRegistry.getInstance().
  +                            
getJahiaContainersService().loadContainerListInfo(ctnListID);
  +                    return list.getACL();
                   }
                   
               } else {
  -                return container.getContentContainer();
  +                return container.getACL();
               }
               
           } else {
  -            return field.getContentField();
  +            return field.getACL();
           }
       }
       
  @@ -646,10 +638,10 @@
        */
       public String getPageState(int pageId, String currentLanguageCode)
       throws JahiaException {
  -        ContentPage page = ContentPage.getPage(pageId);
  +        final ContentPage page = ContentPage.getPage(pageId);
           if (page == null) { return "staging"; }
           
  -        Map languagesStates = 
WorkflowService.getInstance().getLanguagesStates(page);
  +        final Map languagesStates = 
WorkflowService.getInstance().getLanguagesStates(page);
           final Integer state = 
((Integer)languagesStates.get(currentLanguageCode));
           
           if (state == null) { return "staging"; }
  @@ -668,4 +660,127 @@
           }
       }
       
  -} // end BigText_Field
  +    /**
  +     * Composes Warning messages that will be used/displayed by the 
addContainer
  +     * engine when the user clicks on the "OK" button to submit the 
container.
  +     * The warnings are related to hardcoded links in BigTexts. <br/>
  +     * Issues are:
  +     * <ul>
  +     *  <li> User enters a URL to a page that does not exist (brokenLinks, 
404 error) </li>
  +     *  <li> User enters a URL to a page that is in 'staging', 'approval' or 
'markForDelete' state (404 error) </li>
  +     *  <li> User enters a URL to a page, which has less rights than the 
current field (403 error) </li>
  +     * </ul>
  +     *
  +     * @param allLangs If set to True and if the site has more than 1 
language, the method
  +     *                 will generate warning messages for all the active 
languages.
  +     *                 If set to False, the method will only consider the 
current language
  +     *                 of the ParamBean instance.
  +     */
  +    protected EngineMessages composeWarningMessages(final ParamBean jParams, 
final HashMap engineMap,
  +            final JahiaField theField, final boolean allLangs) throws 
JahiaException {
  +        logger.debug("composeWarningMessages... "+theField.getValue());
  +        
  +        final List pids = ((JahiaBigTextField)theField).getInternalLinks();
  +        final EngineMessages result = new EngineMessages();
  +        
  +        if (pids.size() > 0) {
  +            logger.debug("PIDs are: " + pids);
  +            
  +            final Iterator ite = pids.iterator();
  +            final Vector langs;
  +            final String currentLang;
  +            // counter for the "for" loop coming up
  +            final int count;
  +            
  +            if (allLangs) {
  +                langs = jParams.getSite().getLanguageSettings(true);
  +                count = langs.size();
  +                currentLang = null;
  +                
  +            } else {
  +                currentLang = jParams.getLocale().toString();
  +                count = 1;
  +                langs = null;
  +            }
  +            
  +            // For each page referenced in a hardcoded link
  +            while (ite.hasNext()) {
  +                final Integer pid = (Integer)ite.next();
  +                final ContentPage page;
  +                try {
  +                    page = ContentPage.getPage(pid.intValue());
  +                } catch (JahiaPageNotFoundException e) {
  +                    final EngineMessage msg = new EngineMessage(
  +                            
"org.jahia.engines.shared.BigText_Field.notExistingWarning", 
  +                            pid);
  +                    result.add("BigText.notExisting", msg);
  +                    continue;
  +                }
  +                
  +                if (page == null) {
  +                    final EngineMessage msg = new EngineMessage(
  +                            
"org.jahia.engines.shared.BigText_Field.notExistingWarning", 
  +                            pid);
  +                    result.add("BigText.notExisting", msg);
  +                    continue;
  +                }
  +                
  +                final String noAccess = 
getFieldGroupsNotHavingAccessOnPageAsString(
  +                        pid.intValue(), theField, jParams, engineMap);
  +                
  +                if (noAccess != null && noAccess.length() > 0) {
  +                    final String[] values = {pid.toString(), noAccess};
  +                    final EngineMessage msg = new EngineMessage(
  +                            
"org.jahia.engines.shared.BigText_Field.lessAccessWarning",
  +                            values);
  +                    result.add("BigText.staging", msg);
  +                }
  +                
  +                // For each active site language or only the current language
  +                for (int i=0; i < count; i++) {
  +                    final String lang;
  +                    final String state;
  +                    
  +                    if (allLangs) {
  +                        lang = 
((SiteLanguageSettings)langs.elementAt(i)).getCode();
  +                        
  +                    } else {
  +                        lang = currentLang;
  +                    }
  +                    
  +                    state = getPageState(pid.intValue(), lang);
  +                    
  +                    if ("active".equals(state)) { continue; }
  +                    if ("staging".equals(state)) {
  +                        final String[] values = {pid.toString(), lang};
  +                        final EngineMessage msg = new EngineMessage(
  +                                
"org.jahia.engines.shared.BigText_Field.stagingWarning",
  +                                values);
  +                        result.add("BigText.staging", msg);
  +                        
  +                    } else if ("markForDeleted".equals(state)) {
  +                        final EngineMessage msg = new EngineMessage(
  +                                
"org.jahia.engines.shared.BigText_Field.markForDeleteWarning",
  +                                pid);
  +                        result.add("BigText.markForDeleted", msg);
  +                        
  +                    } else if ("waiting".equals(state)) {
  +                        final String[] values = {pid.toString(), lang};
  +                        final EngineMessage msg = new EngineMessage(
  +                                
"org.jahia.engines.shared.BigText_Field.approvalWarning",
  +                                values);
  +                        result.add("BigText.waiting", msg);
  +                        
  +                    } else {
  +                        throw new JahiaException("Unknown state value: 
"+state,
  +                                "Unknown state value: "+state,
  +                                JahiaException.ENGINE_ERROR,
  +                                JahiaException.ERROR_SEVERITY);
  +                    }
  +                }
  +            }
  +        }
  +        logger.debug("Returning "+result.getSize()+ " warning message(s): 
"+result);
  +        return result;
  +    }
  +}
  

Reply via email to