On Sunday, 18 December 2016 19:19:21 UTC+13, Noel Grandin wrote:
>
> Nice work so far, thanks.
>
I'm glad I'm managing to do what you need :-)
Hmmm, ok, so this has something to do with Bonjour/MDNS and Java1.8.
>
> Could you perhaps use VisualVM or jstack to capture a stacktrace of what
> the Console java process is doing during that gap between the browser
> launching and the console finishing loading?
>
> Those tools on my mac are hiding in
> /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
>
Once again I'm in unchartered territory, so I hope I did right! I waited
until Console showed in my menu bar, then I ran jps in the Terminal, got
the PID of Console (8502), and then once the browser tab started loading I
went jstack -l 8502. The tab was still loading. Here's what it gave me:
2016-12-19 10:26:49
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.101-b13 mixed mode):
"Attach Listener" #18 daemon prio=9 os_prio=31 tid=0x00007fcc198f7000
nid=0xd813 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"H2 Console thread" #15 prio=5 os_prio=31 tid=0x00007fcc1a2ac800 nid=0x5a13
waiting for monitor entry [0x00007000013d8000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.net.InetAddress.getLocalHost(InetAddress.java:1486)
- waiting to lock <0x0000000795802000> (a java.lang.Object)
at org.h2.util.NetUtils.isLocalAddress(NetUtils.java:218)
at org.h2.server.web.WebThread.allow(WebThread.java:344)
at org.h2.server.web.WebThread.getAllowedFile(WebThread.java:74)
at org.h2.server.web.WebThread.process(WebThread.java:120)
at org.h2.server.web.WebThread.run(WebThread.java:89)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"Java2D Disposer" #13 daemon prio=10 os_prio=31 tid=0x00007fcc19bd3800
nid=0xce1b in Object.wait() [0x00007000012d5000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000795b054e8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x0000000795b054e8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at sun.java2d.Disposer.run(Disposer.java:148)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"Java2D Queue Flusher" #12 daemon prio=10 os_prio=31 tid=0x00007fcc1a1fd800
nid=0xc307 in Object.wait() [0x00007000011d2000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000795b02110> (a sun.java2d.opengl.
OGLRenderQueue$QueueFlusher)
at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java
:203)
- locked <0x0000000795b02110> (a sun.java2d.opengl.
OGLRenderQueue$QueueFlusher)
Locked ownable synchronizers:
- None
"AWT-Shutdown" #11 prio=5 os_prio=31 tid=0x00007fcc19ad0000 nid=0x7417 in
Object.wait() [0x000070000104c000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000795b5b708> (a java.lang.Object)
at java.lang.Object.wait(Object.java:502)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
- locked <0x0000000795b5b708> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"AppKit Thread" #10 daemon prio=5 os_prio=31 tid=0x00007fcc19948800
nid=0x200f runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"H2 Console Server (http://192.168.1.52:8082)" #8 prio=5 os_prio=31
tid=0x00007fcc1a0c4800 nid=0x100b runnable [0x000070000082b000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:
409)
at java.net.ServerSocket.implAccept(ServerSocket.java:545)
at java.net.ServerSocket.accept(ServerSocket.java:513)
at org.h2.server.web.WebServer.listen(WebServer.java:352)
at org.h2.tools.Server.run(Server.java:578)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"Service Thread" #7 daemon prio=9 os_prio=31 tid=0x00007fcc1a05b000
nid=0x4403 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C1 CompilerThread1" #6 daemon prio=9 os_prio=31 tid=0x00007fcc19866800
nid=0x4203 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 tid=0x00007fcc1983b800
nid=0x4003 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" #4 daemon prio=9 os_prio=31 tid=0x00007fcc1983a800
nid=0x3e0f runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007fcc19821000 nid=0x2e03
in Object.wait() [0x0000700000728000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000795588ee0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x0000000795588ee0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
Locked ownable synchronizers:
- None
"Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007fcc1a01f000
nid=0x2c03 in Object.wait() [0x0000700000625000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000795586b50> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
- locked <0x0000000795586b50> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
Locked ownable synchronizers:
- None
"main" #1 prio=5 os_prio=31 tid=0x00007fcc1a005800 nid=0x907 runnable
[0x0000700000219000]
java.lang.Thread.State: RUNNABLE
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:
1323)
at java.net.InetAddress.getLocalHost(InetAddress.java:1500)
- locked <0x0000000795802000> (a java.lang.Object)
at org.h2.util.NetUtils.getLocalAddress(NetUtils.java:271)
- locked <0x00000007957ff450> (a java.lang.Class for org.h2.util.
NetUtils)
at org.h2.server.TcpServer.getURL(TcpServer.java:198)
at org.h2.tools.Server.start(Server.java:485)
at org.h2.tools.Console.runTool(Console.java:265)
at org.h2.tools.Console.main(Console.java:99)
Locked ownable synchronizers:
- None
"VM Thread" os_prio=31 tid=0x00007fcc1a005000 nid=0x2a03 runnable
"GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007fcc1a009800 nid=0x2603
runnable
"GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007fcc1a00a000 nid=0x2803
runnable
"VM Periodic Task Thread" os_prio=31 tid=0x00007fcc1986f800 nid=0x4603
waiting on condition
JNI global references: 418
Thanks once again, Noel :-)
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.