xlawrence    2005/12/06 09:38:03 CET

  Modified files:
    core/src/java/org/jahia/engines/importexport 
                                                 ManageContentPicker.java 
  Log:
  Quick fix to avoid NumberFormatException in case parameter "searchSite" is 
not present
  
  Revision  Changes    Path
  1.57      +53 -44    
jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java.diff?r1=1.56&r2=1.57&f=h
  
  
  
  Index: ManageContentPicker.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- ManageContentPicker.java  2 Dec 2005 17:58:30 -0000       1.56
  +++ ManageContentPicker.java  6 Dec 2005 08:38:02 -0000       1.57
  @@ -10,14 +10,12 @@
   import org.jahia.data.search.JahiaSearchHitInterface;
   import org.jahia.data.search.JahiaSearchResult;
   import org.jahia.engines.JahiaEngine;
  -import org.jahia.engines.search.Search_Engine;
   import org.jahia.exceptions.JahiaException;
   import org.jahia.exceptions.JahiaSessionExpirationException;
   import org.jahia.params.ParamBean;
   import org.jahia.params.ProcessingContext;
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.services.containers.ContentContainer;
  -import org.jahia.services.containers.ContentContainerList;
   import org.jahia.services.fields.ContentField;
   import org.jahia.services.fields.ContentPageField;
   import org.jahia.services.fields.ContentSmallTextField;
  @@ -31,7 +29,6 @@
   import org.jahia.services.sites.JahiaSitesService;
   import org.jahia.services.sites.SiteLanguageSettings;
   import org.jahia.services.version.EntryLoadRequest;
  -import org.jahia.utils.JahiaTools;
   import org.quartz.JobDataMap;
   import org.quartz.JobDetail;
   
  @@ -44,10 +41,10 @@
    *
    * @author Thomas Draier, joe Pillot
    * @author ${User}
  - * @version $Id: ManageContentPicker.java,v 1.56 2005/12/02 17:58:30 dpillot 
Exp $
  + * @version $Id: ManageContentPicker.java,v 1.57 2005/12/06 08:38:02 
xlawrence Exp $
    */
   public class ManageContentPicker {
  -    private static org.apache.log4j.Logger logger =
  +    private static final org.apache.log4j.Logger logger =
               org.apache.log4j.Logger.getLogger(ManageContentPicker.class);
   
       private static ManageContentPicker instance = null;
  @@ -57,7 +54,7 @@
       private static JahiaSearchService searchService;
       private static JahiaSitesService siteService;
       //private static MetadataService metaservice;
  -    private boolean ascOrder = true;
  +    //private boolean ascOrder = true;
   
       private ManageContentPicker() {
       }
  @@ -178,7 +175,7 @@
                   jobDataMap = jobDetail.getJobDataMap();
                   jobDataMap.put("source", skey);
                   jobDataMap.put("dest", dkey);
  -                jobDataMap.put("link", new Boolean("link".equals(copytype)));
  +                jobDataMap.put("link", 
Boolean.valueOf("link".equals(copytype)));
                   SchedulerService schedulerServ = 
ServicesRegistry.getInstance().getSchedulerService();
                   schedulerServ.scheduleJobNow(jobDetail);
   
  @@ -208,9 +205,9 @@
   
           //get all parameters
           // main query
  -        String searchString = (String) 
processingContext.getParameter("query");
  -        String smode = (String) processingContext.getParameter("condition1");
  -        String query_concat_mode = (String) 
processingContext.getParameter("concat");
  +        String searchString = processingContext.getParameter("query");
  +        String smode = processingContext.getParameter("condition1");
  +        String query_concat_mode = processingContext.getParameter("concat");
   
           // checking NPE & emptyness of important params
           if (searchString == null) searchString = "";
  @@ -251,7 +248,7 @@
           String query43 = processingContext.getParameter("query43");
           String query44 = processingContext.getParameter("condition44");
           String query444 = processingContext.getParameter("condition444");
  -        String smode4 = (String) 
processingContext.getParameter("condition4");
  +        String smode4 = processingContext.getParameter("condition4");
   
           //check NPE on alt queries and alt modes
           //if(query2==null) query2="";
  @@ -281,7 +278,7 @@
           engineMap.put("smode4", smode4);
   
           //order
  -        String orderBy = (String) 
processingContext.getParameter("orderby");//orderby parameter
  +        String orderBy = processingContext.getParameter("orderby");//orderby 
parameter
           if (orderBy == null || orderBy.equalsIgnoreCase("")) {
               orderBy = "score";
               logger.warn("order set on default score");
  @@ -336,7 +333,7 @@
           if (!query23.equalsIgnoreCase("")) {
   
               query2 = "jahia.page_id:" + NumberPadding.pad(query23);
  -            isPID=true;
  +            isPID = true;
   
           }
           engineMap.put("condition24", query24);
  @@ -379,10 +376,10 @@
           if (!query33.equalsIgnoreCase("")) {
               engineMap.put("query33", query33);
               query3 = "jahia.page_id:" + NumberPadding.pad(query33);
  -            isPID=true;
  +            isPID = true;
           }
           engineMap.put("condition34", query34);
  -            engineMap.put("condition344", query344);
  +        engineMap.put("condition344", query344);
           if (!query344.equalsIgnoreCase("-")) {
   
               int valscope = 0;
  @@ -416,14 +413,14 @@
   
               query4 = "jahia.metadata_keywords:" + query42;
           }
  -         engineMap.put("query43", query43);
  +        engineMap.put("query43", query43);
           if (!query43.equalsIgnoreCase("")) {
   
               query4 = "jahia.page_id:" + NumberPadding.pad(query43);
  -            isPID=true;
  +            isPID = true;
           }
           engineMap.put("condition44", query44);
  -            engineMap.put("condition444", query444);
  +        engineMap.put("condition444", query444);
           if (!query444.equalsIgnoreCase("-")) {
   
               int valscope = 0;
  @@ -446,7 +443,7 @@
           logger.debug("query4:" + query4 + " cond4:" + smode4);
   
           //domain scope
  -        String scope = (String) processingContext.getParameter("searchSite");
  +        String scope = processingContext.getParameter("searchSite");
           if (scope == null && siteService.getNbSites() > 1) scope = "all"; 
//default
           else if (siteService.getNbSites() == 1) {
               int siteid = ((JahiaSite) 
siteService.getSites().nextElement()).getID();
  @@ -493,7 +490,7 @@
           engineMap.put("searchSite", scope);             //virtual site scope
   
           //previous results (maybe we can store the history of results?)
  -        JahiaSearchResult searchResults = (JahiaSearchResult) 
engineMap.get("searchResults");
  +        JahiaSearchResult searchResults;
   
           // we search only if we have smtg to search
           if (!"".equals(searchString)) {
  @@ -525,12 +522,12 @@
               */
               //languages
               ArrayList languageCodes = new ArrayList();
  -            String[] languageCodesVal = 
processingContext.getParameterValues("searchlang");
  +            //String[] languageCodesVal = 
processingContext.getParameterValues("searchlang");
   
               // languages available on current site
               Vector langs = 
processingContext.getSite().getLanguageSettings(true);
               logger.debug("sitelangages number:" + langs.size());
  -            for (Iterator i = langs.iterator(); i.hasNext();) {
  +            for (final Iterator i = langs.iterator(); i.hasNext();) {
                   logger.debug("" + ((SiteLanguageSettings) 
i.next()).getCode());
               }
               /*
  @@ -556,16 +553,16 @@
   
                   while (sites.hasMoreElements()) {
                       site = (JahiaSite) sites.nextElement();
  -                    if(isPID){
  +                    if (isPID) {
   
  -                    // to add all languages available in site in the case of 
pid present in queries
  -                    Vector v = site.getLanguageSettings(true);
  -                    for (Iterator i = v.iterator(); i.hasNext();) {
  -                        Object o = i.next();
  -                        String langCode = ((SiteLanguageSettings) 
o).getCode();
  -                        if (langCode != null && 
!languageCodes.contains(langCode)) languageCodes.add(langCode);
  +                        // to add all languages available in site in the 
case of pid present in queries
  +                        Vector v = site.getLanguageSettings(true);
  +                        for (Iterator i = v.iterator(); i.hasNext();) {
  +                            Object o = i.next();
  +                            String langCode = ((SiteLanguageSettings) 
o).getCode();
  +                            if (langCode != null && 
!languageCodes.contains(langCode)) languageCodes.add(langCode);
   
  -                    }
  +                        }
                       }
   
                       SearchHandler h = 
searchService.getSearchHandler(site.getID());
  @@ -583,17 +580,25 @@
                   //just one domain search
   
                   // we get the languagecode from this site
  -                //todo these could be set in user settings?
  -                site = 
siteService.getSite(Integer.parseInt(processingContext.getParameter("searchSite")));
  +                //todo these could be set in user settings
  +                final String searchSite = 
processingContext.getParameter("searchSite");
  +                final int searchSiteID;
  +                if (searchSite == null || searchSite.length() == 0) {
  +                    searchSiteID = processingContext.getSiteID();
  +                } else {
  +                    searchSiteID = Integer.parseInt(searchSite);
  +                }
  +                site = siteService.getSite(searchSiteID);
  +
                   // to add all languages available in this site
                   Vector v = site.getLanguageSettings(true);
  -                for (Iterator i = v.iterator(); i.hasNext();) {
  +                for (final Iterator i = v.iterator(); i.hasNext();) {
                       Object o = i.next();
                       String langCode = ((SiteLanguageSettings) o).getCode();
                       if (langCode != null && 
!languageCodes.contains(langCode)) languageCodes.add(langCode);
   
                   }
  -                searchResults = 
searchService.search(Integer.parseInt(processingContext.getParameter("searchSite")),
  +                searchResults = searchService.search(searchSiteID,
                           searchString, processingContext, languageCodes, 
resultBuilder);
               }
               logger.debug("searching in what languages:" + languageCodes);
  @@ -606,7 +611,7 @@
               Map results = new HashMap();
   
               // destination object cdk & cdfn
  -            ContainerDefinitionKey cdk = (ContainerDefinitionKey) 
((ContentContainerList) object).getDefinitionKey(null);
  +            ContainerDefinitionKey cdk = (ContainerDefinitionKey) 
(object).getDefinitionKey(null);
               JahiaContainerDefinition thisJcd = (JahiaContainerDefinition) 
ContentObject.getInstance(cdk);
               logger.debug("destination cdk:" + cdk + " cdfn:" + 
thisJcd.getName());
   
  @@ -614,7 +619,7 @@
               EntryLoadRequest lr = new 
EntryLoadRequest(EntryLoadRequest.ACTIVE_WORKFLOW_STATE, 0, 
processingContext.getLocaleList());
   
               // big loop to test the compatibility of container type
  -            for (Iterator iterator = searchResults.results().iterator(); 
iterator.hasNext();) {
  +            for (final Iterator iterator = 
searchResults.results().iterator(); iterator.hasNext();) {
                   JahiaSearchHit jahiaSearchHit = (JahiaSearchHit) 
iterator.next();
                   ContentObject current = 
ContentContainer.getContainer(Integer.parseInt(jahiaSearchHit.getId()));
                   int score = jahiaSearchHit.getScore();
  @@ -647,13 +652,13 @@
                                   String key = 
Integer.toString(current.getID());
                                   int pageID = contentContainer.getPageID();
                                   //used to try to create an url
  -                                int siteID = contentContainer.getSiteID();
  +                                int siteID;
                                   int type = 
JahiaSearchHitInterface.UNDEFINED_TYPE;
                                   logger.debug("found compatible?" + key);
                                   String t = key;
                                   List l = 
getChildFieldsOnly(contentContainer.getChilds(null, lr, null));
   
  -                                for (Iterator iterator1 = l.iterator(); 
iterator1.hasNext();) {
  +                                for (final Iterator iterator1 = 
l.iterator(); iterator1.hasNext();) {
                                       ContentField contentField = 
(ContentField) iterator1.next();
                                       String value = 
contentField.getValue(processingContext, lr);
                                       if (value != null && 
!value.trim().equals("") && !value.equals("<empty>")) {
  @@ -665,7 +670,7 @@
                                   }
   
                                   // case the content object is text
  -                                for (Iterator iterator1 = l.iterator(); 
iterator1.hasNext();) {
  +                                for (final Iterator iterator1 = 
l.iterator(); iterator1.hasNext();) {
                                       ContentField contentField = 
(ContentField) iterator1.next();
                                       if (contentField instanceof 
ContentSmallTextField) {
                                           String value = 
contentField.getValue(processingContext, lr);
  @@ -681,7 +686,7 @@
                                   }
   
                                   //looping list of childs to check page type?
  -                                for (Iterator iterator1 = l.iterator(); 
iterator1.hasNext();) {
  +                                for (final Iterator iterator1 = 
l.iterator(); iterator1.hasNext();) {
                                       ContentField contentField = 
(ContentField) iterator1.next();
                                       if (contentField instanceof 
ContentPageField) {
                                           ContentPage contentPage = 
((ContentPageField) contentField).getContentPage(lr);
  @@ -690,7 +695,7 @@
                                           t = 
contentPage.getTitle(EntryLoadRequest.STAGED);
                                           // check for some titl in some 
languages
                                           if (t == null) for (Iterator it = 
languageCodes.iterator(); it.hasNext();) {
  -                                            t = (String) 
contentPage.getTitles(true).get((String) it.next());
  +                                            t = (String) 
contentPage.getTitles(true).get(it.next());
                                               if (t != null) break;
                                           }
   
  @@ -755,7 +760,6 @@
                   }
               }
   
  -
               //sorting
               orderBy(orderBy, engineMap, myResults, results, true);
   
  @@ -768,7 +772,7 @@
               return results;
           }
           Iterator iterator = childs.iterator();
  -        ContentObject contentObject = null;
  +        ContentObject contentObject;
           while (iterator.hasNext()) {
               contentObject = (ContentObject) iterator.next();
               if (contentObject instanceof ContentField) {
  @@ -873,7 +877,7 @@
                   // possibly metadata could be null
                   if (metadata1 == null && metadata2 != null) return (-1 * o);
                   if (metadata2 == null && metadata1 != null) return (1 * o);
  -                if (metadata2 == null && metadata1 == null) return 0;
  +                if (metadata2 == null) return 0;
                   //comparaison
                   if (metadata1.equalsIgnoreCase(metadata2)) {
                       //equality case (use the score)
  @@ -899,6 +903,9 @@
   }
   /**
    * $Log: ManageContentPicker.java,v $
  + * Revision 1.57  2005/12/06 08:38:02  xlawrence
  + * Quick fix to avoid NumberFormatException in case parameter "searchSite" 
is not present
  + *
    * Revision 1.56  2005/12/02 17:58:30  dpillot
    * misc bugs:fix pid bug, queries persistence bug
    * added ability to querying number as jahia_pid
  

Reply via email to