An error occurred while processing the template.
The following has evaluated to null or missing:
==> journalArticleLocalService.fetchLatestArticleByUrlTitle(themeDisplay.getSiteGroupId(), urlTitle, 0)  [in template "10154#10194#50621052" at line 40, column 35]

----
Tip: If the failing expression is known to be 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: #assign journalArticle = journalArtic...  [in template "10154#10194#50621052" at line 40, column 9]
----
1<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" /> 
2<style> 
3body {overflow-x: hidden;} 
4h2.portlet-title-text {display: none;} 
5#wrapper {padding-top: 0;} 
6.ifac .content-head {margin-top: -20px;} 
7.ifac .content-head__inner {padding-top: 35px; padding-bottom: 20px;} 
8.ifac .content-wrapper {margin-bottom: -10px;} 
9.ifac h1, .ifac h2, .ifac h3, .ifac h4, .ifac h5 {font-weight: bold;} 
10.ifac .tagged-as {background-color: #ffd923;} 
11.ifac .stories-detail .story__media img {margin-bottom: 0; width: 100%;} 
12.video-wrapper {position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0; margin-bottom: 40px;} 
13.video-wrapper iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%;} 
14.ifac .error-section {border: 1px solid #ddd; border-radius: 4px; display: flex; margin: 20px auto; width: 100%;} 
15.ifac .error-section h2 {font-size: 1.75em; margin-bottom: 20px;} 
16.ifac .error-section p {margin-bottom: 0;} 
17.ifac .error-section i {color: #d00; font-family: FontAwesome; font-size: 35px;} 
18.ifac .error-section .error-image {background: #f5f5f5; padding: 20px;} 
19.ifac .error-section .error-body {padding: 20px;} 
20.ifac .stories-detail .story__media {width: 100%;} 
21.ifac .stories-detail .story__content {margin: 20px 25px 30px;} 
22@media (min-width: 700px) { 
23    .ifac .content-head__inner {padding-top: 60px;} 
24    .ifac .stories-detail .story__media {width: 40%;} 
25    .ifac .stories-detail .story__content {width: 60%;} 
26
27@media (min-width: 1025px) { 
28    .ifac .content-head__inner {padding-top: 75px; padding-bottom: 40px;} 
29    .ifac .error-section {margin: 80px auto; width: 880px;} 
30    .ifac .stories-detail .story__content {margin: 60px 0 60px 50px;} 
31
32</style> 
33<div class="ifac"> 
34 
35 
36  
37<#--<#attempt>--> 
38	<#assign urlTitle = request.getParameter("id")!"" /> 
39    <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
40	<#assign journalArticle = journalArticleLocalService.fetchLatestArticleByUrlTitle(themeDisplay.getSiteGroupId(), urlTitle, 0) /> 
41 
42	<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
43    <#assign asset = assetEntryLocalService.getEntry(themeDisplay.getScopeGroupId(), journalArticle.getArticleResourceUuid()) /> 
44    <#assign document = saxReaderUtil.read(journalArticle.getContent()) /> 
45    <#assign rootElement = document.getRootElement() /> 
46     
47	<#assign storyName = "" /> 
48	<#assign storySubtitle = "" /> 
49	<#assign storyDegree = "" /> 
50	<#assign storyMajor = "" /> 
51	<#assign storMajorUrl = "" /> 
52	<#assign storyGraduationYear = "" /> 
53	<#assign storyJobTitle = "" /> 
54	<#assign storyEmployer = "" /> 
55	<#assign storyImage = "" /> 
56	<#assign storyVideoUrl = "" /> 
57	<#assign storyQuote = "" /> 
58	<#assign storyBody = "" /> 
59 
60	<#list rootElement.elements() as dynamicElement> 
61		<#if "Name" == dynamicElement.attributeValue("name")> 
62			<#assign storyName = dynamicElement.element("dynamic-content").getText() /> 
63		</#if> 
64		<#if "Subtitle" == dynamicElement.attributeValue("name")> 
65			<#assign storySubtitle = dynamicElement.element("dynamic-content").getText() /> 
66		</#if> 
67		<#if "Degree" == dynamicElement.attributeValue("name")> 
68			<#assign storyDegree = dynamicElement.element("dynamic-content").getText() /> 
69		</#if> 
70		<#if "Major" == dynamicElement.attributeValue("name")> 
71			<#assign storyMajor = dynamicElement.element("dynamic-content").getText() /> 
72		</#if> 
73		<#if "MajorURL" == dynamicElement.attributeValue("name")> 
74			<#assign storyMajorUrl = dynamicElement.element("dynamic-content").getText() /> 
75		</#if> 
76		<#if "GraduationYear" == dynamicElement.attributeValue("name")> 
77			<#assign storyGraduationYear = dynamicElement.element("dynamic-content").getText() /> 
78		</#if> 
79		<#if "JobTitle" == dynamicElement.attributeValue("name")> 
80			<#assign storyJobTitle = dynamicElement.element("dynamic-content").getText() /> 
81		</#if> 
82		<#if "Employer" == dynamicElement.attributeValue("name")> 
83			<#assign storyEmployer = dynamicElement.element("dynamic-content").getText() /> 
84		</#if> 
85		<#if "Image" == dynamicElement.attributeValue("name")> 
86			<#assign storyImage = dynamicElement.element("dynamic-content").getText() /> 
87		</#if> 
88		<#if "VideoUrl" == dynamicElement.attributeValue("name")> 
89			<#assign storyVideoUrl = dynamicElement.element("dynamic-content").getText() /> 
90		</#if> 
91		<#if "Quote" == dynamicElement.attributeValue("name")> 
92			<#assign storyQuote = dynamicElement.element("dynamic-content").getText() /> 
93		</#if> 
94		<#if "Body" == dynamicElement.attributeValue("name")> 
95			<#assign storyBody = dynamicElement.element("dynamic-content").getText() /> 
96		</#if> 
97	</#list> 
98 
99    <script> 
100    document.title = "${storyName!"-"} - Vincennes University"; 
101    </script> 
102     
103 
104    <div class="content-head"> 
105    	<div class="content-head__inner"> 
106    		<div class="content-head__header"> 
107    			<h1>${storyName}</h1> 
108    		</div> 
109    		<div class="content-head__summary"> 
110    			<p>${storySubtitle}</p> 
111    		</div> 
112    	</div> 
113    </div> 
114     
115    <div class="content-wrapper"> 
116    	<div class="stories-detail"> 
117    		<div class="story"> 
118    			<div class="story__inner"> 
119    			    <#if storyImage?has_content> 
120        				<div class="story__media"> 
121        					<picture> 
122        					    <source srcset="${storyImage}" media="(min-width: 1024px)"> 
123                                <source srcset="${storyImage}" media="(min-width: 700px)"> 
124        						<img srcset="${storyImage}" src="${storyImage}" alt="${storyName}"> 
125        					</picture> 
126        				</div> 
127        			</#if> 
128    			<div class="story__content"> 
129    			<#if storyDegree?has_content> 
130                  <div> 
131                    <p style="margin-bottom: 10px;">Degree: ${storyDegree}</p> 
132                  </div> 
133                </#if> 
134                 
135    			<#if storyMajorUrl?has_content> 
136    			  <div> 
137                    <p style="margin-bottom: 10px;">Major: <a href="${storyMajorUrl}">${storyMajor}</a></p> 
138                  </div> 
139                </#if> 
140                 
141                <#if storyGraduationYear?has_content> 
142                  <div> 
143                    <p style="margin-bottom: 10px;">Graduation Year: ${storyGraduationYear}</p> 
144                  </div> 
145                </#if> 
146                   
147                <#if storyJobTitle?has_content> 
148                  <div> 
149                    <p style="margin-bottom: 10px;">Role: ${storyJobTitle}</p> 
150                  </div> 
151                </#if> 
152                 
153                <#if storyEmployer?has_content> 
154                  <div> 
155                    <p>Employer: ${storyEmployer}</p> 
156                  </div> 
157                </#if> 
158    					<div class="story__quote"> 
159    						<p>${storyQuote}</p> 
160    					</div> 
161    				</div> 
162    			</div> 
163    		</div> 
164    	</div> 
165     
166    	<div class="wysiwyg-content"> 
167    	    <#if storyVideoUrl?has_content> 
168    	        <div class="video-wrapper"> 
169    	            <iframe src="${storyVideoUrl}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 
170                </div> 
171    	    </#if> 
172    	     
173    		${storyBody} 
174    	</div> 
175     
176    <#if asset.getTags()?has_content> 
177             
178    	<div class="tagged-as"> 
179    		<div class="tagged-as__inner"> 
180    			<div class="tagged-as__tags"> 
181    				<div class="tagged-as__title"> 
182    					<h2>Tagged As</h2> 
183    				</div> 
184     
185    				<ul class="tagged-as__list"> 
186    				    <#list asset.getTags() as tag> 
187        					<li class="tagged-as__item"> 
188        						<div class="tagged-as__button"> 
189        							<a class="cta--button" href="#">${tag.name}</a> 
190        						</div> 
191        					</li> 
192        				</#list> 
193    				</ul> 
194    			</div> 
195    		</div> 
196    	</div> 
197        	 
198     
199    </div> 
200    </#if> 
201 
202<#--<#recover> 
203 
204    <div class="error-section"> 
205		<div class="error-image"> 
206			<i class="fa fa-times-circle"></i> 
207		</div> 
208		<div class="error-body"> 
209			<h2>Error</h2> 
210			<p>An unexpected error occurred. Please try your request again later.</p> 
211		</div> 
212	</div> 
213	 
214</#attempt>--> 
215 
216</div>