netbeans-gradle-project icon indicating copy to clipboard operation
netbeans-gradle-project copied to clipboard

Issue with System.out.print

Open qcsoftware513 opened this issue 6 years ago • 9 comments

Small issue...when using System.out.print() I do not see the output in the console until a new line is printed. In the below example, I don't see abc print out until after the sleep command completes.

public class NBTest { @SuppressWarnings("unused") private static final String svnid = "$Id$";

public static void main(String[] args) { System.out.println("123456"); System.out.print("abc"); try { Thread.sleep(5000); } catch(InterruptedException ex) { ex.printStackTrace(); } System.out.println("123"); } }

This is causing issues because the System.out.print in my application displays a prompt and then the program waits for user input. I can type in the input and everything works, but then i don't see the prompts which can be confusing. Maybe I am missing a setting.

Thanks!

qcsoftware513 avatar May 25 '18 14:05 qcsoftware513

Try using System.out.flush() after System.out.print().

System.out.println() includes the call to flush(). print() doesn't.

On Fri, May 25, 2018 at 10:24 AM, qcsoftware513 [email protected] wrote:

Small issue...when using System.out.print() I do not see the output in the console until a new line is printed. In the below example, I don't see abc print out until after the sleep command completes.

public class NBTest { @SuppressWarnings https://github.com/SuppressWarnings("unused") private static final String svnid = "$Id$";

public static void main(String[] args) { System.out.println("123456"); System.out.print("abc"); try { Thread.sleep(5000); } catch(InterruptedException ex) { ex.printStackTrace(); } System.out.println("123"); } }

This is causing issues because the System.out.print in my application displays a prompt and then the program waits for user input. I can type in the input and everything works, but then i don't see the prompts which can be confusing. Maybe I am missing a setting.

Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kelemen/netbeans-gradle-project/issues/384, or mute the thread https://github.com/notifications/unsubscribe-auth/AKcyCl3UaibnY-gdby-zR6nHvtien8JAks5t2BQCgaJpZM4UOETp .

david-hall avatar May 25 '18 15:05 david-hall

That did not help. Same behavior.

Mike

From: David Hall [mailto:[email protected]] Sent: Friday, May 25, 2018 11:50 AM To: kelemen/netbeans-gradle-project [email protected] Cc: Mike Billman [email protected]; Author [email protected] Subject: Re: [kelemen/netbeans-gradle-project] Issue with System.out.print (#384)

Try using System.out.flush() after System.out.print().

System.out.println() includes the call to flush(). print() doesn't.

On Fri, May 25, 2018 at 10:24 AM, qcsoftware513 <[email protected]mailto:[email protected]> wrote:

Small issue...when using System.out.print() I do not see the output in the console until a new line is printed. In the below example, I don't see abc print out until after the sleep command completes.

public class NBTest { @SuppressWarnings https://github.com/SuppressWarnings("unused") private static final String svnid = "$Id$";

public static void main(String[] args) { System.out.println("123456"); System.out.print("abc"); try { Thread.sleep(5000); } catch(InterruptedException ex) { ex.printStackTrace(); } System.out.println("123"); } }

This is causing issues because the System.out.print in my application displays a prompt and then the program waits for user input. I can type in the input and everything works, but then i don't see the prompts which can be confusing. Maybe I am missing a setting.

Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kelemen/netbeans-gradle-project/issues/384, or mute the thread https://github.com/notifications/unsubscribe-auth/AKcyCl3UaibnY-gdby-zR6nHvtien8JAks5t2BQCgaJpZM4UOETp .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/kelemen/netbeans-gradle-project/issues/384#issuecomment-392101075, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AMLHp-YnFfdCXwZGP6WJCLdPMhTJd0mxks5t2Cg-gaJpZM4UOETp.

qcsoftware513 avatar May 25 '18 16:05 qcsoftware513

I don't output anything before receiving a line ending to analyze a full line if something has to be turned into a link. I can't really remember but I think Gradle also won't send it back before a new line is emitted (not sure about this last one though).

kelemen avatar May 25 '18 23:05 kelemen

Any thoughts as to how I might get around this?

qcsoftware513 avatar Jun 04 '18 12:06 qcsoftware513

I think currently the only way to get around this is to start Gradle from the terminal (even if it is the terminal of NB). I have checked and it seems that Gradle does send back the output so it is solvable on my side, assuming I do something with the problem that then I can't easily analyze a line to provide links. I could provide some timeout (configurably) but I guess that would still be very annoying. Or I could provide a configuration which disables analyzing lines (and you won't get links in the output window) but would see the output immediately. What would be an adequate workaround for you?

kelemen avatar Jun 04 '18 18:06 kelemen

I looked around the NB API if I could remove the last output line (so that I could print it after checking for links) but had no success even with dirty reflection hacks. So, the only possibilities I can imagine are the ones I have already listed.

kelemen avatar Jun 04 '18 19:06 kelemen

One of the reasons I like the output window is the ability to get links. 99% of the time, I won’t have output that doesn’t have a new line at the end of it. This basically only happens when we are doing testing through the application with programmer input. In brief, our application would run without any user input in a production setting. In a test mode, we can trigger a series of inputs to test a specific scenario. It is these inputs that output data without a new line. So I think a configurable timeout would be fine for my use case.

Mike

From: Attila Kelemen [mailto:[email protected]] Sent: Monday, June 4, 2018 3:46 PM To: kelemen/netbeans-gradle-project [email protected] Cc: Mike Billman [email protected]; Author [email protected] Subject: Re: [kelemen/netbeans-gradle-project] Issue with System.out.print (#384)

I looked around the NB API if I could remove the last output line (so that I could print it after checking for links) but had no success even with dirty reflection hacks. So, the only possibilities I can imagine are the ones I have already listed.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/kelemen/netbeans-gradle-project/issues/384#issuecomment-394475563, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AMLHp-tyHeUkQrjy1nAnQyT3HphW823Aks5t5Y5ygaJpZM4UOETp.

qcsoftware513 avatar Jun 05 '18 12:06 qcsoftware513

I will see to implement it after #386 is settled in some form to make merging easier (it is quite annyoing to merge this branch after changes of these kinds into nb9 due to the large number of changes).

kelemen avatar Jun 07 '18 18:06 kelemen

Thanks.

Mike

From: Attila Kelemen [mailto:[email protected]] Sent: Thursday, June 7, 2018 2:51 PM To: kelemen/netbeans-gradle-project [email protected] Cc: Mike Billman [email protected]; Author [email protected] Subject: Re: [kelemen/netbeans-gradle-project] Issue with System.out.print (#384)

I will see to implement it after #386https://github.com/kelemen/netbeans-gradle-project/issues/386 is settled in some form to make merging easier (it is quite annyoing to merge this branch after changes of these kinds into nb9 due to the large number of changes).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/kelemen/netbeans-gradle-project/issues/384#issuecomment-395526477, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AMLHp1TjE-34lo5WiTHZG6kwBtgDTu0Tks5t6XYUgaJpZM4UOETp.

qcsoftware513 avatar Jun 07 '18 19:06 qcsoftware513