Hot Weather Concrete Guide
An error occurred while processing the template.
Java method "com.base22.liferay.journal.search.service.JournalSearchLocalServiceImpl.search(long, long, long, String, String, long, String, String[], String[], String, String, String, String, boolean)" threw an exception when invoked on com.base22.liferay.journal.search.service.JournalSearchLocalServiceImpl object "com.base22.liferay.journal.search.service.JournalSearchLocalServiceImpl@201d36a6"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign relatedDocuments = journalSea...  [in template "20116#20152#159966" at line 266, column 1]
----
1<style> 
2	article p { 
3		color: #000; 
4
5	article hr { 
6		margin: 40px 0; 
7
8	.buttons-wrapper { 
9		border-top: 2px solid #45474e; 
10		border-bottom: 2px solid #45474e; 
11
12	.buttons-container { 
13		padding: 40px 0px;  
14
15	.buttons-container .btn { 
16		border-radius: 0px; 
17		padding: 10px 50px; 
18		color: #FFF; 
19		background-color: #003876; 
20		margin: 30px 0px; 
21
22	.summary__description { 
23		font-size: 24px; 
24		line-height: 36px; 
25		letter-spacing: 0.5px; 
26		font-family: "Roboto",sans-serif; 
27		margin-bottom: 40px; 
28
29	.features-container { 
30			margin: 40px 0px; 
31
32	.buttons-container .btn.contact-us { 
33		background-color: #003876; 
34
35	.buttons-container .btn.get-quote { 
36		background-color: #b32c32; 
37
38	.portlet-journal-content .journal-content-article .features-list table img{ 
39		max-width: 180px; 
40
41	.buttons-container span { 
42		vertical-align: middle; 
43		padding-left: 5px; 
44
45	 
46	.buttons-container .btn i { 
47		background-repeat: no-repeat; 
48		background-size: contain; 
49		height: 32px; 
50		width: 32px; 
51		display: inline-block; 
52		vertical-align: middle; 
53
54	.locate-us i { 
55		background-image: url("/documents/45807659/45840069/icon-map.png/11d8bb8e-f815-32b5-2f85-a56aa78232bb?t=1522186225695"); 
56
57	.get-quote i { 
58		background-image: url("/documents/45807659/45840069/icon-quote.png/e36b8940-2bcb-d2e8-176c-37f5b9b96bfc?t=1522186252612"); 
59		width: 24px; 
60
61	.contact-us i { 
62		background-image: url("/documents/45807659/45840069/icon-contact.png/df1fe862-f3fa-671f-ae94-38b843f76af8?t=1524172877042"); 
63
64	.features-list ul { 
65		list-style: none; 
66		padding: 0; 
67
68	.features-list li { 
69		padding-left: 1.3em; 
70
71	.features-list li:before { 
72		content: "\f00c";  
73		font-family: FontAwesome; 
74		display: inline-block; 
75		margin-left: -1.3em;  
76		width: 1.3em;  
77		font-size: 10px; 
78
79	.features-image img { 
80		max-height: 250px; 
81		width: 100%; 
82
83	.file-download img { 
84		max-height: 35px; 
85		margin-right: 5px; 
86		margin-top: 5px; 
87
88	.locate-us-container { 
89		text-align: right; 
90
91	.get-quote-container { 
92		text-align: center; 
93
94	article .row.content-wrapper { 
95		margin-top: 40px; 
96
97	@media (max-width:767px) { 
98		.locate-us-container, .get-quote-container, .contact-us-container { 
99			text-align: center; 
100
101		.get-quote-container .btn { 
102			margin:  0px;             
103
104		.buttons-container .btn { 
105			width: 100%; 
106			font-size: 20px; 
107
108
109	@media (min-width:768px) and (max-width:1024px){ 
110		.buttons-container .btn { 
111			padding: 10px 40px; 
112
113
114	.file-detail { 
115		margin-bottom: 28px; 
116		height: 120px; 
117		padding: 0 20px 0 0 !important; 
118
119	.attachments-wrapper { 
120		font-size: 15px; 
121
122	.summary__title, .summary__title h1 { 
123		font-size: 40px; 
124		margin-bottom: 40px; 
125		font-weight: bold; 
126
127	.summary__collapsable-title { 
128		margin: 25px 0; 
129		padding: 15px; 
130		color: #ffffff; 
131		font-size: 16px; 
132		letter-spacing: 0.3px; 
133
134	.summary__collapsable-heading { 
135		background-color: #f5f5f5; 
136		padding: 20px 15px; 
137		font-size: 24px; 
138		font-weight: 600; 
139		margin-bottom: 20px !important; 
140
141	.summary__collapsable-content { 
142		padding: 0 30px 30px 30px; 
143
144	.summary__collapsible-arrow, .summary__collapsible-arrow:hover, 
145	.summary__collapsible-arrow:focus { 
146		color: #1a1c20; 
147
148	.summary__collapsable-attachment-title { 
149		font-weight: bold; 
150		font-size: 16px; 
151		margin: 15px 0; 
152
153	.summary__collapsable-attachment-icon { 
154		margin-right: 10px; 
155		height: 40px; 
156
157	.summary__collapsable-attachment-arrow { 
158		top: 2px; 
159		margin-left: 10px; 
160
161	.summary__collapsable-attachment-icon { 
162		width: 31px; 
163		height: 40px; 
164		background-position: -657px -592px; 
165
166	.summary__collapsable-attachment { 
167		display: flex; 
168
169	.summary__collapsable-attachment-name { 
170		margin-top: 10px; 
171
172	.summary__collapsable-image { 
173		background-repeat: no-repeat; 
174		background-size: contain; 
175		height: 100px; 
176		margin-bottom: 20px; 
177		background-position: center; 
178
179	a.b-cemex-button { 
180		color: #000; 
181
182	.file-description { 
183		font-size: 18px; 
184		font-weight: bold; 
185		line-height: 1.56; 
186		color: #1a1c20; 
187		letter-spacing: 0.4px; 
188		margin-bottom: 19px 
189
190	.benefitsAndApplications { 
191		display: table-row; 
192
193	.benefitsAndApplications .section { 
194		display: table-cell; 
195		background-color: #e4e4e4; 
196		padding: 15px; 
197
198	.benefitsAndApplications .separator { 
199		display: table-cell; 
200		width: 20px; 
201		border: none; 
202		background-color: #FFF; 
203
204	.benefitsAndApplications .section h3 { 
205		padding: 10px 0; 
206		background-color: #b6b6b6; 
207		text-align: center; 
208		color: #FFF; 
209
210	.benefitsAndApplications .section h4 { 
211		font-weight: bold; 
212		margin: 15px; 
213
214	@media (max-width:767px) { 
215		.benefitsAndApplications { 
216			display: block; 
217
218		.benefitsAndApplications .section { 
219			display: block; 
220			width: 100%; 
221
222		.benefitsAndApplications .separator { 
223			height: 20px; 
224
225
226	.applications { 
227		display: block; 
228		width: 100%; 
229
230	.applications .section { 
231		background-color: #e4e4e4; 
232		padding: 15px; 
233
234	.applications .section h3 { 
235		padding: 10px 0; 
236		background-color: #b6b6b6; 
237		text-align: center; 
238		color: #FFF; 
239
240	.applications .section h4 { 
241		font-weight: bold; 
242		margin: 15px; 
243
244</style> 
245<#assign journalArticleId = .vars['reserved-article-id'].data> 
246<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
247<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
248<#assign journalArticle = journalArticleLocalService.getArticle(groupId, journalArticleId)/> 
249<#assign articleResource = journalArticle.getArticleResource() /> 
250<#assign articleResourcePK = articleResource.getPrimaryKey() /> 
251<#assign categoryList=assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) > 
252<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
253<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
254<#if categoryList?size gt 0> 
255    <#assign mainCategory = categoryList[0] /> 
256</#if> 
257<#if categoryList?size gt 0> 
258<#assign categories = []/> 
259<#list categoryList as category> 
260	<#assign categories = categories + [category.getCategoryId()?string]/> 
261</#list> 
262<#assign journalSearchService = serviceLocator.findService("com.base22.liferay.journal.search.service.JournalSearchLocalService") /> 
263<#assign userId = themeDisplay.getUserId() /> 
264<#assign plid = themeDisplay.getPlid() /> 
265<#assign structures = ["189596"] /> 
266<#assign relatedDocuments = journalSearchService.search(userId, plid, companyId, "", "", groupId, locale, structures, categories, null, "must", null, null, true) /> 
267</#if> 
268					 
269<article class="container"> 
270	<div class="row" style="margin-top:40px"> 
271		<div class="col-xs-12 col-sm-12 col-md-offset-2 col-md-8 col-lg-offset-2 col-lg-8"> 
272			<#if displayTitle?? && displayTitle.getData()?? && displayTitle.getData()?trim != ""> 
273			<header class="row"> 
274				<div class="summary__title"><h1>${displayTitle.getData()}</h1></div> 
275			</header> 
276			</#if> 
277 
278			<#if summary?? && summary.getData()?? && summary.getData()!=""> 
279			<div class="row summary__intro-container"> 
280					<div class="col-md-12"> 
281						<div class="summary__description"> 
282							${summary.getData()} 
283						</div> 
284					</div> 
285			</div> 
286			</#if> 
287 
288				<div class="row buttons-wrapper"> 
289				<div class="col-xs-12 buttons-container"> 
290					<div class="col-xs-12 col-sm-4 contact-us-container"> 
291						<a href="https://www.cemex.co.uk/technical-product-support-helpline" id="prodSupPhone" class="btn contact-us"> 
292							<i aria-hidden="true"></i> 
293							<span>Product Support</span> 
294						</a> 
295					</div> 
296					<div class="col-xs-12 col-sm-4 get-quote-container"> 
297						<#if overrideGetQuoteURL?? && overrideGetQuoteURL.getData()?? && overrideGetQuoteURL.getData()?trim != ""> 
298							<a href="${overrideGetQuoteURL.getData()}" class="btn get-quote"> 
299								<i aria-hidden="true"></i> 
300								<span>Get a Quote</span> 
301							</a> 
302						<#else> 
303						<a href="/quote-requests-link" class="btn get-quote"> 
304							<i aria-hidden="true"></i> 
305							<span>Get a Quote</span> 
306						</a> 
307						</#if> 
308					</div> 
309					<div class="col-xs-12 col-sm-4 locate-us-container"> 
310						<a href="/find-your-location.aspx<#if mainCategory?? && mainCategory.getDescription()?trim != "">?categoryid=${mainCategory.getDescription(locale)}</#if>" class="btn locate-us"> 
311							<i aria-hidden="true"></i> 
312							<span>Locate Us</span> 
313						</a> 
314					</div> 
315				</div> 
316			</div> 
317 
318			<#if (thumbnail?? && thumbnail.getData()?? && thumbnail.getData()!="") || (features?? && features.getData()?? && features.getData()!="")> 
319			<div class="row features-wrapper"> 
320				<div class="col-xs-12 features-container"> 
321					<#if features?? && features.getData()?? && features.getData()!=""> 
322						<div class="features-list col-xs-12 <#if thumbnail?? && thumbnail.getData()?? && thumbnail.getData()!="">col-sm-6<#else>col-sm-12</#if>"> 
323							${features.getData()} 
324						</div> 
325					</#if> 
326					<#if thumbnail?? && thumbnail.getData()?? && thumbnail.getData()!=""> 
327						<div class="features-image hidden-xs-12 col-sm-6"> 
328							<img src="${thumbnail.getData()}" alt="${displayTitle.getData()}"> 
329						</div>   
330					</#if> 
331				</div> 
332			</div> 
333			</#if> 
334 
335			<#if body?? && body.getData()?? && body.getData()!=""> 
336			<div class="row content-wrapper"> 
337				<div class="col-xs-12 content-container"> 
338					${body.getData()} 
339				</div> 
340			</div> 
341			</#if> 
342 
343			<div class="row"> 
344				<#if section?? && section.getSiblings()?has_content> 
345					<#list section.getSiblings() as cur_section> 
346						 
347						<#assign collapsible_index = cur_section.getName() + cur_section_index /> 
348						 
349						<#assign collapsible_title = "" /> 
350						<#assign cur_attachment = "" /> 
351						<#assign cur_body = "" /> 
352 
353						<#list cur_section.getChildren() as children> 
354						 
355							<#if ( children.getName() == "title" ) > 
356								<#assign collapsible_title = children.getData() /> 
357							</#if> 
358							<#if ( children.getName() == "file" ) > 
359								<#assign cur_attachment = children.getData() /> 
360							</#if> 
361							<#if ( children.getName() == "content" ) > 
362								<#assign cur_body = children.getData() /> 
363							</#if> 
364 
365						</#list> 
366 
367						<#if collapsible_title?trim != ""> 
368						<div class="row summary__collapsable-heading b-collapsable__border-left" style="background-color: white;" > 
369							<div class="col-xs-11"> 
370								<h2>${collapsible_title}</h2> 
371							</div> 
372							<div class="col-xs-1"> 
373								<a class="summary__collapsible-arrow" role="button" 
374								data-toggle="collapse" href="#${collapsible_index}" 
375								aria-expanded="true" aria-controls="${collapsible_index}"> 
376									<span class="glyphicon glyphicon-menu-up" 
377									aria-hidden="true"></span> 
378								</a> 
379							</div> 
380						</div> 
381						</#if> 
382						<div class="collapse row in" id="${collapsible_index}" aria-expanded="true" <#if collapsible_title?trim == "">style="display: block;"</#if>> 
383							<div class="summary__collapsable-content"> 
384 
385							<#if cur_body != "" > 
386								${cur_body} 
387							</#if> 
388 
389							<#if cur_attachment != ""> 
390									<@generateAttachmentElement cur_attachment ""/> 
391							</#if> 
392 
393							</div> 
394						</div> 
395					</#list> 
396				</#if> 
397			</div> 
398		</div> 
399	</div> 
400 
401	<#include "${templatesPath}/46036047" /> 
402 
403	<#if (relatedDocuments?? && relatedDocuments.getResults()?has_content)> 
404		<#if (!hideRelatedDocuemnts?? || !getterUtil.getBoolean(hideRelatedDocuemnts.getData()))> 
405			<div class="row" style="margin-top:40px"> 
406				<div class="col-xs-12 col-sm-12 col-md-offset-2 col-md-8 col-lg-offset-2 col-lg-8"> 
407					<div class="row summary__collapsable-heading b-collapsable__border-left" style="background-color: white;"> 
408						<div class="col-xs-11"> 
409							<h2>Related Documents</h2> 
410						</div> 
411						<div class="col-xs-1"> 
412							<a class="summary__collapsible-arrow" role="button" 
413							data-toggle="collapse" href="#relatedDocuments" 
414							aria-expanded="true" aria-controls="relatedDocuments"> 
415								<span class="glyphicon glyphicon-menu-up" 
416								aria-hidden="true"></span> 
417							</a> 
418						</div> 
419					</div> 
420					<div class="collapse row in" id="relatedDocuments" aria-expanded="true"> 
421						<div class="row attachments-wrapper "> 
422							<#if (attachments?? && attachments.getSiblings()?has_content && attachments.getSiblings()?size > 0) > 
423							<!--attachments ${attachments.getSiblings()?size?string}--> 
424								<#list attachments.getSiblings() as attachment> 
425									<#if attachment?? && attachment.getData()?? && attachment.getData()!=""> 
426										<@generateAttachmentElement attachmentURL=attachment.getData() title=""/> 
427									</#if> 
428								</#list> 
429							</#if> 
430							<#if (!hideRelatedDocuemnts?? || !getterUtil.getBoolean(hideRelatedDocuemnts.getData())) && (relatedDocuments?? && relatedDocuments.getResults()?has_content)> 
431							<!--related docs--> 
432								<#attempt> 
433									<#list relatedDocuments.getResults() as entry> 
434										<#if entry.getValue("attachment")?trim != "" > 
435											<#assign attachment = entry.getValue("attachment")?eval/> 
436											<@generateAttachmentElement attachmentURL="/documents/" + attachment.groupId + "/" + attachment.folderId + "/" + attachment.fileName + "/" + attachment.uuid title=entry.getValue("displayTitle") /> 
437										</#if> 
438									</#list> 
439									 
440								<#recover> 
441									<!-- something went wrong --> 
442								</#attempt> 
443							</#if> 
444						</div> 
445					</div> 
446				</div> 
447			</div> 
448		</#if> 
449	</#if> 
450</article> 
451 
452 
453		 
454<script> 
455	(function(window, $, undefined) { 
456		var onReady = function() { 
457			var $collapsibleArrows = $('.summary__collapsable-heading > div > a'), 
458				$attachmentsContainer = $('.attachments-wrapper'); 
459 
460			$collapsibleArrows.on('click', function(event) { 
461				event.preventDefault(); 
462				var $currentSpan = $(this).find('span'); 
463				var $currentHeading = $(this).closest('div.summary__collapsable-heading'); 
464				if($(this)[0].getAttribute('aria-expanded') == "true"){ 
465					$currentSpan.removeClass(); 
466					$currentSpan.addClass("glyphicon glyphicon-menu-down"); 
467					$currentHeading.css("background-color", "#f5f5f5"); 
468				} else { 
469					$currentSpan.removeClass(); 
470					$currentSpan.addClass("glyphicon glyphicon-menu-up"); 
471					$currentHeading.css("background-color", "white"); 
472
473			}); 
474			var elements = location.href.split("#") 
475			if(elements.length > 1 && $("#" + elements[1]).length > 0){ 
476				setTimeout(function(){ 
477					//$("#" + elements[1]).parent().parent().find("a.summary__collapsible-arrow").trigger('click'); 
478					var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); 
479					if($("#" + elements[1]).offset().top > h) 
480						$("#content-footer-wrapper").scrollTop(($("#" + elements[1]).offset().top-80)); 
481					 
482				},400); 
483				 
484			} else { 
485				//$($collapsibleArrows[0]).trigger('click'); 
486				//if ( $attachmentsContainer.children().length > 0  ) { 
487				//    $attachmentsContainer.removeClass('hidden'); 
488				//} 
489
490		}; 
491		AUI().ready(onReady); 
492	})(window, jQuery); 
493</script> 
494	 
495<#if generateJsonld?? && getterUtil.getBoolean(generateJsonld.getData())> 
496	<script type="application/ld+json"> 
497
498		"@context": "http://schema.org", 
499		"@type": "Product", 
500		"name": "${displayTitle.getData()}", 
501		"image": "<#if thumbnail?? >${thumbnail.getData()}</#if>", 
502		"description": "${summary.getData()?trim}", 
503		"url" : "https://www.cemex.co.uk${themeDisplay.getURLCurrent()}", 
504		<#if categoryList?size gt 1>"brand" : "${categoryList[1].getName()}",</#if> 
505		<#if categoryList?size gt 0>"category" : "${categoryList[0].getName()}",</#if> 
506		<#if isRelatedTo?trim != "">"isRelatedTo" : [${isRelatedTo}],</#if> 
507		"manufacturer" : "CEMEX S.A.B. de C.V." 
508
509	</script> 
510</#if> 
511 
512<#macro generateAttachmentElement attachmentURL title> 
513	<#assign counter = 0 > 
514	<#list attachmentURL?split("/") as chunkURL> 
515		<#if counter == 2> 
516			<#assign groupId = chunkURL?number > 
517		</#if> 
518		<#if counter == 5> 
519			<#if chunkURL?index_of("?") != -1> 
520				<#assign uuId = chunkURL?substring(0, chunkURL?index_of("?")) > 
521			<#else> 
522				<#assign uuId = chunkURL > 
523			</#if> 
524		</#if> 
525		<#assign counter = counter+1 > 
526	</#list> 
527 
528	<#assign fileEntry = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService') />  
529	<#assign file=fileEntry.getFileEntryByUuidAndGroupId(uuId, getterUtil.getLong(groupId)) > 
530	<#assign fileName = file.getTitle()> 
531	<#assign fileDescription = file.getDescription()> 
532 
533	<div class="col-xs-12 col-md-6 file-detail"> 
534		<div class="file-description"><#if fileDescription?trim != "" >${fileDescription}<#else>${title}</#if></div> 
535		<div class="file-download"><img src="/documents/45807659/45840069/pdf-icon.png/e7af5019-3956-922d-161b-0de750ccadd1?t=1519847131363" alt="${fileDescription}"><a href="${attachmentURL}">${fileName}</a></div> 
536	</div> 
537</#macro>