Script Runner Error 'Failed type checking'

Francisco Trindade August 11, 2016

I am trying to use script runner to be able to check my scripts for any error/deprecated classes. However for two files simply says that there was an error:

Failed type checking and we don't know why, it's our fault not yours @ line 1, column 1.

 

Is there any possible reason why the it is doing this. I know for a fact there should be some errors indicating deprecated classes since there are a few calls to component manager in there.

UPDATE: Found the following piece of code that is causing the error

Map tmprc = issue.getCustomFieldValue(rcObj) as Map
 if (tmprc) {
 // Root Cause Category field defined but ensure both parts of its cascading field are selected
 rotCausEntered = ((tmprc.get(null) != null) && (tmprc.get("1") != null))
 }

//in particular is is the following bit of code causing the error

(tmprc.get(null) != null)

2 answers

0 votes
JamieA
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.
August 11, 2016

When you say "assembled using make" what does that mean? Can you slim it down to a representative sample?

 

 

Francisco Trindade August 11, 2016

Added a representative sample.

 

0 votes
Jonny Carter
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.
August 11, 2016

It's the it that's causing this, you say? As in the it variable that exists inside of a Groovy closure?

That's one of the known limitations of the static type checker. The types of Closure parameters cannot be inferred.

See https://scriptrunner.adaptavist.com/latest/jira/#_static_type_checking.

JamieA
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.
August 11, 2016

They can be inferred usually, eg in 

issue.subtasks.collect {it.summary }

but not in 

def c = { it.summary }
issue.subtasks.collect(c)

Suggest an answer

Log in or Sign up to answer