Grad to learn too.Thank you for your explanation.

2008/12/9 Tim Ellison <[EMAIL PROTECTED]>

> Regis wrote:
> > I have attached a patch for this issue on JIRA.
>
> See comments elsewhere why the patch needs some tweaking.
>
> > I think that would be helpful to add file path in error messages when
> > throw FileNotFoundException, and that need to allocate new memory for
> > the new messages, I used hymem_allocate_memory to do this. But I don't
> > have chance to free that memory, since exception thrown, code back to
> > java. That may cause memory leak, I know define a enough large char
> > array could avoid this, but need more memory (path may be very long), is
> > there any other better way to do this? Thanks!
>
> A code sample would be helpful to ensure I understand your situation
> correctly.
>
> But the 'throw' in native code does not cause a function return (think
> of it as marking a pending throw upon return [1]).  The ThrowNew JNI
> call will copy the message string into a new Java String object, so you
> can free it before the native returns, i.e.
>
>  allocate memory
>  throw exception
>  free memory
>  return from native (causes throw to occur)
>
> Of course, you can also just use a local var rather than allocate if you
> want too.
>
> Make sense?
> Tim
>
> [1] It's important to understand this, otherwise you'll be surprised
> about code running after your "native throw".  As a rule, you should
> tidy-up and return quite soon after raising the exception for clarity.
>



-- 
Best Regards
Sean, Xiao Xia Qiu

China Software Development Lab, IBM

Reply via email to