Just curious. Why is fs.getSpace() returning negative here? Naively, I would think it is truncating an int128 to int64. If so, if the value exceeds 2^64, will it be positive again?
Thanks, Max > On Nov 23, 2019, at 1:40 AM, Brian Burkhalter <brian.burkhal...@oracle.com> > wrote: > > PING! > >> Begin forwarded message: >> >> From: Brian Burkhalter <brian.burkhal...@oracle.com> >> Subject: Re: 8179320: File.getUsableSpace() returns a negative number on >> very large file system >> Date: November 15, 2019 at 2:40:06 PM PST >> To: Alan Bateman <alan.bate...@oracle.com> >> Cc: Core-Libs-Dev <core-libs-dev@openjdk.java.net> >> >> >>> On Nov 15, 2019, at 2:59 AM, Alan Bateman <alan.bate...@oracle.com >>> <mailto:alan.bate...@oracle.com>> wrote: >>> >>> On 02/11/2019 00:13, Brian Burkhalter wrote: >>>> For this issue [1], please review this patch [2] and the corresponding CSR >>>> [3]. >>>> >>>> >>> One thing that isn't clear is how these methods behave when the space info >>> can't be obtained. It is specified to return 0L when the path is not "a >>> partition" but I think it also returns 0L when the information cannot be >>> obtained. >> >> I’ve updated the patch [1] to address this. The difference versus webrev.00 >> is [2]. >> >> Thanks, >> >> Brian >> >> [1] http://cr.openjdk.java.net/~bpb/8179320/webrev.01/ >> <http://cr.openjdk.java.net/~bpb/8179320/webrev.01/>[2] diff vs. webrev.00 >> >> --- a/src/java.base/share/classes/java/io/File.java >> +++ b/src/java.base/share/classes/java/io/File.java >> @@ -1804,7 +1804,8 @@ >> * returned. >> * >> * @return The size, in bytes, of the partition or {@code 0L} if this >> - * abstract pathname does not name a partition >> + * abstract pathname does not name a partition or if the size >> + * cannot be obtained >> * >> * @throws SecurityException >> * If a security manager has been installed and it denies >> @@ -1844,9 +1845,10 @@ >> * will succeed. >> * >> * @return The number of unallocated bytes on the partition or {@code >> 0L} >> - * if the abstract pathname does not name a partition. This >> - * value will be less than or equal to the total file system >> size >> - * returned by {@link #getTotalSpace}. >> + * if the abstract pathname does not name a partition or if >> this >> + * number cannot be obtained. This value will be less than or >> + * equal to the total file system size returned by >> + * {@link #getTotalSpace}. >> * >> * @throws SecurityException >> * If a security manager has been installed and it denies >> @@ -1889,9 +1891,10 @@ >> * to this file system will succeed. >> * >> * @return The number of available bytes on the partition or {@code 0L} >> - * if the abstract pathname does not name a partition. On >> - * systems where this information is not available, this method >> - * will be equivalent to a call to {@link #getFreeSpace}. >> + * if the abstract pathname does not name a partition or if >> this >> + * number cannot be obtained. On systems where this >> information >> + * is not available, this method will be equivalent to a call >> to >> + * {@link #getFreeSpace}. >> * >> * @throws SecurityException >> * If a security manager has been installed and it denies >