Thanks Edmond and Jochen for your reply. I think the solution which Edmond is suggesting will be a hack not a proper solution. Can someone from the dev mailing list answer a possible solution for this problem.
Thanks Harish On Mon, Mar 20, 2017 at 5:26 AM, Edmond Kemokai <[email protected]> wrote: > Hi Harish, > > You are right, the script name is just a somewhat random identifier. In > that case if you really must know the source file that caused the issue and > you are executing the groovy code, why don't you capture the resulting > exception and perhaps replace the Script<magic number>.groovy with the name > of the file? A simple replace regex can accomplish this. > > You actually just gave me an idea for improving the error reporting in > HiveMind logs :) > > Regards > Edmond > > > On Sun, Mar 19, 2017 at 12:29 PM, Harish Dewan <[email protected]> > wrote: > >> Hi Edmond, >> thanks for your reply. >> the unique number which i was talking about is not the line number. >> for example: below is an script exception thrown in case of syntax error. >> I had introduced text 'abcd' in my hello.groovy script. >> in case of exception it says below message >> >> javax.script.ScriptException: groovy.lang.MissingPropertyException: No >> such property: abcd for class: Script3 >> >> again if i re run the same code, it just increments the Script<unique >> number> i.e Script4, Script5 and so on. >> >> I was expecting error message of type >> javax.script.ScriptException: groovy.lang.MissingPropertyException: No >> such property: abcd for class: hello.groovy >> >> I am setting the context as follows >> >> ScriptEngine engine = new ScriptEngineManager(loader) >> .getEngineByExtension(extension); >> ScriptContext context = engine.getContext(); >> context.setAttribute(ScriptEngine.FILENAME, "hello.groovy", >> ScriptContext.ENGINE_SCOPE); >> >> Reader r = new FileReader("<path to hello.groovy file>"); >> try >> { >> engine.eval(r,context); >> } >> catch (ScriptException e) >> { >> } >> >> I did tried looking into source code and in class >> 'GroovyScriptEngineImpl.java' in function getScriptClass, >> while it is trying to parse class >> clazz = loader.parseClass(script, generateScriptName()); >> >> generate script name always increments the counter, there is no >> reference of getting name from context. >> // generate a unique name for top-level Script classes >> private synchronized String generateScriptName() { >> return "Script" + (++counter) + ".groovy"; >> } >> Kindly guide. >> >> Thanks >> Harish >> >> On Fri, Mar 17, 2017 at 4:48 PM, Edmond Kemokai <[email protected]> >> wrote: >> >>> Hi Harish, >>> >>> The <unique number> should be the line number where the problem is. How >>> are you setting context that doesn't show file name? The code you're >>> running that has the error can't possibly extract something from the >>> context since there is an error (I am guessing syntax error?). >>> >>> I am the developer of HiveMind, it is a JSR223 based web app platform >>> for Groovy and other JVM languages. You can access: >>> >>> url: http://demo.crudzilla.com:7000/ >>> login: developer/developer >>> >>> I have created a test file in: /com/crudzilla/cloudTest/web/d >>> ewan/test.ste >>> >>> You can test the code by right clicking on the test.ste file and >>> selecting "Open In Browser". >>> >>> Put your code in there and save, I can review it for you. >>> >>> >>> -Edmond >>> >>> >>> On Fri, Mar 17, 2017 at 6:47 AM, Harish Dewan <[email protected]> >>> wrote: >>> >>>> Hi All, >>>> I am trying to run a groovy script from my Java code using JSR223 and I >>>> am using 'groovy-all-2.4.9.jar' . >>>> In case of any exception occurring, it gives a generic name as >>>> Script<unique number>.groovy , where as the script file name was >>>> differently given. >>>> >>>> I checked for possible solutions, like I need to set the script file >>>> name in the context. but the current code for eval does not gets the script >>>> file name from context. It creates a unique file name through >>>> 'generateScriptName'. >>>> >>>> Is this a bug or do I need to deal with it differently ? >>>> Please guide. >>>> >>>> Thanks >>>> Harish >>>> >>>> >>> >>> >>> >> > >
