87
87
static jmethodID mid = 0;
90
jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/ListCallback");
90
jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/ListCallback"));
91
91
if (JNIUtil::isJavaExceptionThrown())
92
92
POP_AND_RETURN(SVN_NO_ERROR);
94
94
mid = env->GetMethodID(clazz, "doEntry",
95
"(L"JAVA_PACKAGE"/types/DirEntry;"
96
"L"JAVA_PACKAGE"/types/Lock;)V");
95
"(" JAVAHL_ARG("/types/DirEntry;")
96
JAVAHL_ARG("/types/Lock;") ")V");
97
97
if (JNIUtil::isJavaExceptionThrown() || mid == 0)
98
98
POP_AND_RETURN(SVN_NO_ERROR);
114
114
// call the Java method
115
115
env->CallVoidMethod(m_callback, mid, jdirentry, jlock);
116
// No need to check for exception here, because we'll just return anyway
118
env->PopLocalFrame(NULL);
117
POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
126
124
ListCallback::createJavaDirEntry(const char *path, const char *absPath,
127
125
const svn_dirent_t *dirent)
129
JNIEnv *env = JNIUtil::getEnv();
131
// Create a local frame for our references
132
env->PushLocalFrame(LOCAL_FRAME_SIZE);
133
if (JNIUtil::isJavaExceptionThrown())
136
jclass clazz = env->FindClass(JAVA_PACKAGE"/types/DirEntry");
137
if (JNIUtil::isJavaExceptionThrown())
140
static jmethodID mid = 0;
143
mid = env->GetMethodID(clazz, "<init>",
144
"(Ljava/lang/String;Ljava/lang/String;"
145
"L"JAVA_PACKAGE"/types/NodeKind;"
146
"JZJJLjava/lang/String;)V");
147
if (JNIUtil::isJavaExceptionThrown())
151
jstring jPath = JNIUtil::makeJString(path);
152
if (JNIUtil::isJavaExceptionThrown())
155
jstring jAbsPath = JNIUtil::makeJString(absPath);
156
if (JNIUtil::isJavaExceptionThrown())
159
jobject jNodeKind = EnumMapper::mapNodeKind(dirent->kind);
160
if (JNIUtil::isJavaExceptionThrown())
163
jlong jSize = dirent->size;
164
jboolean jHasProps = (dirent->has_props? JNI_TRUE : JNI_FALSE);
165
jlong jLastChangedRevision = dirent->created_rev;
166
jlong jLastChanged = dirent->time;
167
jstring jLastAuthor = JNIUtil::makeJString(dirent->last_author);
168
if (JNIUtil::isJavaExceptionThrown())
171
jobject ret = env->NewObject(clazz, mid, jPath, jAbsPath, jNodeKind,
172
jSize, jHasProps, jLastChangedRevision,
173
jLastChanged, jLastAuthor);
174
if (JNIUtil::isJavaExceptionThrown())
177
return env->PopLocalFrame(ret);
127
return CreateJ::DirEntry(path, absPath, dirent);