Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

SIL Script causes exceptions

Jan Sękara May 11, 2017

Any idea why this script causes exceptions?

 

string[] lastCommentDetails = getLastComment(key);

if(!isNull(lastCommentDetails)){
    if(userHasAccessToComment(currentUser(), lastCommentDetails["id"])){
       return userFullName(lastCommentDetails["author"]) + ": " + lastCommentDetails["text"];
    }
}
return "";
2017-05-09 10:35:16,596 http-nio-8080-exec-20 ERROR magdalena.kwater 635x85267x2 j8x0q8 192.168.8.16 /secure/AjaxIssueAction.jspa [c.k.j.p.keplercf.silscriptcf.SilScriptCFType] Exception occurred while executing SIL Script for custom field Default Configuration for Last Comment on issue LOG-361
com.keplerrominfo.sil.lang.SILException: Exception while executing SIL program >>SIL Script CF-11201<<: [SIL Error on line: 4, column: 8] Null comment >>NaN<<
	at com.keplerrominfo.refapp.sil.impl.AbstractSimpleLanguageService.interpret(AbstractSimpleLanguageService.java:178)
	at sun.reflect.GeneratedMethodAccessor807.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
.
.
Caused by: com.keplerrominfo.sil.lang.SILException: Null comment >>NaN<<
	at com.keplerrominfo.jira.commons.ivm.routines.perms.UserHasAccessToCommentRoutine.executeRoutine(UserHasAccessToCommentRoutine.java:62)

1 answer

0 votes
Aidan Derossett [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 29, 2017

It would appear that this line of code is being assigned a null value:

string[] lastCommentDetails = getLastComment(key);

Then, as you try to access data from the lastCommentDetails variable (which is null), a null pointer exception is being thrown:

if(userHasAccessToComment(currentUser(), lastCommentDetails["id"]))

Is it possible that the key you pass into the function isn't assosiated with any last comment? In other words, is there a last comment with that given key?

Jan Sękara June 8, 2017

There might be an issue without comment... 

Hanno
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
April 8, 2018

For anyone who run into the same pitfall:

string[] lastCommentDetails = getLastComment(key);

if(!isNull(lastCommentDetails) && size(lastCommentDetails)>0 && lastCommentDetails["id"]!=""){
    if(userHasAccessToComment(currentUser(), lastCommentDetails["id"]) && !isNull(lastCommentDetails["author"])){
       return userFullName(lastCommentDetails["author"]) + ": " + lastCommentDetails["text"];
    }
}
return "";

worked for me.

Suggest an answer

Log in or Sign up to answer