> It is possible to rebind System.out to something else inside Java, so the > library could be redirecting it from your view. Not saying that's > happening, but it's possible.
Thanks for this. Now that you mention it, I recall some conversation about this over the summer. I will investigate this. On Monday, November 2, 2015 at 3:26:15 PM UTC-5, Alex Miller wrote: > > It is possible to rebind System.out to something else inside Java, so the > library could be redirecting it from your view. Not saying that's > happening, but it's possible. > > If you you can connect with a debugger, you can set breakpoints based on > any thrown exception. > > On Monday, November 2, 2015 at 2:22:30 PM UTC-6, Lawrence Krubner wrote: >> >> >> Now there is a new error. >> >> Somehow, when the exception happens in our Java library, even though we, >> in theory, write to System.out.println(), I never see the Exception in the >> logs. >> >> All I can think is that somewhere in the Java library there is an >> exception that we catch but we forget to do System.out.println(). Can >> anyone think of another explanation? >> >> >> >> >> On Sunday, November 1, 2015 at 5:10:19 PM UTC-5, Lawrence Krubner wrote: >>> >>> So, we eventually fixed this. There were 2 bugs that worked together to >>> make this a mystery. I had to guess at what the problems were, and fix them >>> blind, since I could not see the Exceptions. I am curious about why I was >>> not able to see the Exceptions. >>> >>> About this: >>> >>> > Exceptions are ALWAYS visible, the only way they get lost is >>> > the try/catch blocks you added in your code which effectively >>> > swallow and ignore them. >>> >>> But the Exceptions I dealt with were invisible. We have the Clojure app >>> set up to run via Supervisord and the conf has these lines: >>> >>> stderr_logfile=/var/log/nlph_stderr.log >>> stdout_logfile=/var/log/nlph_stdout.log >>> >>> So in 2 terminal windows I would: >>> >>> cd /var/log >>> >>> tail -f nlph_stdout.log >>> >>> And the same for nlph_stderr.log. >>> >>> So I was looking at the output in my terminal window. And I could see >>> all of our logging statements appear. And the code clearly got to the line >>> where the exception happens, but then the Exception never appeared in the >>> terminal. It was invisible. I assume the output of this: >>> >>> System.out.println(e.getMessage()); >>> >>> would appear in one of the files that I was tailing. But it never did. >>> >>> So I am wondering why the Exceptions were invisible? Why didn't the >>> print statements make it to the terminal? >>> >>> >>> >>> >>> On Saturday, October 31, 2015 at 6:56:23 AM UTC-4, Thomas Heller wrote: >>>> >>>> >>>>> What could we do to make the Exception visible, assuming there is one? >>>>> >>>>> >>>> Exceptions are ALWAYS visible, the only way they get lost is the >>>> try/catch blocks you added in your code which effectively swallow and >>>> ignore them. The JVM will not randomly lose an Exception, it is always >>>> code >>>> you write that decided to handle them in some way. If you do not know how >>>> to handle an exception do not catch it, printing its stacktrace and >>>> ignoring it is never a good idea. >>>> >>>> In your case since you say that the function never returns I'd put my >>>> guess on an infinite loop. There is no exception that gets lost, your code >>>> is just still running. If your JVM is running locally you can attach to it >>>> via jvisualvm [1] and get a quick overview of what the JVM is doing. If >>>> you >>>> look at the thread information you'll see if something is still running or >>>> dead-locked somehow. >>>> >>>> You can also use a debugger and step through the java code step by step. >>>> >>>> Also, consider coding against interfaces in java (eg. java.util.List >>>> and java.util.Map instead of java.util.Collection), it will save you tons >>>> of conversion calls. >>>> >>>> HTH >>>> /thomas >>>> >>>> [1] https://visualvm.java.net/ >>>> >>> -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.