Integrated: 8263108: Class initialization deadlock in java.lang.constant

2021-03-17 Thread Jaikiran Pai
On Tue, 9 Mar 2021 13:46:04 GMT, Jaikiran Pai wrote: > Can I please get a review for this proposed patch for the issue reported in > https://bugs.openjdk.java.net/browse/JDK-8263108? > > As noted in that issue, the `java.lang.constant.DynamicConstantDesc` and > `java.lang.constant.ConstantDesc

Re: RFR: 8254979: Class.getSimpleName() returns non-empty for lambda and method

2021-03-17 Thread Joe Darcy
Hello, On 3/17/2021 3:56 PM, jmehrens wrote: On Tue, 16 Mar 2021 22:24:55 GMT, Joe Darcy wrote: [snip] 780: 781: /** 782: *{@return {@code true} if and only if this class has the synthetic modifier The braces around return tag are allowed? "{@return ...} vs. "@return ..." Seem

Re: RFR: 8254979: Class.getSimpleName() returns non-empty for lambda and method

2021-03-17 Thread jmehrens
On Tue, 16 Mar 2021 22:24:55 GMT, Joe Darcy wrote: > java.lang.Class has a number of methods to return some kind of textual token > associated with the class, including a type name, canonical name, simple > name, and separately the results of toString(). > > Bug 8254979 notes that getSimpleNam

Re: RFR: 8262807: Note assumptions of core reflection modeling and parameter handling [v4]

2021-03-17 Thread Joe Darcy
> Please review the javadoc change below, written in response to recent > discussion on core-libs. > > The bulk of the change is to add a discussion to java.lang.reflect's > package-info file about a language vs JVM model for core reflection. That > discussion is then linked to from several rel

Integrated: 8262807: Note assumptions of core reflection modeling and parameter handling

2021-03-17 Thread Joe Darcy
On Tue, 16 Mar 2021 17:22:13 GMT, Joe Darcy wrote: > Please review the javadoc change below, written in response to recent > discussion on core-libs. > > The bulk of the change is to add a discussion to java.lang.reflect's > package-info file about a language vs JVM model for core reflection.

Re: RFR: 8262807: Note assumptions of core reflection modeling and parameter handling [v3]

2021-03-17 Thread Joe Darcy
> Please review the javadoc change below, written in response to recent > discussion on core-libs. > > The bulk of the change is to add a discussion to java.lang.reflect's > package-info file about a language vs JVM model for core reflection. That > discussion is then linked to from several rel

Re: RFR: 8262807: Note assumptions of core reflection modeling and parameter handling [v2]

2021-03-17 Thread Roger Riggs
On Tue, 16 Mar 2021 20:41:24 GMT, Joe Darcy wrote: >> Please review the javadoc change below, written in response to recent >> discussion on core-libs. >> >> The bulk of the change is to add a discussion to java.lang.reflect's >> package-info file about a language vs JVM model for core reflect

Re: RFR: 8189198: Add "forRemoval = true" to Applet API deprecations

2021-03-17 Thread Andy Herrick
On Wed, 17 Mar 2021 19:02:39 GMT, Alan Bateman wrote: > > > > I cannot find any instances where the scope can be narrowed > > Are you about AquaInternalFrameUI.mouseRelased, BasicPopupMenuUI. > stateChanged, and other non-trivial methods? These have the code pattern such as: } else if (c in

Integrated: 8254979: Class.getSimpleName() returns non-empty for lambda and method

2021-03-17 Thread Joe Darcy
On Tue, 16 Mar 2021 22:24:55 GMT, Joe Darcy wrote: > java.lang.Class has a number of methods to return some kind of textual token > associated with the class, including a type name, canonical name, simple > name, and separately the results of toString(). > > Bug 8254979 notes that getSimpleNam

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Thomas Stuefe
On Wed, 17 Mar 2021 19:52:49 GMT, Roger Riggs wrote: > Its a Java Child for consistency across tests and across OS's. > The JavaChild executes a number of specialized commands to consume or provide > data to the parent. > Piecing that together on different OS's would add more variables to the te

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Roger Riggs
On Wed, 17 Mar 2021 19:35:14 GMT, Thomas Stuefe wrote: >>> The child does no (zero) writes to either stream. It is invoked only to >>> sleep until it is destroyed. >>> The purpose of the test is to verify the exception that is thrown when the >>> other end(child) of the pipe is closed (because

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Thomas Stuefe
On Wed, 17 Mar 2021 19:34:19 GMT, Thomas Stuefe wrote: >> Hmm, maybe the child can create a file to indicate that bootstrap has >> finished. > >> The child does no (zero) writes to either stream. It is invoked only to >> sleep until it is destroyed. >> The purpose of the test is to verify the e

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Thomas Stuefe
On Wed, 17 Mar 2021 19:30:54 GMT, Ioi Lam wrote: >> The child does no (zero) writes to either stream. It is invoked only to >> sleep until it is destroyed. >> The purpose of the test is to verify the exception that is thrown when the >> other end(child) of the pipe is closed (because the proce

Re: RFR: 8260605: Various java.lang.invoke cleanups [v7]

2021-03-17 Thread Mandy Chung
On Wed, 17 Mar 2021 18:15:37 GMT, Mandy Chung wrote: >> Other methods that delegate to `makeImpl` aren't doing up-front validation, >> so this change was made to get things more in line. It might be good to >> spell out that `makeImpl` does these checks for all its callers, though. >> (The `ma

Re: RFR: 8260605: Various java.lang.invoke cleanups [v7]

2021-03-17 Thread Mandy Chung
On Wed, 17 Mar 2021 19:12:10 GMT, Claes Redestad wrote: >> - Remove unused code >> - Inline and simplify the bootstrap method invocation code (remove pointless >> reboxing checks etc) >> - Apply pattern matching to make some code more readable > > Claes Redestad has updated the pull request incr

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Ioi Lam
On Wed, 17 Mar 2021 19:13:24 GMT, Roger Riggs wrote: >> Hmm. That's strange. >> >> One issue I don't understand with this test, should the parent not read from >> both streams simultaneously, because if the child is sending output to the >> stream the parent is not reading from the child may

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Thomas Stuefe
On Wed, 17 Mar 2021 17:53:14 GMT, Ioi Lam wrote: >> I don't think this is CPU starvation but memory exhaustion. _beginthreadex >> fails with EACCES if it has no resources to start the thread, which in this >> case probably means memory (the other possibility would be >> out-of-HANDLE-space but

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Roger Riggs
On Wed, 17 Mar 2021 19:10:24 GMT, Thomas Stuefe wrote: >> @tstuefe It's unlikely that _beginthreadex failed due to lack of memory. We >> are running on a machine with more than 50GB ram with only concurrency of 6. >> Extracts from the logs: >> >> $ jtreg -vmoption:-Xmx512m -concurrency:6 -vmo

Re: RFR: 8260605: Various java.lang.invoke cleanups [v7]

2021-03-17 Thread Claes Redestad
> - Remove unused code > - Inline and simplify the bootstrap method invocation code (remove pointless > reboxing checks etc) > - Apply pattern matching to make some code more readable Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:

Re: RFR: 8189198: Add "forRemoval = true" to Applet API deprecations

2021-03-17 Thread Alan Bateman
On Wed, 17 Mar 2021 16:44:19 GMT, Andy Herrick wrote: > I cannot find any instances where the scope can be narrowed Are you about AquaInternalFrameUI.mouseRelased, BasicPopupMenuUI. stateChanged, and other non-trivial methods? - PR: https://git.openjdk.java.net/jdk/pull/2920

Re: RFR: 8260605: Various java.lang.invoke cleanups [v6]

2021-03-17 Thread Mandy Chung
On Wed, 17 Mar 2021 17:57:08 GMT, Claes Redestad wrote: >> - Remove unused code >> - Inline and simplify the bootstrap method invocation code (remove pointless >> reboxing checks etc) >> - Apply pattern matching to make some code more readable > > Claes Redestad has updated the pull request incr

Re: RFR: 8263108: Class initialization deadlock in java.lang.constant [v5]

2021-03-17 Thread Chris Hegarty
On Tue, 16 Mar 2021 14:47:29 GMT, Jaikiran Pai wrote: >> Can I please get a review for this proposed patch for the issue reported in >> https://bugs.openjdk.java.net/browse/JDK-8263108? >> >> As noted in that issue, the `java.lang.constant.DynamicConstantDesc` and >> `java.lang.constant.Consta

Re: RFR: 8260605: Various java.lang.invoke cleanups [v6]

2021-03-17 Thread Mandy Chung
On Wed, 17 Mar 2021 18:02:07 GMT, Claes Redestad wrote: >> src/java.base/share/classes/java/lang/invoke/MethodType.java line 418: >> >>> 416: public MethodType changeParameterType(int num, Class nptype) { >>> 417: if (parameterType(num) == nptype) return this; >>> 418: check

Re: RFR: 8260605: Various java.lang.invoke cleanups [v6]

2021-03-17 Thread Claes Redestad
On Mon, 15 Mar 2021 18:27:04 GMT, Mandy Chung wrote: >> Claes Redestad has updated the pull request incrementally with one >> additional commit since the last revision: >> >> Mandy review + additional cleanup > > src/java.base/share/classes/java/lang/invoke/MethodType.java line 418: > >> 416

Re: RFR: 8260605: Various java.lang.invoke cleanups [v5]

2021-03-17 Thread Claes Redestad
On Mon, 15 Mar 2021 18:10:56 GMT, Mandy Chung wrote: >> Claes Redestad has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains seven additional >> commi

Re: RFR: 8260605: Various java.lang.invoke cleanups [v6]

2021-03-17 Thread Claes Redestad
> - Remove unused code > - Inline and simplify the bootstrap method invocation code (remove pointless > reboxing checks etc) > - Apply pattern matching to make some code more readable Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Ioi Lam
On Wed, 17 Mar 2021 17:30:25 GMT, Thomas Stuefe wrote: >> Arbitrary time out has been a reliable source of intermittent failures. >> >> Since we have spent a lot of time analyzing this failure, I think it's >> worthwhile to fix it properly, which doesn't seem that complicated. That's >> better

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Roger Riggs
On Wed, 17 Mar 2021 17:30:25 GMT, Thomas Stuefe wrote: >> Arbitrary time out has been a reliable source of intermittent failures. >> >> Since we have spent a lot of time analyzing this failure, I think it's >> worthwhile to fix it properly, which doesn't seem that complicated. That's >> better

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Thomas Stuefe
On Wed, 17 Mar 2021 17:14:22 GMT, Ioi Lam wrote: >> That complicates the test and the child quite a bit for minimal gain. > > Arbitrary time out has been a reliable source of intermittent failures. > > Since we have spent a lot of time analyzing this failure, I think it's > worthwhile to fix it

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Ioi Lam
On Wed, 17 Mar 2021 16:40:47 GMT, Roger Riggs wrote: >> The failures happened in tiers 6 and 8. The system may be overloaded so even >> 100ms may not be enough for the child process to start sleeping. From the >> error log, the child process tried to spawn a thread (probably one of those >> us

Integrated: 8263726: divideToIntegralValue typo on BigDecimal documentation

2021-03-17 Thread Joe Darcy
On Wed, 17 Mar 2021 16:43:42 GMT, Joe Darcy wrote: > Fix typos in references to the method's name in the javadoc. This pull request has now been integrated. Changeset: 24afa36d Author:Joe Darcy URL: https://git.openjdk.java.net/jdk/commit/24afa36d Stats: 2 lines in 1 file changed

Re: RFR: 8251942: PrintStream specification is not clear which flush method is automatically invoked

2021-03-17 Thread Brian Burkhalter
On Thu, 11 Mar 2021 20:54:12 GMT, Brian Burkhalter wrote: >>> Yes, I noticed that as well. I didn?t think it was worth complicating >>> things for the purpose of this issue to address it. >> >> I guess what I was trying to ask is whether we should actually specify that >> `print` and `append`

Re: RFR: 8263726: divideToIntegralValue typo on BigDecimal documentation

2021-03-17 Thread Brian Burkhalter
On Wed, 17 Mar 2021 16:43:42 GMT, Joe Darcy wrote: > Fix typos in references to the method's name in the javadoc. Looks fine. - Marked as reviewed by bpb (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/3051

RFR: 8263726: divideToIntegralValue typo on BigDecimal documentation

2021-03-17 Thread Joe Darcy
Fix typos in references to the method's name in the javadoc. - Commit messages: - 8263726: divideToIntegralValue typo on BigDecimal documentation Changes: https://git.openjdk.java.net/jdk/pull/3051/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3051&range=00 Issue: h

Re: RFR: 8189198: Add "forRemoval = true" to Applet API deprecations

2021-03-17 Thread Andy Herrick
On Sun, 14 Mar 2021 12:06:08 GMT, Alan Bateman wrote: > > > Have you looked at narrowing the use of the SuppressWarnings to local > variable declarations to avoid adding it to some of these methods? in all cases either: - the class or method itself is being deprecated - the method takes a d

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Roger Riggs
On Wed, 17 Mar 2021 16:36:19 GMT, Ioi Lam wrote: >> That loop is checking that the Thread (in the parent) reading from the child >> is in the correct state (blocked). On Windows, it is a BufferedInputStream. >> >> But it does not indicate anything about the state of the child process. >> From

Re: RFR: 8254979: Class.getSimpleName() returns non-empty for lambda and method

2021-03-17 Thread Mandy Chung
On Tue, 16 Mar 2021 22:24:55 GMT, Joe Darcy wrote: > java.lang.Class has a number of methods to return some kind of textual token > associated with the class, including a type name, canonical name, simple > name, and separately the results of toString(). > > Bug 8254979 notes that getSimpleNam

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Ioi Lam
On Wed, 17 Mar 2021 15:18:41 GMT, Roger Riggs wrote: >> test/jdk/java/lang/ProcessBuilder/Basic.java line 2183: >> >>> 2181: latch.await(); >>> 2182: Thread.sleep(100L); // Wait for child >>> initialization to settle >>> 2183: >> >> Hi Roger, >> Shouldn't t

Re: RFR: 8254979: Class.getSimpleName() returns non-empty for lambda and method

2021-03-17 Thread Roger Riggs
On Tue, 16 Mar 2021 22:24:55 GMT, Joe Darcy wrote: > java.lang.Class has a number of methods to return some kind of textual token > associated with the class, including a type name, canonical name, simple > name, and separately the results of toString(). > > Bug 8254979 notes that getSimpleNam

Re: RFR: 8261785: Calling "main" method in anonymous nested class crashes the JVM [v3]

2021-03-17 Thread Henry Jen
On Wed, 17 Mar 2021 08:55:54 GMT, Alan Bateman wrote: > > > Using an anonymous class for the main class looks strange and hard to > > > believe anyone is relying on this. I wonder if we should do more checking > > > LauncherHelper.validateMainClass to reject cases like this. > > > > > > I rai

Withdrawn: 8189198: Add "forRemoval = true" to Applet API deprecations

2021-03-17 Thread Andy Herrick
On Wed, 10 Mar 2021 18:33:37 GMT, Andy Herrick wrote: > implementation of > JDK-8256145: JEP 398: Deprecate the Applet API for Removal This pull request has been closed without being integrated. - PR: https://git.openjdk.java.net/jdk/pull/2920

Re: RFR: 8189198: Add "forRemoval = true" to Applet API deprecations

2021-03-17 Thread Andy Herrick
On Sun, 14 Mar 2021 12:06:08 GMT, Alan Bateman wrote: > the - PR: https://git.openjdk.java.net/jdk/pull/2920

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Roger Riggs
On Wed, 17 Mar 2021 14:52:36 GMT, Peter Levart wrote: >> Intermittent failures on Windows in a test of destroying the child warrant >> extending the time the parent waits after starting the child before >> destroying the child. > > test/jdk/java/lang/ProcessBuilder/Basic.java line 2183: > >> 2

Re: RFR: 8263108: Class initialization deadlock in java.lang.constant [v5]

2021-03-17 Thread Jaikiran Pai
On Wed, 17 Mar 2021 14:34:41 GMT, Peter Levart wrote: >> Jaikiran Pai has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Add a comment to instruct future maintainers of the code to avoid calling >> DynamicConstantDesc.ofCanonical() from st

Re: RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Peter Levart
On Wed, 17 Mar 2021 14:16:36 GMT, Roger Riggs wrote: > Intermittent failures on Windows in a test of destroying the child warrant > extending the time the parent waits after starting the child before > destroying the child. test/jdk/java/lang/ProcessBuilder/Basic.java line 2183: > 2181:

Re: RFR: 8263108: Class initialization deadlock in java.lang.constant [v5]

2021-03-17 Thread Peter Levart
On Tue, 16 Mar 2021 14:47:29 GMT, Jaikiran Pai wrote: >> Can I please get a review for this proposed patch for the issue reported in >> https://bugs.openjdk.java.net/browse/JDK-8263108? >> >> As noted in that issue, the `java.lang.constant.DynamicConstantDesc` and >> `java.lang.constant.Consta

RFR: 8263729: [test] Extend time to wait before destroying child in ProcssBuilder Basic test

2021-03-17 Thread Roger Riggs
Intermittent failures on Windows in a test of destroying the child warrant extending the time the parent waits after starting the child before destroying the child. - Commit messages: - 8263729: [test] Extend time to wait before destroying child in ProcessBuilder Basic test Chang

Integrated: 8148937: (str) Adapt StringJoiner for Compact Strings

2021-03-17 Thread Сергей Цыпанов
On Thu, 18 Feb 2021 14:30:15 GMT, Сергей Цыпанов wrote: > Hello, > > as of now `java.util.StringJoiner` still uses `char[]` as a storage for > joined Strings. > > This applies for the cases when all joined Strings as well as delimiter, > prefix and suffix contain only ASCII symbols. > > As

Re: RFR: 8148937: (str) Adapt StringJoiner for Compact Strings [v3]

2021-03-17 Thread Chris Hegarty
On Mon, 15 Mar 2021 21:47:28 GMT, Сергей Цыпанов wrote: >> Hello, >> >> as of now `java.util.StringJoiner` still uses `char[]` as a storage for >> joined Strings. >> >> This applies for the cases when all joined Strings as well as delimiter, >> prefix and suffix contain only ASCII symbols. >

Re: RFR: 8263658: Use the blessed modifier order in java.base

2021-03-17 Thread Roger Riggs
On Sat, 13 Mar 2021 22:45:30 GMT, Alex Blewitt wrote: > Sonar displays a warning message that modifiers should be declared in the > order listed in the JLS; specifically, that isntead of using `final static` > the `static final` should be preferred. > > This fixes the issues in the `java.base

RFR: 8263658: Use the blessed modifier order in java.base

2021-03-17 Thread Alex Blewitt
Sonar displays a warning message that modifiers should be declared in the order listed in the JLS; specifically, that isntead of using `final static` the `static final` should be preferred. This fixes the issues in the `java.base` package for ease of reviewing. https://sonarcloud.io/project/iss

Re: RFR: 8263658: Use the blessed modifier order in java.base

2021-03-17 Thread Aleksey Shipilev
On Sat, 13 Mar 2021 22:45:30 GMT, Alex Blewitt wrote: > Sonar displays a warning message that modifiers should be declared in the > order listed in the JLS; specifically, that isntead of using `final static` > the `static final` should be preferred. > > This fixes the issues in the `java.base

Withdrawn: 8259925: [Vector API] Unreasonable IndexOutOfBoundsException message when length < vlen

2021-03-17 Thread Jie Fu
On Mon, 18 Jan 2021 13:32:24 GMT, Jie Fu wrote: > Hi all, > > For this reproducer: > > import jdk.incubator.vector.ByteVector; > import jdk.incubator.vector.VectorSpecies; > > public class Test { > static final VectorSpecies SPECIES_128 = ByteVector.SPECIES_128; > static byte[] a = new

Re: java.io.File#toPath() on Windows doesn't understand "NUL:" (null device)?

2021-03-17 Thread Jaikiran Pai
On 17/03/21 3:10 pm, Jaikiran Pai wrote: Hello Alan, On 17/03/21 2:45 pm, Alan Bateman wrote: On 17/03/2021 08:21, Jaikiran Pai wrote: : I can confirm that using "NUL" or "nul" work fine in the above code, I don't know the context for your question A while back Apache Ant switched to u

Re: java.io.File#toPath() on Windows doesn't understand "NUL:" (null device)?

2021-03-17 Thread Jaikiran Pai
Hello Alan, On 17/03/21 2:45 pm, Alan Bateman wrote: On 17/03/2021 08:21, Jaikiran Pai wrote: : I can confirm that using "NUL" or "nul" work fine in the above code, I don't know the context for your question A while back Apache Ant switched to using the Files.newInputStream/Files.newOutp

Re: java.io.File#toPath() on Windows doesn't understand "NUL:" (null device)?

2021-03-17 Thread Alan Bateman
On 17/03/2021 08:21, Jaikiran Pai wrote: : I can confirm that using "NUL" or "nul" work fine in the above code, I don't know the context for your question but just to mention InputStream.nullInputStream() or Reader.nullReader() may be useful if you have something that wants to read from a nu

Re: RFR: 8261785: Calling "main" method in anonymous nested class crashes the JVM [v3]

2021-03-17 Thread Alan Bateman
On Tue, 16 Mar 2021 17:49:42 GMT, Henry Jen wrote: > > Using an anonymous class for the main class looks strange and hard to > > believe anyone is relying on this. I wonder if we should do more checking > > LauncherHelper.validateMainClass to reject cases like this. > > I raised that same ques

Re: java.io.File#toPath() on Windows doesn't understand "NUL:" (null device)?

2021-03-17 Thread Jaikiran Pai
On 17/03/21 1:26 pm, Alan Bateman wrote: On 17/03/2021 03:21, Jaikiran Pai wrote: : The code tries to read from NUL: on a Windows setup. This code runs into the following exception on Windows when the java.io.File#toPath() gets invoked: Exception in thread "main" java.nio.file.InvalidPa

Re: java.io.File#toPath() on Windows doesn't understand "NUL:" (null device)?

2021-03-17 Thread Alan Bateman
On 17/03/2021 03:21, Jaikiran Pai wrote: : The code tries to read from NUL: on a Windows setup. This code runs into the following exception on Windows when the java.io.File#toPath() gets invoked: Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <:> at index 3: N

Re: java.io.File#toPath() on Windows doesn't understand "NUL:" (null device)?

2021-03-17 Thread David Holmes
https://bugs.openjdk.java.net/browse/JDK-8022671 Cheers, David On 17/03/2021 1:21 pm, Jaikiran Pai wrote: Please consider this trivial code: import java.io.*; import java.nio.file.*; public class FileTest {     public static void main(final String[] args) throws Exception {     System.g