我在项目中使用flink release-1.9.1,一直出现Caused by: java.lang.NumberFormatException: Not a version: 9
java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) scala 2.11 maven 3.6.1 具体的错误信息如下: Exception in thread "main" org.apache.flink.shaded.guava18.com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NumberFormatException: Not a version: 9 at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203) at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache.get(LocalCache.java:3937) at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4739) at org.apache.flink.api.scala.typeutils.TraversableSerializer$.compileCbf(TraversableSerializer.scala:184) at org.apache.flink.api.scala.typeutils.TraversableSerializer.compileCbf(TraversableSerializer.scala:51) at org.apache.flink.api.scala.typeutils.TraversableSerializer.<init>(TraversableSerializer.scala:41) at org.apache.flink.streaming.api.graph.StreamGraph.addOperator(StreamGraph.java:258) at org.apache.flink.streaming.api.graph.StreamGraphGenerator.transformOneInputTransform(StreamGraphGenerator.java:649) at org.apache.flink.streaming.api.graph.StreamGraphGenerator.transform(StreamGraphGenerator.java:250) at org.apache.flink.streaming.api.graph.StreamGraphGenerator.generate(StreamGraphGenerator.java:209) at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraph(StreamExecutionEnvironment.java:1540) at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1507) at org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.scala:654) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.App$$anonfun$main$1.apply(App.scala:76) at scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) at scala.App$class.main(App.scala:76) Caused by: java.lang.NumberFormatException: Not a version: 9 at scala.util.PropertiesTrait$class.parts$1(Properties.scala:184) at scala.util.PropertiesTrait$class.isJavaAtLeast(Properties.scala:187) at scala.util.Properties$.isJavaAtLeast(Properties.scala:17) at scala.tools.util.PathResolverBase$Calculated$.javaBootClasspath(PathResolver.scala:276) at scala.tools.util.PathResolverBase$Calculated$.basis(PathResolver.scala:283) at scala.tools.util.PathResolverBase$Calculated$.containers$lzycompute(PathResolver.scala:293) at scala.tools.util.PathResolverBase$Calculated$.containers(PathResolver.scala:293) at scala.tools.util.PathResolverBase.containers(PathResolver.scala:309) at scala.tools.util.PathResolver.computeResult(PathResolver.scala:341) at scala.tools.util.PathResolver.computeResult(PathResolver.scala:332) at scala.tools.util.PathResolverBase.result(PathResolver.scala:314) at scala.tools.nsc.backend.JavaPlatform$class.classPath(JavaPlatform.scala:28) at scala.tools.nsc.Global$GlobalPlatform.classPath(Global.scala:115) at scala.tools.nsc.Global.scala$tools$nsc$Global$$recursiveClassPath(Global.scala:131) at scala.tools.nsc.Global.classPath(Global.scala:128) at scala.tools.nsc.backend.jvm.BTypesFromSymbols.<init>(BTypesFromSymbols.scala:39) at scala.tools.nsc.backend.jvm.BCodeIdiomatic.<init>(BCodeIdiomatic.scala:24) at scala.tools.nsc.backend.jvm.BCodeHelpers.<init>(BCodeHelpers.scala:23) at scala.tools.nsc.backend.jvm.BCodeSkelBuilder.<init>(BCodeSkelBuilder.scala:25) at scala.tools.nsc.backend.jvm.BCodeBodyBuilder.<init>(BCodeBodyBuilder.scala:25) at scala.tools.nsc.backend.jvm.BCodeSyncAndTry.<init>(BCodeSyncAndTry.scala:21) at scala.tools.nsc.backend.jvm.GenBCode.<init>(GenBCode.scala:47) at scala.tools.nsc.Global$genBCode$.<init>(Global.scala:675) at scala.tools.nsc.Global.genBCode$lzycompute(Global.scala:671) at scala.tools.nsc.Global.genBCode(Global.scala:671) at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.serialVUID(GenASM.scala:1240) at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genClass(GenASM.scala:1329) at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.emitFor$1(GenASM.scala:198) at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.run(GenASM.scala:204) at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1528) at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1513) at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.wrapInPackageAndCompile(ToolBoxFactory.scala:197) at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.compile(ToolBoxFactory.scala:252) at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$compile$2.apply(ToolBoxFactory.scala:429) at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$compile$2.apply(ToolBoxFactory.scala:422) at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.liftedTree2$1(ToolBoxFactory.scala:355) at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.apply(ToolBoxFactory.scala:355) at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.compile(ToolBoxFactory.scala:422) at org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.compileCbfInternal(TraversableSerializer.scala:230) at org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.call(TraversableSerializer.scala:220) at org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.call(TraversableSerializer.scala:216) at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4742) at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527) at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282) at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197) ... 27 more |
补充
我是下载了源码之后,自己编译了flink cep相关的jar然后引入进来。看pom文件flink-shaded-guava是flink-core引入的。 > 2019年11月19日 下午2:20,孙森 <[hidden email]> 写道: > > 我在项目中使用flink release-1.9.1,一直出现Caused by: java.lang.NumberFormatException: Not a version: 9 > java -version > java version "1.8.0_111" > Java(TM) SE Runtime Environment (build 1.8.0_111-b14) > Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) > > scala 2.11 > > maven 3.6.1 > > 具体的错误信息如下: > Exception in thread "main" org.apache.flink.shaded.guava18.com.google.common.util.concurrent.UncheckedExecutionException: java.lang.NumberFormatException: Not a version: 9 > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203) > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache.get(LocalCache.java:3937) > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4739) > at org.apache.flink.api.scala.typeutils.TraversableSerializer$.compileCbf(TraversableSerializer.scala:184) > at org.apache.flink.api.scala.typeutils.TraversableSerializer.compileCbf(TraversableSerializer.scala:51) > at org.apache.flink.api.scala.typeutils.TraversableSerializer.<init>(TraversableSerializer.scala:41) > > at org.apache.flink.streaming.api.graph.StreamGraph.addOperator(StreamGraph.java:258) > at org.apache.flink.streaming.api.graph.StreamGraphGenerator.transformOneInputTransform(StreamGraphGenerator.java:649) > at org.apache.flink.streaming.api.graph.StreamGraphGenerator.transform(StreamGraphGenerator.java:250) > at org.apache.flink.streaming.api.graph.StreamGraphGenerator.generate(StreamGraphGenerator.java:209) > at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraph(StreamExecutionEnvironment.java:1540) > at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1507) > at org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.scala:654) > > at scala.Function0$class.apply$mcV$sp(Function0.scala:34) > at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) > at scala.App$$anonfun$main$1.apply(App.scala:76) > at scala.App$$anonfun$main$1.apply(App.scala:76) > at scala.collection.immutable.List.foreach(List.scala:381) > at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) > at scala.App$class.main(App.scala:76) > > Caused by: java.lang.NumberFormatException: Not a version: 9 > at scala.util.PropertiesTrait$class.parts$1(Properties.scala:184) > at scala.util.PropertiesTrait$class.isJavaAtLeast(Properties.scala:187) > at scala.util.Properties$.isJavaAtLeast(Properties.scala:17) > at scala.tools.util.PathResolverBase$Calculated$.javaBootClasspath(PathResolver.scala:276) > at scala.tools.util.PathResolverBase$Calculated$.basis(PathResolver.scala:283) > at scala.tools.util.PathResolverBase$Calculated$.containers$lzycompute(PathResolver.scala:293) > at scala.tools.util.PathResolverBase$Calculated$.containers(PathResolver.scala:293) > at scala.tools.util.PathResolverBase.containers(PathResolver.scala:309) > at scala.tools.util.PathResolver.computeResult(PathResolver.scala:341) > at scala.tools.util.PathResolver.computeResult(PathResolver.scala:332) > at scala.tools.util.PathResolverBase.result(PathResolver.scala:314) > at scala.tools.nsc.backend.JavaPlatform$class.classPath(JavaPlatform.scala:28) > at scala.tools.nsc.Global$GlobalPlatform.classPath(Global.scala:115) > at scala.tools.nsc.Global.scala$tools$nsc$Global$$recursiveClassPath(Global.scala:131) > at scala.tools.nsc.Global.classPath(Global.scala:128) > at scala.tools.nsc.backend.jvm.BTypesFromSymbols.<init>(BTypesFromSymbols.scala:39) > at scala.tools.nsc.backend.jvm.BCodeIdiomatic.<init>(BCodeIdiomatic.scala:24) > at scala.tools.nsc.backend.jvm.BCodeHelpers.<init>(BCodeHelpers.scala:23) > at scala.tools.nsc.backend.jvm.BCodeSkelBuilder.<init>(BCodeSkelBuilder.scala:25) > at scala.tools.nsc.backend.jvm.BCodeBodyBuilder.<init>(BCodeBodyBuilder.scala:25) > at scala.tools.nsc.backend.jvm.BCodeSyncAndTry.<init>(BCodeSyncAndTry.scala:21) > at scala.tools.nsc.backend.jvm.GenBCode.<init>(GenBCode.scala:47) > at scala.tools.nsc.Global$genBCode$.<init>(Global.scala:675) > at scala.tools.nsc.Global.genBCode$lzycompute(Global.scala:671) > at scala.tools.nsc.Global.genBCode(Global.scala:671) > at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.serialVUID(GenASM.scala:1240) > at scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genClass(GenASM.scala:1329) > at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.emitFor$1(GenASM.scala:198) > at scala.tools.nsc.backend.jvm.GenASM$AsmPhase.run(GenASM.scala:204) > at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1528) > at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1513) > at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.wrapInPackageAndCompile(ToolBoxFactory.scala:197) > at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.compile(ToolBoxFactory.scala:252) > at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$compile$2.apply(ToolBoxFactory.scala:429) > at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$compile$2.apply(ToolBoxFactory.scala:422) > at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.liftedTree2$1(ToolBoxFactory.scala:355) > at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.apply(ToolBoxFactory.scala:355) > at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.compile(ToolBoxFactory.scala:422) > at org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.compileCbfInternal(TraversableSerializer.scala:230) > at org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.call(TraversableSerializer.scala:220) > at org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.call(TraversableSerializer.scala:216) > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4742) > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527) > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282) > at org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197) > ... 27 more > > > > > |
可以直接使用 flink-cep 模块吗?
如果是自己定制的 flink lib,可以提供更详细的打包过程和作出的改动吗? 这里就是不同的 guava 版本没 shaded 好导致 classloader 解析的时候出现冲突,这个问题是 adhoc 的,需要进一步的了解你【我是下载了源码之后,自己编译了flink cep相关的jar然后引入进来。】这个过程是怎么做的。 Best, tison. 孙森 <[hidden email]> 于2019年11月19日周二 下午2:23写道: > 补充 > > 我是下载了源码之后,自己编译了flink > cep相关的jar然后引入进来。看pom文件flink-shaded-guava是flink-core引入的。 > > > 2019年11月19日 下午2:20,孙森 <[hidden email]> 写道: > > > > 我在项目中使用flink release-1.9.1,一直出现Caused by: > java.lang.NumberFormatException: Not a version: 9 > > java -version > > java version "1.8.0_111" > > Java(TM) SE Runtime Environment (build 1.8.0_111-b14) > > Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) > > > > scala 2.11 > > > > maven 3.6.1 > > > > 具体的错误信息如下: > > Exception in thread "main" > org.apache.flink.shaded.guava18.com.google.common.util.concurrent.UncheckedExecutionException: > java.lang.NumberFormatException: Not a version: 9 > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203) > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache.get(LocalCache.java:3937) > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4739) > > at > org.apache.flink.api.scala.typeutils.TraversableSerializer$.compileCbf(TraversableSerializer.scala:184) > > at > org.apache.flink.api.scala.typeutils.TraversableSerializer.compileCbf(TraversableSerializer.scala:51) > > at > org.apache.flink.api.scala.typeutils.TraversableSerializer.<init>(TraversableSerializer.scala:41) > > > > at > org.apache.flink.streaming.api.graph.StreamGraph.addOperator(StreamGraph.java:258) > > at > org.apache.flink.streaming.api.graph.StreamGraphGenerator.transformOneInputTransform(StreamGraphGenerator.java:649) > > at > org.apache.flink.streaming.api.graph.StreamGraphGenerator.transform(StreamGraphGenerator.java:250) > > at > org.apache.flink.streaming.api.graph.StreamGraphGenerator.generate(StreamGraphGenerator.java:209) > > at > org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraph(StreamExecutionEnvironment.java:1540) > > at > org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1507) > > at > org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.scala:654) > > > > at scala.Function0$class.apply$mcV$sp(Function0.scala:34) > > at > scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) > > at scala.App$$anonfun$main$1.apply(App.scala:76) > > at scala.App$$anonfun$main$1.apply(App.scala:76) > > at scala.collection.immutable.List.foreach(List.scala:381) > > at > scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35) > > at scala.App$class.main(App.scala:76) > > > > Caused by: java.lang.NumberFormatException: Not a version: 9 > > at scala.util.PropertiesTrait$class.parts$1(Properties.scala:184) > > at > scala.util.PropertiesTrait$class.isJavaAtLeast(Properties.scala:187) > > at scala.util.Properties$.isJavaAtLeast(Properties.scala:17) > > at > scala.tools.util.PathResolverBase$Calculated$.javaBootClasspath(PathResolver.scala:276) > > at > scala.tools.util.PathResolverBase$Calculated$.basis(PathResolver.scala:283) > > at > scala.tools.util.PathResolverBase$Calculated$.containers$lzycompute(PathResolver.scala:293) > > at > scala.tools.util.PathResolverBase$Calculated$.containers(PathResolver.scala:293) > > at > scala.tools.util.PathResolverBase.containers(PathResolver.scala:309) > > at > scala.tools.util.PathResolver.computeResult(PathResolver.scala:341) > > at > scala.tools.util.PathResolver.computeResult(PathResolver.scala:332) > > at scala.tools.util.PathResolverBase.result(PathResolver.scala:314) > > at > scala.tools.nsc.backend.JavaPlatform$class.classPath(JavaPlatform.scala:28) > > at > scala.tools.nsc.Global$GlobalPlatform.classPath(Global.scala:115) > > at > scala.tools.nsc.Global.scala$tools$nsc$Global$$recursiveClassPath(Global.scala:131) > > at scala.tools.nsc.Global.classPath(Global.scala:128) > > at > scala.tools.nsc.backend.jvm.BTypesFromSymbols.<init>(BTypesFromSymbols.scala:39) > > at > scala.tools.nsc.backend.jvm.BCodeIdiomatic.<init>(BCodeIdiomatic.scala:24) > > at > scala.tools.nsc.backend.jvm.BCodeHelpers.<init>(BCodeHelpers.scala:23) > > at > scala.tools.nsc.backend.jvm.BCodeSkelBuilder.<init>(BCodeSkelBuilder.scala:25) > > at > scala.tools.nsc.backend.jvm.BCodeBodyBuilder.<init>(BCodeBodyBuilder.scala:25) > > at > scala.tools.nsc.backend.jvm.BCodeSyncAndTry.<init>(BCodeSyncAndTry.scala:21) > > at scala.tools.nsc.backend.jvm.GenBCode.<init>(GenBCode.scala:47) > > at scala.tools.nsc.Global$genBCode$.<init>(Global.scala:675) > > at scala.tools.nsc.Global.genBCode$lzycompute(Global.scala:671) > > at scala.tools.nsc.Global.genBCode(Global.scala:671) > > at > scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.serialVUID(GenASM.scala:1240) > > at > scala.tools.nsc.backend.jvm.GenASM$JPlainBuilder.genClass(GenASM.scala:1329) > > at > scala.tools.nsc.backend.jvm.GenASM$AsmPhase.emitFor$1(GenASM.scala:198) > > at > scala.tools.nsc.backend.jvm.GenASM$AsmPhase.run(GenASM.scala:204) > > at > scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1528) > > at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1513) > > at > scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.wrapInPackageAndCompile(ToolBoxFactory.scala:197) > > at > scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$ToolBoxGlobal.compile(ToolBoxFactory.scala:252) > > at > scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$compile$2.apply(ToolBoxFactory.scala:429) > > at > scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$$anonfun$compile$2.apply(ToolBoxFactory.scala:422) > > at > scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.liftedTree2$1(ToolBoxFactory.scala:355) > > at > scala.tools.reflect.ToolBoxFactory$ToolBoxImpl$withCompilerApi$.apply(ToolBoxFactory.scala:355) > > at > scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.compile(ToolBoxFactory.scala:422) > > at > org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.compileCbfInternal(TraversableSerializer.scala:230) > > at > org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.call(TraversableSerializer.scala:220) > > at > org.apache.flink.api.scala.typeutils.TraversableSerializer$LazyRuntimeCompiler.call(TraversableSerializer.scala:216) > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4742) > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527) > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282) > > at > org.apache.flink.shaded.guava18.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197) > > ... 27 more > > > > > > > > > > > > > |
Free forum by Nabble | Edit this page |