GLOBE Projects

GLOBE Side Navigation

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy40.getUserByEmailAddress(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy40 object "gov.globe.liferay.portal.impl.service.user.GlobeUserLocalServiceWrapper2@55791a1d"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: user = userLocalService.getUserByEmai...  [in template "10132#10165#GLOBE-PROJECT-TEMPLATE" at line 64, column 25]
----
1<#assign 
2    orgArray = [] 
3    userArray = [] 
4    badgeArray = [] 
5    languageArray = [] 
6    protocolArray = [] 
7    reportTypesArray = [] 
8    orgLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.OrganizationLocalService") 
9    userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService") 
10    groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") 
11    userGroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserGroupLocalService") 
12    idLocalService = serviceLocator.findService("gov.globe.util.idlookup.service.IDLookupLocalService") 
13    assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
14    globeMemberId = idLocalService.getId("globe.usergroupid.globe_members") 
15    candidateId = idLocalService.getId("globe.usergroupid.candidates") 
16    studentsId = idLocalService.getId("globe.usergroupid.students") 
17    projectDate = getterUtil.getString(project_date.getData()) 
18    reportType = "" 
19    accountType = "" 
20    videoLink = "" 
21    presentationLink = "" 
22/> 
23 
24<#if (project_authororganization.getSiblings()?has_content)> 
25    <#list project_authororganization.getSiblings() as authOrg > 
26        <#assign 
27            accountTypeArr = stringUtil.split(authOrg.getData(), "@@@") 
28            dataArray = stringUtil.split(accountTypeArr[0], "$$$") 
29        /> 
30        <#if (accountTypeArr?size > 1)> 
31            <#assign 
32                accountType = accountTypeArr[1] 
33            /> 
34        <#else> 
35            <#assign 
36                accountType = "regular" 
37            /> 
38        </#if> 
39         
40        <#if (dataArray?has_content && dataArray?size > 0) > 
41            <#assign orgValue = dataArray[0] /> 
42            <#if (orgValue?is_string && !orgValue?eval?is_number)> 
43                <#assign org = orgLocalService.getOrganization(company.getCompanyId(), orgValue) /> 
44            <#else> 
45                <#assign org = orgLocalService.getOrganization(orgValue?eval) /> 
46            </#if> 
47            <#assign 
48                orgName = org.getName() 
49                group = org.getGroup() 
50                orgURL = group.getFriendlyURL() 
51                orgLink = "<a href='/web${orgURL}'>${orgName}</a>" 
52                orgArray = orgArray + [orgLink] 
53            /> 
54            <#if (dataArray?size > 1) > 
55                <#assign 
56                    userData = dataArray[1] 
57                /> 
58                 
59                <#-- check if name has an email --> 
60                <#if (userData?contains("("))> 
61                    <#assign 
62                        emailAddress = stringUtil.extractLast(userData, "(") 
63                        emailAddress = stringUtil.extractFirst(emailAddress, ")") 
64                        user = userLocalService.getUserByEmailAddress(company.getCompanyId(), emailAddress) 
65                    /> 
66                    <#if user.isActive() > 
67                        <#if (userGroupLocalService.hasUserUserGroup(user.getUserId(), globeMemberId) 
68                                || userGroupLocalService.hasUserUserGroup(user.getUserId(), candidateId) 
69                                || userGroupLocalService.hasUserUserGroup(user.getUserId(), studentsId)) > 
70                            <#assign 
71                                groupUser = groupLocalService.getGroup(user.getGroup().getGroupId()) 
72                                userLink = "<a href='/web${groupUser.getFriendlyURL()}'>${user.getFullName()}</a>" 
73                            /> 
74                        <#else> 
75                            <#assign 
76                                userLink = "${user.getFullName()}" 
77                            /> 
78                        </#if> 
79                    <#else> 
80                        <#assign 
81                            userLink = "${user.getFullName()} (inactive)" 
82                        /> 
83                    </#if> 
84                    <#assign 
85                        userArray = userArray + [userLink] 
86                    /> 
87                 
88                <#else> 
89                    <#-- no email - just show name --> 
90                    <#assign 
91                        userArray = userArray + [userData] 
92                    /> 
93                </#if> 
94                 
95            </#if> 
96        </#if> 
97    </#list> 
98</#if> 
99<#if (project_badges.getChildren()?has_content)> 
100    <#list project_badges.getChildren() as badge > 
101        <#if (badge.getData()?has_content && badge.getData()?eval) > 
102            <#assign badgeArray = badgeArray + [languageUtil.get(locale, badge.getName())] /> 
103        </#if> 
104    </#list> 
105</#if> 
106<#if (project_report_type_2?has_content) > 
107    <#-- this is the NEW way of specifying report types --> 
108    <#list project_report_type_2.getChildren() as reportTypeObj > 
109        <#if (reportTypeObj.getData()?has_content && (reportTypeObj.getName() == "ivss_report" || reportTypeObj.getName() == "mission_earth_report")) > 
110            <#assign reportType = reportTypeObj.getName() /> 
111        </#if> 
112        <#if (reportTypeObj.getData()?has_content && reportTypeObj.getData()?eval) > 
113            <#switch reportTypeObj.getName() > 
114                <#case "ivss_report"> 
115                    <#assign reportTypesArray = reportTypesArray + ["International Virtual Science Symposium Report"] /> 
116                <#break > 
117                <#case "standard_research_report"> 
118                    <#assign reportTypesArray = reportTypesArray + ["Standard Research Report"] /> 
119                <#break > 
120                <#case "mission_earth_report"> 
121                    <#assign reportTypesArray = reportTypesArray + ["Mission Earth Report"] /> 
122                <#break > 
123                <#case "mission_mosquito_report"> 
124                    <#assign reportTypesArray = reportTypesArray + ["Mission Mosquito Report"] /> 
125                <#break > 
126                <#case "student_research_symposia_report"> 
127                    <#assign reportTypesArray = reportTypesArray + ["U.S. Student Research Symposia (SRS)"] /> 
128                <#break > 
129            </#switch> 
130        </#if> 
131    </#list> 
132<#elseif (type_student_report?has_content) > 
133    <#-- this is the OLD way of specifying the report type --> 
134    <#assign 
135        project_report_type = type_student_report.getChild("project_report_type") 
136    /> 
137    <#if (project_report_type.getData() == "science_fair_report") > 
138        <#assign  
139            reportType = "ivss_report" 
140            reportTypesArray = reportTypesArray + ["International Virtual Science Symposium Report"] 
141        /> 
142    <#elseif (project_report_type.getData() == "standard_report") > 
143        <#assign 
144            reportType = "standard_research_report" 
145            reportTypesArray = reportTypesArray + ["Standard Research Report"] 
146        /> 
147    <#elseif (project_report_type.getData() == "mission_earth_report") > 
148        <#assign 
149            reportType = "mission_earth_report" 
150            reportTypesArray = reportTypesArray + ["Mission Earth Report"] 
151        /> 
152    </#if> 
153</#if> 
154 
155<#if report_language?has_content > 
156    <#list report_language.getChildren() as language> 
157        <#if (language.getData()?has_content && language.getData()?eval) > 
158            <#if (language.getName() == "other") > 
159                <#assign otherLanguage = language.getChild("other_string") /> 
160                <#if (otherLanguage.getData()?has_content) > 
161                    <#assign languageArray = languageArray +  
162                        [stringUtil.upperCaseFirstLetter(language.getName()) +  
163                            " (" + otherLanguage.getData() + ")"] /> 
164                </#if> 
165            <#else> 
166                <#assign languageArray = languageArray + [stringUtil.upperCaseFirstLetter(language.getName())] /> 
167            </#if> 
168        </#if> 
169    </#list> 
170</#if> 
171<#if protocol_checkboxes.getData()?has_content > 
172    <#assign protocolIds = stringUtil.split(protocol_checkboxes.getData()) /> 
173    <#list protocolIds as protocolId > 
174        <#if (protocolId?has_content) > 
175            <#assign 
176                category = assetCategoryLocalService.getCategory(protocolId?eval) 
177                protocolArray = protocolArray + [category.getName()] 
178            /> 
179        </#if> 
180    </#list> 
181</#if> 
182 
183<#if (proejct_video_url??) > 
184    <#if (proejct_video_url.getData()?has_content) > 
185        <#assign videoLink = proejct_video_url.getData() /> 
186    </#if> 
187</#if> 
188 
189<#if (project_poster_presentation??) > 
190    <#if (project_poster_presentation.getData()?has_content) > 
191        <#assign presentationLink = project_poster_presentation.getData() /> 
192    </#if> 
193</#if> 
194 
195<#if (project_presentation?has_content) > 
196    <#if project_presentation.getChild("proejct_video_url")??> 
197        <#assign  
198            proejct_video_url = project_presentation.getChild("proejct_video_url") 
199            videoLink = proejct_video_url.getData() 
200        /> 
201    </#if> 
202    <#if project_presentation.getChild("project_poster_presentation")??> 
203        <#assign  
204            project_poster_presentation = project_presentation.getChild("project_poster_presentation") 
205            presentationLink = project_poster_presentation.getData() 
206        /> 
207    </#if> 
208</#if> 
209 
210<#assign 
211    organizations = stringUtil.merge(orgArray, ", ") 
212    users = stringUtil.merge(userArray, ", ") 
213    badges = stringUtil.merge(badgeArray, ", ") 
214    languages = stringUtil.merge(languageArray, ", ") 
215    reportTypes = stringUtil.merge(reportTypesArray, ", ") 
216    protocols = stringUtil.merge(protocolArray, ", ") 
217    projectImageUrl = project_thumbnail_image.getData() 
218/> 
219<#if (validator.isNull(projectImageUrl) || projectImageUrl == "") > 
220    <#assign 
221        projectImageUrl = "/o/gov-globe-main-theme/images/GLOBElogo-2015.png" 
222    /> 
223</#if> 
224 
225<style type="text/css" > 
226    #report-container #report-details-container { 
227        display: flex; 
228
229    #report-container #report-details-container #report-details { 
230        flex: 1; 
231
232    #report-container #report-details-container .report-data-row { 
233        padding-bottom: 7px; 
234
235    #report-container #report-details-container .report-data-row .report-data-title { 
236        font-weight: 700; 
237
238    #report-container #report-details-container .report-data-row .report-data-value { 
239        padding:0px 10px; 
240
241    #report-container #report-image { 
242        width: 225px; 
243        vertical-align: top; 
244
245    #report-container #report-url-description { 
246        margin: 20px 0 0; 
247
248    #report-container #report-url-description #report-description { 
249        margin-top: 20px; 
250
251</style> 
252 
253<div id="report-container"> 
254    <h2 style="padding-bottom:10px;">${project_title.getData()}</h2> 
255    <div id="report-details-container"> 
256        <div id="report-details"> 
257            <div class="report-data-row" ><span class="report-data-title" >Organization(s):</span><span class="report-data-value" >${organizations}</span></div> 
258            <div class="report-data-row" ><span class="report-data-title" >Student(s):</span><span class="report-data-value" >${project_authors.getData()}</span></div> 
259            <div class="report-data-row" ><span class="report-data-title" >Grade Level:</span><span class="report-data-value" >${languageUtil.get(locale,project_grade.getData())}</span></div> 
260             
261            <div class="report-data-row" ><span class="report-data-title" > 
262            <#if (accountType == 'obs_cs' || accountType == 'obs_school')> 
263                Teacher:</span><span class="report-data-value">${users}</span></div> 
264            <#else> 
265                GLOBE Teacher:</span><span class="report-data-value">${users}</span></div> 
266            </#if> 
267 
268            <div class="report-data-row" ><span class="report-data-title" >Contributors:</span><span class="report-data-value" >${project_additional_authors.getData()}</span></div> 
269            <div class="report-data-row" ><span class="report-data-title" >Report Type(s):</span><span class="report-data-value" >${reportTypes}</span></div> 
270            <div class="report-data-row" ><span class="report-data-title" >Protocols:</span><span class="report-data-value" >${protocols}</span></div> 
271 
272            <#if (reportType == "ivss_report" || reportType == "mission_earth_report") > 
273                <#if (videoLink?has_content && videoLink?length > 0) > 
274                    <#if (!stringUtil.startsWith(videoLink, "http://") && !stringUtil.startsWith(videoLink, "https://")) > 
275                        <#assign videoLink = "http://" + videoLink /> 
276                    </#if> 
277                    <div class="report-data-row"> 
278                        <span class="report-data-title">Presentation Video:</span><span  
279                                class="report-data-value" > 
280                            <a href="${videoLink}" target="_blank">View Video</a> 
281                        </span> 
282                    </div> 
283                </#if> 
284 
285 
286 
287                <#if (presentationLink?has_content && presentationLink?length > 0) > 
288                    <div class="report-data-row"> 
289                        <span class="report-data-title">Presentation Poster:</span><span  
290                                class="report-data-value"> 
291                            <a href="${presentationLink}" target="_blank">View Document</a> 
292                        </span> 
293                    </div> 
294                </#if> 
295            </#if> 
296            <#if (reportType == "ivss_report") > 
297                <div class="report-data-row"> 
298                    <span class="report-data-title">Optional Badges:</span><span  
299                            class="report-data-value" >${badges}</span> 
300                </div> 
301            </#if> 
302            <div class="report-data-row" > 
303                <span class="report-data-title" >Language(s):</span><span  
304                        class="report-data-value" >${languages}</span> 
305            </div> 
306            <div class="report-data-row" > 
307                <span class="report-data-title" >Date Submitted:</span><span  
308                        class="report-data-value" >${projectDate}</span> 
309            </div> 
310        </div> 
311        <div id="report-image" > 
312            <img src="${projectImageUrl}" alt="${project_thumbnail_alt_tag.getData()}"> 
313        </div> 
314    </div> 
315    <div id="report-url-description"> 
316        <#if (project_linkto_document.getData() != "")> 
317            <div > 
318                <a href="${project_linkto_document.getData()}" target="_blank"><b>View Research Report</b></a><br> 
319            </div> 
320        </#if> 
321        <div id="report-description"> 
322            ${project_description.getData()} 
323        </div> 
324    </div> 
325</div> 



Comments

In the report, it is stated that "Aerosols have a cooling effect on the climate". It might not be correct to generalize the effect of aerosols. There are different kinds of aerosols. Some aerosols scatter the short-wave radiation from sun giving a cooling effect whereas there are some aerosols which absorb the radiation and in turn impose warming effect. Also, the atmosphere mainly gets heated by the longwave radiation radiated by the earth surface. Presence of aerosols will act as an obstruction for the radiation to escape into space, resulting in heating of the atmosphere. -- Suryakanti Dutta
Dear Suryakanti Dutta,

You're right. There are indeed aerosols which absorb the radiation and aerosols which scatter radation. We mentioned that in the paragraph: What are aerosols? But we forgot to mention it in the next paragraph. You are right that aerosols mostly have a warming effect on the climate. We did have a discussion about this paragraph and we thought we changed it, but we forgot. Thank you for correcting our mistake.

Rozemarijn van den Born
Hi guy! Greeting from Thailand :-)
This is very nice to see you guys are interested in the air pollution problem.
I have some question for you guys, i am just curious

1) The firework celebration was perferomed at night but AOT have to measure during the day. Is that ok to measure the impact of firework on the atmosphere by using Calitoo? What do you think?

2) If i am right, you wrote in the report that there was raining on the day after firework day and also cloudy for a week. Are there still have particle from the firework left? What do you think? either yes or no Why?

Cheers,
Sirilak
Dear Sirilak,

1) Of course it would be better to measure immediately after the firework celebration, but we did not have a measuring instrument which does measure the AOT at night, I think it would be better to take measurements as soon as possible, but because of the weather we were not able to do that.

2) We were not happy with the weather after New year's Eve. it was not raining, but there was a lot of wind. Since it was storming it is presumably that all the aerosols flew away. We also wrote that as a possible source of error in our discussion.

Thanks for commenting on our report,

Rozemarijn