An error occurred while processing the template.
The following has evaluated to null or missing:
==> request.getCookies()  [in template "35001#35028#2420792" at line 11, column 19]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local cookies = request.getCookies()  [in template "35001#35028#2420792" in function "isAlertHidden" at line 11, column 1]
----
1<#compress> 
2<#assign 
3utilname = "com.liferay.portal.kernel.servlet.taglib.ui.BreadcrumbUtil" 
4type_any = staticUtil[utilname].ENTRY_TYPE_ANY 
5breadcrumbEntries = staticUtil[utilname].getBreadcrumbEntries(request, [type_any]) 
6
7 
8<#if serviceLocator?? && entries?has_content> 
9 
10<#function isAlertHidden alertId> 
11<#local cookies = request.getCookies()>  
12    <#list cookies as cookie> 
13        <#if cookie.getValue()?matches(alertId)> 
14        <#return true> 
15        </#if> 
16    </#list> 
17        <#return false> 
18</#function> 
19 
20<#function normalAlert entry> 
21    <#if (alertType?contains('value 1') || alertType?contains('value 2'))><#return true></#if> 
22  <#return false> 
23</#function> 
24 
25<script> 
26function hideAlert(alertId) {  
27  var now = new Date(); 
28  var time = now.getTime(); 
29  var expireTime = time + 1000*36000; 
30  now.setTime(expireTime); 
31  document.cookie = 'alertHidden=' + alertId + ';expires='+now.toUTCString()+';path=/'; 
32
33</script> 
34 
35<style> 
36 
37.portlet:first-of-type{ 
38margin-bottom:0px!important; 
39
40 
41.alert-body { 
42 max-width: 1228px; 
43 width: 100%; 
44 padding: 0 1rem 0 1rem; 
45 margin-top: 0.8rem; 
46
47 
48.alert-body-wide { 
49  background-color:#fc0; 
50  width: 100vw; 
51  position: relative; 
52  left: calc(-51vw + 50.5%); 
53  margin-top: -1.1rem; 
54
55 
56 
57.lexicon-icon-exclamation-full { 
58    height: 1.3em; 
59    width: 1.3em; 
60
61 
62.alert { 
63    margin-bottom: -1.5rem; 
64
65 
66.alert h2 { 
67    margin-top: 0rem; 
68    margin-bottom: 0rem;  
69    color:#FFFFFF; 
70    font-size: 1.25rem; 
71     
72
73 
74.alert-primary { 
75    background-color: #FFFFFF; 
76    border-color: rgb(0 0 0 / 0%); 
77
78     
79.alert-top { 
80    width: 100%; 
81}  
82 
83.red-background { 
84    background-color:#D4351C; 
85
86 
87.bg-black { 
88    background-color:#000000; 
89
90 
91	.alert-primary .close { 
92    color: #000000; 
93    font-size: 2rem; 
94    float:right; 
95    position: inherit; 
96    margin-top: 0.5rem; 
97
98    .alert-text-primary { 
99    color: #000000!important;  
100    border: 6px #000000 solid!important; 
101
102     
103    .alert-text-red { 
104        color: #000000!important;  
105	border: 6px #D4351C solid!important; 
106
107     
108    .alert-text-yellow { 
109    color: #000000!important;  
110	border: 6px #D4351C solid!important; 
111
112     
113	</style>     
114 
115 
116    <#assign journalArticleRetrievalService = serviceLocator.findService("com.placecube.journal.service.JournalArticleRetrievalService") /> 
117         
118	<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleService") /> 
119	     
120	<#assign getterUtil = staticUtil["com.liferay.portal.kernel.util.GetterUtil"] /> 
121	     
122	     
123	<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
124	     
125	<#assign AssetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryService")> 
126	 
127 
128	    <#list entries as curEntry> 
129 
130	        <#assign journalArticle = journalArticleService.getLatestArticle(curEntry.getClassPK()) /> 
131	 
132	        <#assign alertBody = journalArticleRetrievalService.getFieldValue(journalArticle,"alertBody",locale) /> 
133	 
134	        <#assign body = alertBody.get() /> 
135 
136            <#assign alertId = curEntry.entryId?c> 
137                 
138            <#assign alertDismiss = journalArticleRetrievalService.getFieldValue(journalArticle,"select_dismiss",locale) /> 
139         
140            <#assign alertType = journalArticleRetrievalService.getFieldValue(journalArticle,"select_type",locale) /> 
141             
142                        <#if alertType?contains('value 3')> 
143                            <div class="alert alert-primary <#if alertDismiss?contains('value 1')>alert-dismissible</#if> p-0" role="alert"> 
144                                <div class="alert-body-wide d-flex justify-content-center"> 
145                                    <div class="alert-body"> 
146                                    <div class="alert-top alert-warning px-3"> 
147                                        <#if alertDismiss?contains('value 1')> 
148                                            <button type="button" id ="alertClose" onclick="hideAlert(${alertId})" class="close text-dark mt-2"  data-dismiss="alert" aria-label="Close"> 
149                                                <span aria-hidden="true">&times;</span> 
150                                            </button> 
151                                        </#if> 
152                                        <h2 class="text-dark"> 
153                                        <svg class="lexicon-icon lexicon-icon-exclamation-full" viewBox="0 0 512 512"> 
154                                            <path class="lexicon-icon-outline" d="M256,0C114.6,0,0,114.6,0,256s114.6,256,256,256s256-114.6,256-256S397.4,0,256,0z M256,384c-17.7,0-32-14.3-32-32 
155    s14.3-32,32-32s32,14.3,32,32S273.7,384,256,384z M272,288h-32l-16-160h64L272,288z"></path> 
156                                        </svg> Important 
157                                        </h2> 
158                                    </div> 
159                                    <div class="alert-text alert-warning px-3"> 
160                                            <h3 class="mt-2">${curEntry.getTitle(locale)}</h3> 
161                                                <p>${body}</p> 
162                                    </div> 
163                                </div> 
164                            </div> 
165                        </#if> 
166                 
167                <#list curEntry.categories as category> 
168                 
169                    <#assign cat = category.getName()?lower_case /> 
170                    <#assign cat2 = cat?replace("and ", "")/> 
171                    <#assign cat3 = cat2?replace(",", "")/> 
172                        <#list breadcrumbEntries as breadcrumb> 
173                     
174                        <#assign breadcrumbLevel = breadcrumb.getTitle()?lower_case/> 
175                        <#assign breadcrumbLevelLower = breadcrumbLevel?replace(",", "")/> 
176                        <#assign breadcrumbLevelLower2 = breadcrumbLevelLower?replace("and ", "")/> 
177                        <#assign breadcrumbLevelLower3 = breadcrumbLevelLower2?replace(" information", "")/> 
178                         
179                        <#--<p>Breadcrumb level: : ${breadcrumbLevelLower3}</p>--> 
180 
181                            <#if !isAlertHidden(alertId)> 
182 
183                          <#--<p>Alert category : ${cat3}</p>--> 
184 
185                        	    <#if breadcrumbLevelLower3?matches(cat3) || !cat3?has_content> 
186 
187                     
188                                    <#if normalAlert??> 
189                                <div class="alert alert-primary d-flex justify-content-center <#if alertDismiss?contains('value 1')>alert-dismissible</#if> p-0 mb-2" role="alert"> 
190                                    <div class="alert-body"> 
191                                        <div class="alert-top 
192                                            <#if alertType?contains('value 1')>red-background</#if> 
193                                            <#if alertType?contains('value 2')>bg-black</#if> px-3"> 
194                                            <#if alertDismiss?contains('value 1')> 
195                                                <button type="button" id ="alertClose" onclick="hideAlert(${alertId})" class="close text-light"  data-dismiss="alert" aria-label="Close"> 
196                                                    <span aria-hidden="true">&times;</span> 
197                                                </button> 
198                                            </#if> 
199                                            <h2> 
200                                            <svg class="lexicon-icon lexicon-icon-exclamation-full" viewBox="0 0 512 512"> 
201                                                <path class="lexicon-icon-outline" d="M256,0C114.6,0,0,114.6,0,256s114.6,256,256,256s256-114.6,256-256S397.4,0,256,0z M256,384c-17.7,0-32-14.3-32-32 
202        s14.3-32,32-32s32,14.3,32,32S273.7,384,256,384z M272,288h-32l-16-160h64L272,288z"></path> 
203                                            </svg>  
204                                            <#if alertType?contains('value 1')>Warning</#if> 
205                                            <#if alertType?contains('value 2')>Important</#if> 
206                                            </h2> 
207                                        </div> 
208                                        <div class=" 
209                                            <#if alertType?contains('value 1')>alert-text-red</#if> 
210                                            <#if alertType?contains('value 2')>alert-text-primary</#if> px-3"> 
211                                                <h3 class="mt-2">${curEntry.getTitle(locale)}</h3> 
212                                                    <p>${body}</p> 
213                                        </div> 
214                                    </div> 
215                                </div> 
216                                    </#if> 
217                                </#if> 
218                            </#if>   
219                        </#list>   
220                </#list>     
221        </#list>  
222    </#if> 
223</#compress> 

A friendly, local business waste service you can trust.
Dorset Waste Services offer a competitive and reliable range of waste and recycling services to more than 4000 businesses across Dorset which can be tailored to meet your specific requirements.

Do you know your legal obligations as a business with regards to waste?

Check your business waste collection dates