diff -Nru gradle-1.6/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/FileSystemServices.java gradle-1.6-gil/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/FileSystemServices.java
--- gradle-1.6/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/FileSystemServices.java 2013-04-29 00:00:26.000000000 +0200
+++ gradle-1.6-gil/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/FileSystemServices.java 2013-06-20 15:14:29.169348327 +0200
@@ -23,8 +23,6 @@
import org.gradle.internal.os.OperatingSystem;
import org.gradle.internal.service.DefaultServiceRegistry;
import org.gradle.internal.service.ServiceRegistry;
-import org.jruby.ext.posix.BaseNativePOSIX;
-import org.jruby.ext.posix.JavaPOSIX;
import org.jruby.ext.posix.POSIX;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,10 +57,11 @@
// Use libc backed implementations on Linux and Mac, if libc available
POSIX posix = PosixUtil.current();
- if ((libC != null && (operatingSystem.isLinux() || operatingSystem.isMacOsX())) && posix instanceof BaseNativePOSIX) {
+ String name = posix.getClass().getSimpleName();
+ if ((libC != null && (operatingSystem.isLinux() || operatingSystem.isMacOsX())) && "BaseNativePOSIX".equals(name)) {
FilePathEncoder filePathEncoder = createEncoder(libC);
serviceRegistry.add(Chmod.class, new LibcChmod(libC, filePathEncoder));
- serviceRegistry.add(Stat.class, new LibCStat(libC, operatingSystem, (BaseNativePOSIX) posix, filePathEncoder));
+ serviceRegistry.add(Stat.class, new LibCStat(libC, operatingSystem, PosixUtil.current(), filePathEncoder));
return;
}
@@ -96,7 +95,7 @@
private static Stat createStat() {
POSIX posix = PosixUtil.current();
- if (posix instanceof JavaPOSIX) {
+ if (posix.getClass().toString().equals("org.jruby.ext.posix.JavaPOSIX")) {
return new FallbackStat();
} else {
return new PosixStat(posix);
diff -Nru gradle-1.6/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/LibCStat.java gradle-1.6-gil/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/LibCStat.java
--- gradle-1.6/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/LibCStat.java 2013-03-16 00:00:48.000000000 +0100
+++ gradle-1.6-gil/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/LibCStat.java 2013-06-20 15:20:56.293745112 +0200
@@ -18,9 +18,8 @@
import org.gradle.internal.nativeplatform.jna.LibC;
import org.gradle.internal.os.OperatingSystem;
-import org.jruby.ext.posix.BaseNativePOSIX;
import org.jruby.ext.posix.FileStat;
-import org.jruby.ext.posix.Linux64FileStat;
+import org.jruby.ext.posix.POSIX;
import java.io.File;
import java.io.IOException;
@@ -29,9 +28,9 @@
private final LibC libc;
private final FilePathEncoder encoder;
private final OperatingSystem operatingSystem;
- private final BaseNativePOSIX nativePOSIX;
+ private final POSIX nativePOSIX;
- public LibCStat(LibC libc, OperatingSystem operatingSystem, BaseNativePOSIX nativePOSIX, FilePathEncoder encoder) {
+ public LibCStat(LibC libc, OperatingSystem operatingSystem, POSIX nativePOSIX, FilePathEncoder encoder) {
this.libc = libc;
this.operatingSystem = operatingSystem;
this.nativePOSIX = nativePOSIX;
@@ -39,11 +38,10 @@
}
public int getUnixMode(File f) throws IOException {
- FileStat stat = nativePOSIX.allocateStat();
- initPlatformSpecificStat(stat, encoder.encode(f));
+ FileStat stat = nativePOSIX.stat(new String(encoder.encode(f)));
return stat.mode() & 0777;
}
-
+/*
private void initPlatformSpecificStat(FileStat stat, byte[] encodedFilePath) {
if (operatingSystem.isMacOsX()) {
libc.stat(encodedFilePath, stat);
@@ -52,4 +50,5 @@
libc.__xstat64(statVersion, encodedFilePath, stat);
}
}
+*/
}
diff -Nru gradle-1.6/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/PosixUtil.java gradle-1.6-gil/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/PosixUtil.java
--- gradle-1.6/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/PosixUtil.java 2013-03-16 00:00:48.000000000 +0100
+++ gradle-1.6-gil/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/PosixUtil.java 2013-06-20 14:59:45.996415554 +0200
@@ -19,6 +19,7 @@
import org.jruby.ext.posix.POSIX;
import org.jruby.ext.posix.POSIXFactory;
import org.jruby.ext.posix.POSIXHandler;
+import com.kenai.constantine.platform.Errno;
import java.io.File;
import java.io.InputStream;
@@ -32,7 +33,7 @@
}
private static class POSIXHandlerImpl implements POSIXHandler {
- public void error(POSIX.ERRORS error, String message) {
+ public void error(Errno error, String message) {
throw new UnsupportedOperationException(error + " - " + message);
}