Seth, It all worked perfectly. Many thanks. I'm constantly learning as I do this; I must say, it's fun.
I'll ask for a new pull when I've updated the tests file. Charles On Tuesday, February 25, 2014 12:33:55 PM UTC-5, Seth Tisue wrote: > > > Charles, > > I wasn't sure we had an example extension that included a primitive that > accepts a task as input, but I found one: Nicolas Payette's `rnd` > extension. Looking at his code and test cases was helpful. > > So what's happening is you're getting an ArrayIndexOutOfBoundsException, > and the "2" is the message in that exception. (We can blame the > terse/unhelpful error message on Sun/Oracle; sure would be nice if it > said what array and how big...) > > One way to proceed would be to catch that exception and then throw an > ExtensionException. But I wouldn't actually suggest that approach > because an ArrayIndexOutOfBoundsException might have a different cause, > so you couldn't be confident you'd be issuing a correct error message. > > So I would suggest handling it the way I see that Nicolas did, which is > to do your own arity checking before calling `report` on the > ReporterTask. > > Here's the relevant parts of Nicolas's code: > > > https://github.com/NetLogo/Rnd-Extension/blob/bab4899e2f5ccc7281c4476056e4ff9463c59258/src/main/scala/org/nlogo/extensions/rnd/Primitives.scala#L40-L42 > > > https://github.com/NetLogo/Rnd-Extension/blob/bab4899e2f5ccc7281c4476056e4ff9463c59258/tests.txt#L183-L188 > > > Note that the arity checking unfortunately requires downcasting from > `api.Task` to `nvm.Task`. I just opened > https://github.com/NetLogo/NetLogo/issues/554 on that (and on the > lack of documentation on the need to arity check at all). > > Note also this similar code in the implementation of the `_runresult` > primitive: > > > https://github.com/NetLogo/NetLogo/blob/f6d990160aef29e1928fc7faa986ae7552541504/src/main/org/nlogo/prim/etc/_runresult.scala#L44-L46 > > > but Nicolas didn't call `missingInputs` in his code because of > https://github.com/NetLogo/NetLogo/issues/419 . > > I hope this clears everything up? > > -- > Seth Tisue | Northwestern University | http://tisue.net > developer, NetLogo: http://ccl.northwestern.edu/netlogo/ > -- You received this message because you are subscribed to the Google Groups "netlogo-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to netlogo-devel+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.