To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=54482
                  Issue #:|54482
                  Summary:|jurt PipeConnection.c Java exception handling
                Component:|udk
                  Version:|680m124
                 Platform:|All
                      URL:|
               OS/Version:|All
                   Status:|NEW
        Status whiteboard:|
                 Keywords:|
               Resolution:|
               Issue type:|DEFECT
                 Priority:|P4
             Subcomponent:|code
              Assigned to:|sb
              Reported by:|sb





------- Additional comments from [EMAIL PROTECTED] Mon Sep 12 01:51:19 -0700 
2005 -------
In jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c, handling
of Java exceptions is broken.  For example, ThrowException and MonitorExit are
called without a previous call to ExceptionClear, and state ACQUIRED is not
catered for in the error-handling code of
Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI.

The following is some prototypical code to use:
  void native_fn(jobect o) {
    if (env->MonitorEnter(o) < 0) return;
    // ...
    if (env->FindClass("...") == 0) {
      // Some Java exception occurred while
      // within the monitor, exit the monitor and
      // return with a Java exception pending:
      jthrowable e = env->ExceptionOccurred();
      assert e != 0;
      env->ExceptionClear();
      if (env->MonitorExit(o) == 0) {
        env->Throw(e); // even if Throw returns < 0,
                       // it is guaranteed that *some*
                       // exception is being thrown,
                       // right?
      }
      return;
    }
    // ...
    env->MonitorExit(o);
  }

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to