Skip to content

Commit 16fdf4f

Browse files
committed
Feature #13448
Fixing a null pointer exception when searching from a GED component linked to a form template which is no more searchable. Improving result search renderer against the index type.
1 parent dde52b8 commit 16fdf4f

File tree

3 files changed

+33
-37
lines changed

3 files changed

+33
-37
lines changed

almanach/almanach-war/src/main/java/org/silverpeas/components/almanach/ResultSearchRenderer.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,23 +76,18 @@ public class ResultSearchRenderer extends AbstractResultDisplayer implements Res
7676
@Override
7777
public String getResultContent(SearchResultContentVO searchResult) {
7878
String result = "";
79-
8079
// Retrieve the event detail from silverResult
8180
final GlobalSilverResult silverResult = searchResult.getGsr();
82-
final String id = silverResult.isLinked() ? silverResult.getLinkedResourceId() :
83-
silverResult.getId();
81+
final String id = silverResult.isLinked() ? silverResult.getLinkedResourceId() : silverResult.getId();
8482
final CalendarEvent event = CalendarEvent.getById(id);
85-
// Create a SilverpeasTemplate
86-
final SilverpeasTemplate template = getNewTemplate();
87-
this.setCommonAttributes(searchResult, template);
88-
8983
if (event != null) {
84+
// Create a SilverpeasTemplate
85+
final SilverpeasTemplate template = getNewTemplate();
86+
this.setCommonAttributes(searchResult, template);
9087
MultiSilverpeasBundle settings = searchResult.getSettings();
9188
setEventAttributes(event, template, settings);
92-
9389
final String language = DisplayI18NHelper.getDefaultLanguage();
9490
result = template.applyFileTemplate(TEMPLATE_FILENAME + '_' + language);
95-
9691
} else {
9792
SilverLogger.getLogger(this).warn(failureOnGetting("event", silverResult.getId()));
9893
}

kmelia/kmelia-war/src/main/java/org/silverpeas/components/kmelia/control/KmeliaSessionController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3235,7 +3235,7 @@ public Form getXmlFormSearchForPublications() {
32353235
Form form = null;
32363236
try {
32373237
PublicationTemplateImpl pubTemplate = (PublicationTemplateImpl) getTemplateForPublications();
3238-
if (pubTemplate != null) {
3238+
if (pubTemplate != null && pubTemplate.isSearchable()) {
32393239
form = pubTemplate.getSearchForm();
32403240
DataRecord emptyRecord = pubTemplate.getRecordSet().getEmptyRecord();
32413241
form.setData(emptyRecord);

kmelia/kmelia-war/src/main/java/org/silverpeas/components/kmelia/ui/ResultSearchRenderer.java

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,25 @@
2525
import org.silverpeas.core.contribution.content.form.FormException;
2626
import org.silverpeas.core.contribution.content.form.PagesContext;
2727
import org.silverpeas.core.contribution.content.form.RecordSet;
28+
import org.silverpeas.core.contribution.content.wysiwyg.service.WysiwygController;
29+
import org.silverpeas.core.contribution.publication.model.PublicationDetail;
30+
import org.silverpeas.core.contribution.publication.model.PublicationPK;
31+
import org.silverpeas.core.contribution.publication.service.PublicationService;
2832
import org.silverpeas.core.contribution.template.publication.PublicationTemplateException;
2933
import org.silverpeas.core.contribution.template.publication.PublicationTemplateImpl;
3034
import org.silverpeas.core.contribution.template.publication.PublicationTemplateManager;
31-
import org.silverpeas.core.web.search.AbstractResultDisplayer;
32-
import org.silverpeas.core.web.search.SearchResultContentVO;
33-
import org.silverpeas.core.contribution.publication.service.PublicationService;
34-
import org.silverpeas.core.contribution.publication.model.PublicationDetail;
35-
import org.silverpeas.core.contribution.publication.model.PublicationPK;
35+
import org.silverpeas.core.i18n.I18NHelper;
36+
import org.silverpeas.core.node.model.NodeDetail;
3637
import org.silverpeas.core.pdc.pdc.model.GlobalSilverResult;
38+
import org.silverpeas.core.template.SilverpeasTemplate;
39+
import org.silverpeas.core.template.SilverpeasTemplateFactory;
3740
import org.silverpeas.core.ui.DisplayI18NHelper;
3841
import org.silverpeas.core.util.ResourceLocator;
3942
import org.silverpeas.core.util.SettingBundle;
4043
import org.silverpeas.core.util.StringUtil;
41-
import org.silverpeas.core.i18n.I18NHelper;
4244
import org.silverpeas.core.util.logging.SilverLogger;
43-
import org.silverpeas.core.template.SilverpeasTemplate;
44-
import org.silverpeas.core.template.SilverpeasTemplateFactory;
45-
import org.silverpeas.core.contribution.content.wysiwyg.service.WysiwygController;
45+
import org.silverpeas.core.web.search.AbstractResultDisplayer;
46+
import org.silverpeas.core.web.search.SearchResultContentVO;
4647

4748
import javax.inject.Inject;
4849
import javax.inject.Named;
@@ -83,26 +84,26 @@ public class ResultSearchRenderer extends AbstractResultDisplayer {
8384
@Override
8485
public String getResultContent(SearchResultContentVO searchResult) {
8586
String result = "";
86-
8787
// Retrieve the event detail from silverResult
8888
GlobalSilverResult silverResult = searchResult.getGsr();
89-
String id = silverResult.isLinked() ? silverResult.getLinkedResourceId() : silverResult.getId();
90-
PublicationPK pubPK = new PublicationPK(id);
91-
PublicationDetail pubDetail = null;
92-
try {
93-
pubDetail = getPublicationService().getDetail(pubPK);
94-
} catch (Exception e) {
95-
SilverLogger.getLogger(this)
96-
.warn("Unable to load publication {0}: {1}", pubPK.toString(), e.getMessage());
97-
}
98-
// Create a SilverpeasTemplate
99-
SilverpeasTemplate template = getNewTemplate();
100-
this.setCommonAttributes(searchResult, template);
101-
102-
if (pubDetail != null) {
103-
setSpecificAttributes(searchResult, silverResult, pubDetail, template);
104-
result = template.applyFileTemplate(TEMPLATE_FILENAME + '_' + DisplayI18NHelper.
105-
getDefaultLanguage());
89+
if (!NodeDetail.TYPE.equals(silverResult.getType())) {
90+
String id = silverResult.isLinked() ? silverResult.getLinkedResourceId() : silverResult.getId();
91+
PublicationPK pubPK = new PublicationPK(id);
92+
PublicationDetail pubDetail = null;
93+
try {
94+
pubDetail = getPublicationService().getDetail(pubPK);
95+
} catch (Exception e) {
96+
SilverLogger.getLogger(this)
97+
.warn("Unable to load publication {0}: {1}", pubPK.toString(), e.getMessage());
98+
}
99+
if (pubDetail != null) {
100+
// Create a SilverpeasTemplate
101+
SilverpeasTemplate template = getNewTemplate();
102+
this.setCommonAttributes(searchResult, template);
103+
setSpecificAttributes(searchResult, silverResult, pubDetail, template);
104+
result = template.applyFileTemplate(TEMPLATE_FILENAME + '_' + DisplayI18NHelper.
105+
getDefaultLanguage());
106+
}
106107
}
107108
return result;
108109
}

0 commit comments

Comments
 (0)