Re: svn commit: r1352400 - in /subversion/branches/javahl-ra/subversion/bindings/javahl: native/SVNBase.cpp native/SVNBase.h src/org/apache/subversion/javahl/JNIObject.java

2012-06-21 Thread Vladimir Berezniker
On Thu, Jun 21, 2012 at 1:43 PM, Blair Zajac  wrote:

> On 06/20/2012 08:34 PM, v...@apache.org wrote:
>
>> Author: vmpn
>> Date: Thu Jun 21 03:34:05 2012
>> New Revision: 1352400
>>
>> URL: 
>> http://svn.apache.org/viewvc?**rev=1352400&view=rev
>> Log:
>> On the javahl-ra branch:
>>
>> JavaHL: New method for creating java objects linked to their C++
>> counterpart
>>
>> [ in subversion/bindings/javahl/**native ]
>>
>> * SVNBase.cpp,
>>   SVNBase.h
>>   (createCppBoundObject): New method for creating java objects linked to
>> their
>> C++ counterpart
>>
>> [ in subversion/bindings/javahl/**src/org/tigris/subversion/**javahl/ ]
>>
>> * JNIObject.java: Base class for JNI linked java objects
>>
>> Added:
>> subversion/branches/javahl-ra/**subversion/bindings/javahl/**
>> src/org/apache/subversion/**javahl/JNIObject.java
>> Modified:
>> subversion/branches/javahl-ra/**subversion/bindings/javahl/**
>> native/SVNBase.cpp
>> subversion/branches/javahl-ra/**subversion/bindings/javahl/**
>> native/SVNBase.h
>>
>> Modified: subversion/branches/javahl-ra/**subversion/bindings/javahl/**
>> native/SVNBase.cpp
>> URL: http://svn.apache.org/viewvc/**subversion/branches/javahl-ra/**
>> subversion/bindings/javahl/**native/SVNBase.cpp?rev=**
>> 1352400&r1=1352399&r2=1352400&**view=diff
>> ==**==**
>> ==
>> --- 
>> subversion/branches/javahl-ra/**subversion/bindings/javahl/**native/SVNBase.cpp
>> (original)
>> +++ 
>> subversion/branches/javahl-ra/**subversion/bindings/javahl/**native/SVNBase.cpp
>> Thu Jun 21 03:34:05 2012
>> @@ -97,3 +97,29 @@ inline void SVNBase::findCppAddrFieldID(
>>  }
>>  }
>>  }
>> +
>> +jobject SVNBase::createCppBoundObject(**const char *clazzName)
>> +{
>> +  JNIEnv *env = JNIUtil::getEnv();
>> +
>> +  // Create java session object
>> +  jclass clazz = env->FindClass(clazzName);
>> +  if (JNIUtil::**isJavaExceptionThrown())
>> +  return NULL;
>> +
>> +  static jmethodID ctor = 0;
>> +  if (ctor == 0)
>> +  {
>>
>
> The { are indented two spaces:
>
> http://subversion.apache.org/**docs/community-guide/**conventions.html
>
> There's other indentation fixes also needed.
>

Noted.  Revised in r1352727 and r1352734.

>
>  +package org.apache.subversion.javahl;
>> +
>> +/**
>> + *  This class is used internally by the JavaHL implementation and not
>> + *  considered part part of the public API.
>> + */
>> +public abstract class JNIObject
>> +{
>> +/**
>> + * slot for the address of the native peer.
>> + * The JNI code controls this field. If it is set to 0 then
>> + * underlying JNI object has been freed
>> + */
>> +protected long cppAddr;
>>
>
> Can this be final?
>
> Very good point. Improved in r1352729

Thank you for the review,

Vladimir


Re: svn commit: r1352400 - in /subversion/branches/javahl-ra/subversion/bindings/javahl: native/SVNBase.cpp native/SVNBase.h src/org/apache/subversion/javahl/JNIObject.java

2012-06-21 Thread Blair Zajac

On 06/20/2012 08:34 PM, v...@apache.org wrote:

Author: vmpn
Date: Thu Jun 21 03:34:05 2012
New Revision: 1352400

URL: http://svn.apache.org/viewvc?rev=1352400&view=rev
Log:
On the javahl-ra branch:

JavaHL: New method for creating java objects linked to their C++ counterpart

[ in subversion/bindings/javahl/native ]

* SVNBase.cpp,
   SVNBase.h
   (createCppBoundObject): New method for creating java objects linked to their
 C++ counterpart

[ in subversion/bindings/javahl/src/org/tigris/subversion/javahl/ ]

* JNIObject.java: Base class for JNI linked java objects

Added:
 
subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
Modified:
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp
 subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.h

Modified: 
subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp
URL: 
http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp?rev=1352400&r1=1352399&r2=1352400&view=diff
==
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp 
(original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNBase.cpp 
Thu Jun 21 03:34:05 2012
@@ -97,3 +97,29 @@ inline void SVNBase::findCppAddrFieldID(
  }
  }
  }
+
+jobject SVNBase::createCppBoundObject(const char *clazzName)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  // Create java session object
+  jclass clazz = env->FindClass(clazzName);
+  if (JNIUtil::isJavaExceptionThrown())
+  return NULL;
+
+  static jmethodID ctor = 0;
+  if (ctor == 0)
+  {


The { are indented two spaces:

http://subversion.apache.org/docs/community-guide/conventions.html

There's other indentation fixes also needed.


+package org.apache.subversion.javahl;
+
+/**
+ *  This class is used internally by the JavaHL implementation and not
+ *  considered part part of the public API.
+ */
+public abstract class JNIObject
+{
+/**
+ * slot for the address of the native peer.
+ * The JNI code controls this field. If it is set to 0 then
+ * underlying JNI object has been freed
+ */
+protected long cppAddr;


Can this be final?

Blair