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.

Reply via email to