File gcj-isReachable.patch of Package ant

--- apache-ant-1.9.16/src/main/org/apache/tools/ant/taskdefs/condition/IsReachable.java	2025-08-27 16:18:26.734727331 +0200
+++ apache-ant-1.9.16/src/main/org/apache/tools/ant/taskdefs/condition/IsReachable.java	2025-08-27 17:02:09.810353371 +0200
@@ -131,6 +131,8 @@
         return string == null || string.length() == 0;
     }
 
+    private static Class[] parameterTypes = {Integer.TYPE};
+
     /**
      * Evaluate the condition.
      *
@@ -173,11 +175,32 @@
         log("Host address = " + address.getHostAddress(),
                 Project.MSG_VERBOSE);
         boolean reachable;
+        //Java1.5: reachable = address.isReachable(timeout * 1000);
+        Method reachableMethod = null;
+        try {
+            reachableMethod = InetAddress.class.getMethod(METHOD_NAME,
+                    parameterTypes);
+            final Object[] params = new Object[1];
+            params[0] = new Integer(timeout * SECOND);
         try {
-            reachable = address.isReachable(timeout * SECOND);
-        } catch (final IOException ioe) {
+                reachable = ((Boolean) reachableMethod.invoke(address, params))
+                        .booleanValue();
+            } catch (final IllegalAccessException e) {
+                //utterly implausible, but catered for anyway
+                throw new BuildException("When calling " + reachableMethod);
+            } catch (final InvocationTargetException e) {
+                //assume this is an IOException about un readability
+                final Throwable nested = e.getTargetException();
+                log(ERROR_ON_NETWORK + target + ": " + nested.toString());
+                //any kind of fault: not reachable.
             reachable = false;
-            log(ERROR_ON_NETWORK + target + ": " + ioe.toString());
+            }
+        } catch (final NoSuchMethodException e) {
+            //java1.4
+            log("Not found: InetAddress." + METHOD_NAME, Project.MSG_VERBOSE);
+            log(MSG_NO_REACHABLE_TEST);
+            reachable = true;
+
         }
 
         log("host is" + (reachable ? "" : " not") + " reachable", Project.MSG_VERBOSE);
openSUSE Build Service is sponsored by