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