Blob Blame History Raw
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);
         }