Wong created FLINK-12759:
---------------------------- Summary: FLInk localmode IN MINICluster can't drow DAG visualizer plan Key: FLINK-12759 URL: https://issues.apache.org/jira/browse/FLINK-12759 Project: Flink Issue Type: Bug Components: Runtime / Web Frontend Affects Versions: 1.9.0 Environment: WIN10 4core 16g Reporter: Wong Fix For: 1.9.0 Attachments: errorsinlocal.png, standalone.png My plan: \{"nodes":[{"id":1,"type":"Source: fv_can","pact":"Data Source","contents":"Source: fv_can","parallelism":3},\{"id":2,"type":"CanCodec","pact":"Operator","contents":"CanCodec","parallelism":3,"predecessors":[{"id":1,"ship_strategy":"FORWARD","side":"second"}]},\{"id":3,"type":"Filter","pact":"Operator","contents":"Filter","parallelism":3,"predecessors":[{"id":2,"ship_strategy":"FORWARD","side":"second"}]},\{"id":5,"type":"Window(TumblingProcessingTimeWindows(1000), ProcessingTimeTrigger, Can2HbaseBatchFunction)","pact":"Operator","contents":"Window(TumblingProcessingTimeWindows(1000), ProcessingTimeTrigger, Can2HbaseBatchFunction)","parallelism":3,"predecessors":[{"id":3,"ship_strategy":"HASH","side":"second"}]},\{"id":6,"type":"Can2Redis","pact":"Operator","contents":"Can2Redis","parallelism":3,"predecessors":[{"id":3,"ship_strategy":"FORWARD","side":"second"}]},\{"id":7,"type":"Filter","pact":"Operator","contents":"Filter","parallelism":3,"predecessors":[{"id":2,"ship_strategy":"FORWARD","side":"second"}]},\{"id":8,"type":"RUDS","pact":"Operator","contents":"RUDS","parallelism":3,"predecessors":[{"id":7,"ship_strategy":"FORWARD","side":"second"}]}]} it was well done on my standalone cluster v1.9-snapshot, but when i debug on localmode it has exceptions: 2019-06-06 11:43:01.283 [flink-rest-server-netty-worker-thread-5] ERROR o.a.flink.runtime.rest.handler.job.JobVertexDetailsHandler - Could not create the handler request. org.apache.flink.runtime.rest.handler.HandlerRequestException: Cannot resolve path parameter (vertexid) from value "details". at org.apache.flink.runtime.rest.handler.HandlerRequest.<init>(HandlerRequest.java:71) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.AbstractHandler.respondAsLeader(AbstractHandler.java:143) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler.lambda$channelRead0$0(LeaderRetrievalHandler.java:81) [flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0_181] at org.apache.flink.util.OptionalConsumer.ifPresent(OptionalConsumer.java:44) ~[flink-core-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler.channelRead0(LeaderRetrievalHandler.java:78) [flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler.channelRead0(LeaderRetrievalHandler.java:49) [flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.runtime.rest.handler.router.RouterHandler.routed(RouterHandler.java:110) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.router.RouterHandler.channelRead0(RouterHandler.java:89) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.router.RouterHandler.channelRead0(RouterHandler.java:54) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.runtime.rest.FileUploadHandler.channelRead0(FileUploadHandler.java:163) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.FileUploadHandler.channelRead0(FileUploadHandler.java:67) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:656) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:591) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:508) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181] 2019-06-06 11:43:01.283 [flink-rest-server-netty-worker-thread-5] ERROR o.a.flink.runtime.rest.handler.job.JobVertexDetailsHandler - Could not create the handler request. org.apache.flink.runtime.rest.handler.HandlerRequestException: Cannot resolve path parameter (vertexid) from value "details". at org.apache.flink.runtime.rest.handler.HandlerRequest.<init>(HandlerRequest.java:71) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.AbstractHandler.respondAsLeader(AbstractHandler.java:143) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler.lambda$channelRead0$0(LeaderRetrievalHandler.java:81) [flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0_181] at org.apache.flink.util.OptionalConsumer.ifPresent(OptionalConsumer.java:44) ~[flink-core-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler.channelRead0(LeaderRetrievalHandler.java:78) [flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler.channelRead0(LeaderRetrievalHandler.java:49) [flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.runtime.rest.handler.router.RouterHandler.routed(RouterHandler.java:110) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.router.RouterHandler.channelRead0(RouterHandler.java:89) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.handler.router.RouterHandler.channelRead0(RouterHandler.java:54) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.runtime.rest.FileUploadHandler.channelRead0(FileUploadHandler.java:163) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.runtime.rest.FileUploadHandler.channelRead0(FileUploadHandler.java:67) ~[flink-runtime_2.12-1.9-SNAPSHOT.jar:1.9-SNAPSHOT] at org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:656) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:591) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:508) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] at org.apache.flink.shaded.netty4.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909) ~[flink-shaded-netty-4.1.32.Final-6.0.jar:na] -- This message was sent by Atlassian JIRA (v7.6.3#76005) |
Free forum by Nabble | Edit this page |