# 'm having trouble with PROBLEM CHILD GITHUB CODE

**URL:** <https://discuss.elastic.co/t/m-having-trouble-with-problem-child-github-code/276649>\
**Category:** Elasticsearch\
**Tags:** painless\
**Created:** [June 22, 2021, 12:16pm UTC](https://discuss.elastic.co/t/m-having-trouble-with-problem-child-github-code/276649 "2021-06-22T12:16:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![legend](https://avatars.discourse-cdn.com/v4/letter/l/53a042/32.png) [@legend](https://discuss.elastic.co/u/legend)\
**Post date:** [June 22, 2021, 12:16pm UTC](https://discuss.elastic.co/t/m-having-trouble-with-problem-child-github-code/276649/1 "2021-06-22T12:16:09Z")

</div>

\</\> POST _scripts/painless/execute  
{  
"script": {  
"lang": "painless",  
"source": """  
String nGramAtPosition(String field, int fieldcount, int n) {  
if (fieldcount+n\>field.length()) {  
return ''  
}  
else  
{  
return field.substring(fieldcount, fieldcount+n)  
}  
}  
String fieldtext = ctx[params.field];  
if(fieldtext.length()\>=params.max\_length) {  
fieldtext = fieldtext.substring(0, params.max\_length);  
}  
else {  
fieldtext = fieldtext;  
}  
for (int i=0;i\<(fieldtext.length());i++) {  
ctx[params.field+''+Integer.toString(params.ngram\_count)+'-gram\_feature'+Integer.toString(i)] = nGramAtPosition(fieldtext, i, params.ngram\_count)  
}  
"""  
}  
}  
\</ \>  
\</\> I receive  
{  
"error" : {  
"root\_cause" : [  
{  
"type" : "script\_exception",  
"reason" : "compile error",  
"script\_stack" : [  
"... }\r\n}\r\nString fieldtext = ctx[params.field];\r\nif(fi ...",  
" ^---- HERE"  
],  
"script" : "\r\nString nGramAtPosition(String field, int fieldcount, int n) {\r\n if (fieldcount+n\>field.length()) {\r\n return ''\r\n }\r\n else \r\n{\r\n return field.substring(fieldcount, fieldcount+n)\r\n}\r\n}\r\nString fieldtext = ctx[params.field];\r\nif(fieldtext.length()\>=params.max\_length) {\r\n fieldtext = fieldtext.substring(0, params.max\_length);\r\n}\r\nelse {\r\n fieldtext = fieldtext;\r\n}\r\nfor (int i=0;i\<(fieldtext.length());i++) {\r\n ctx[params.field+'_'+Integer.toString(params.ngram\_count)+'-gram\_feature'+Integer.toString(i)] = nGramAtPosition(fieldtext, i, params.ngram\_count)\r\n}\r\n ",  
"lang" : "painless",  
"position" : {  
"offset" : 212,  
"start" : 187,  
"end" : 237  
}  
}  
],  
"type" : "script\_exception",  
"reason" : "compile error",  
"script\_stack" : [  
"... }\r\n}\r\nString fieldtext = ctx[params.field];\r\nif(fi ...",  
" ^---- HERE"  
],  
"script" : "\r\nString nGramAtPosition(String field, int fieldcount, int n) {\r\n if (fieldcount+n\>field.length()) {\r\n return ''\r\n }\r\n else \r\n{\r\n return field.substring(fieldcount, fieldcount+n)\r\n}\r\n}\r\nString fieldtext = ctx[params.field];\r\nif(fieldtext.length()\>=params.max\_length) {\r\n fieldtext = fieldtext.substring(0, params.max\_length);\r\n}\r\nelse {\r\n fieldtext = fieldtext;\r\n}\r\nfor (int i=0;i\<(fieldtext.length());i++) {\r\n ctx[params.field+'\_'+Integer.toString(params.ngram\_count)+'-gram\_feature'+Integer.toString(i)] = nGramAtPosition(fieldtext, i, params.ngram\_count)\r\n}\r\n ",  
"lang" : "painless",  
"position" : {  
"offset" : 212,  
"start" : 187,  
"end" : 237  
},  
"caused\_by" : {  
"type" : "illegal\_argument\_exception",  
"reason" : "cannot resolve symbol [ctx]"  
}  
},  
"status" : 400  
}  
\</\>

---

<div class="post-metadata">

**Author:** ![stu](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/stu/32/75063_2.png) [@stu](https://discuss.elastic.co/u/stu)\
**Post date:** [June 22, 2021, 7:56pm UTC](https://discuss.elastic.co/t/m-having-trouble-with-problem-child-github-code/276649/2 "2021-06-22T19:56:29Z")

</div>

Context (`ctx`) is not available in the painless execute test API.

The test script provided in [Machine learning in cybersecurity: Training supervised models to detect DGA activity](https://www.elastic.co/blog/machine-learning-in-cybersecurity-training-supervised-models-to-detect-dga-activity) is meant to be used with the [`reindex`](https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-reindex.html#docs-reindex-api-request-body) action, where `ctx` [is available](https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-reindex-context.html).

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [June 22, 2021, 9:48pm UTC](https://discuss.elastic.co/t/m-having-trouble-with-problem-child-github-code/276649/3 "2021-06-22T21:48:33Z")

</div>

Welcome to our community! 😃

Please format your code/logs/config using the `</>` button, or markdown style back ticks. It helps to make things easy to read which helps us help you 🙂

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 20, 2021, 9:49pm UTC](https://discuss.elastic.co/t/m-having-trouble-with-problem-child-github-code/276649/4 "2021-07-20T21:49:29Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
