I'll give it a try. I am planning on upgrading to Flume 1.3.1 and making it so the Appender won't fail to start if it can't establish a connection. I may also convert it to use Flume's built in support for multiple agents.
Ralph On Jan 10, 2013, at 12:28 PM, Gary Gregory wrote: > Since we just talked about compiling with Java 7... > > I see test failures on Java 7 on Win 7: > > ------------------------------------------------------- > T E S T S > ------------------------------------------------------- > Running org.apache.logging.log4j.flume.appender.FlumeAppenderTest > Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.535 sec > Running org.apache.logging.log4j.flume.appender.FlumeEmbeddedAgentTest > 2013-01-10 15:07:13,630 [WARN] org.apache.flume.sink.FailoverSinkProcessor > Sink agent0 failed and has been sent to failover list > org.apache.flume.EventDeliveryException: Failed to send events > at org.apache.flume.sink.AvroSink.process(AvroSink.java:325) > ~[flume-ng-core-1.2.0.jar:1.2.0] > at > org.apache.flume.sink.FailoverSinkProcessor.process(FailoverSinkProcessor.java:182) > [flume-ng-core-1.2.0.jar:1.2.0] > at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147) > [flume-ng-core-1.2.0.jar:1.2.0] > at java.lang.Thread.run(Thread.java:722) [?:1.7.0_10] > Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { > host: localhost, port: 12345 }: Failed to send batch > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:236) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at org.apache.flume.sink.AvroSink.process(AvroSink.java:309) > ~[flume-ng-core-1.2.0.jar:1.2.0] > ... 3 more > Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { > host: localhost, port: 12345 }: RPC request exception > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:286) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:224) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at org.apache.flume.sink.AvroSink.process(AvroSink.java:309) > ~[flume-ng-core-1.2.0.jar:1.2.0] > ... 3 more > Caused by: java.util.concurrent.ExecutionException: java.io.IOException: > Error connecting to localhost/127.0.0.1:12345 > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262) > ~[?:1.7.0_10] > at java.util.concurrent.FutureTask.get(FutureTask.java:119) > ~[?:1.7.0_10] > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:278) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:224) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at org.apache.flume.sink.AvroSink.process(AvroSink.java:309) > ~[flume-ng-core-1.2.0.jar:1.2.0] > ... 3 more > Caused by: java.io.IOException: Error connecting to localhost/127.0.0.1:12345 > at > org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:249) > ~[avro-ipc-1.6.3.jar:1.6.3] > at > org.apache.avro.ipc.NettyTransceiver.getRemoteName(NettyTransceiver.java:364) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.writeHandshake(Requestor.java:202) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.access$300(Requestor.java:52) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor$Request.getBytes(Requestor.java:478) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.request(Requestor.java:147) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.request(Requestor.java:129) > ~[avro-ipc-1.6.3.jar:1.6.3] > at > org.apache.avro.ipc.specific.SpecificRequestor.invoke(SpecificRequestor.java:68) > ~[avro-ipc-1.6.3.jar:1.6.3] > at $Proxy17.appendBatch(Unknown Source) ~[?:?] > at > org.apache.flume.api.NettyAvroRpcClient$2.call(NettyAvroRpcClient.java:269) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at > org.apache.flume.api.NettyAvroRpcClient$2.call(NettyAvroRpcClient.java:265) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > ~[?:1.7.0_10] > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > ~[?:1.7.0_10] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > ~[?:1.7.0_10] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > ~[?:1.7.0_10] > ... 1 more > Caused by: java.net.ConnectException: Connection refused: no further > information > at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) > ~[?:1.7.0_10] > at > sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692) > ~[?:1.7.0_10] > at > org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:401) > ~[netty-3.2.7.Final.jar:?] > at > org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:370) > ~[netty-3.2.7.Final.jar:?] > at > org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:292) > ~[netty-3.2.7.Final.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > ~[?:1.7.0_10] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > ~[?:1.7.0_10] > ... 1 more > 15:07:16.400 [SinkRunner-PollingRunner-FailoverSinkProcessor] ERROR > org.apache.flume.SinkRunner - Unable to deliver event. Exception follows. > org.apache.flume.EventDeliveryException: All sinks failed to process, nothing > left to failover to > at > org.apache.flume.sink.FailoverSinkProcessor.process(FailoverSinkProcessor.java:191) > ~[flume-ng-core-1.2.0.jar:1.2.0] > at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147) > [flume-ng-core-1.2.0.jar:1.2.0] > at java.lang.Thread.run(Thread.java:722) [?:1.7.0_10] > Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 14.456 sec > <<< FAILURE! > testLog4Event(org.apache.logging.log4j.flume.appender.FlumeEmbeddedAgentTest) > Time elapsed: 4.88 sec <<< FAILURE! > java.lang.AssertionError: > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at org.junit.Assert.assertNotNull(Assert.java:524) > at org.junit.Assert.assertNotNull(Assert.java:535) > at > org.apache.logging.log4j.flume.appender.FlumeEmbeddedAgentTest.testLog4Event(FlumeEmbeddedAgentTest.java:176) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at > org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) > at > org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) > at > org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) > at > org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) > at > org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) > at > org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) > > Running org.apache.logging.log4j.flume.appender.FlumeEmbeddedAppenderTest > 2013-01-10 15:07:31,530 [WARN] org.apache.flume.sink.FailoverSinkProcessor > Sink agent1 failed and has been sent to failover list > org.apache.flume.EventDeliveryException: Failed to send events > at org.apache.flume.sink.AvroSink.process(AvroSink.java:325) > ~[flume-ng-core-1.2.0.jar:1.2.0] > at > org.apache.flume.sink.FailoverSinkProcessor.process(FailoverSinkProcessor.java:182) > [flume-ng-core-1.2.0.jar:1.2.0] > at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147) > [flume-ng-core-1.2.0.jar:1.2.0] > at java.lang.Thread.run(Thread.java:722) [?:1.7.0_10] > Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { > host: localhost, port: 12345 }: Failed to send batch > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:236) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at org.apache.flume.sink.AvroSink.process(AvroSink.java:309) > ~[flume-ng-core-1.2.0.jar:1.2.0] > ... 3 more > Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { > host: localhost, port: 12345 }: RPC request exception > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:286) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:224) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at org.apache.flume.sink.AvroSink.process(AvroSink.java:309) > ~[flume-ng-core-1.2.0.jar:1.2.0] > ... 3 more > Caused by: java.util.concurrent.ExecutionException: java.io.IOException: > Error connecting to localhost/127.0.0.1:12345 > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262) > ~[?:1.7.0_10] > at java.util.concurrent.FutureTask.get(FutureTask.java:119) > ~[?:1.7.0_10] > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:278) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at > org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:224) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at org.apache.flume.sink.AvroSink.process(AvroSink.java:309) > ~[flume-ng-core-1.2.0.jar:1.2.0] > ... 3 more > Caused by: java.io.IOException: Error connecting to localhost/127.0.0.1:12345 > at > org.apache.avro.ipc.NettyTransceiver.getChannel(NettyTransceiver.java:249) > ~[avro-ipc-1.6.3.jar:1.6.3] > at > org.apache.avro.ipc.NettyTransceiver.getRemoteName(NettyTransceiver.java:364) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.writeHandshake(Requestor.java:202) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.access$300(Requestor.java:52) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor$Request.getBytes(Requestor.java:478) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.request(Requestor.java:147) > ~[avro-ipc-1.6.3.jar:1.6.3] > at org.apache.avro.ipc.Requestor.request(Requestor.java:129) > ~[avro-ipc-1.6.3.jar:1.6.3] > at > org.apache.avro.ipc.specific.SpecificRequestor.invoke(SpecificRequestor.java:68) > ~[avro-ipc-1.6.3.jar:1.6.3] > at $Proxy18.appendBatch(Unknown Source) ~[?:?] > at > org.apache.flume.api.NettyAvroRpcClient$2.call(NettyAvroRpcClient.java:269) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at > org.apache.flume.api.NettyAvroRpcClient$2.call(NettyAvroRpcClient.java:265) > ~[flume-ng-sdk-1.2.0.jar:1.2.0] > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > ~[?:1.7.0_10] > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > ~[?:1.7.0_10] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > ~[?:1.7.0_10] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > ~[?:1.7.0_10] > ... 1 more > Caused by: java.net.ConnectException: Connection refused: no further > information > at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) > ~[?:1.7.0_10] > at > sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692) > ~[?:1.7.0_10] > at > org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:401) > ~[netty-3.2.7.Final.jar:?] > at > org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:370) > ~[netty-3.2.7.Final.jar:?] > at > org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:292) > ~[netty-3.2.7.Final.jar:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > ~[?:1.7.0_10] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > ~[?:1.7.0_10] > ... 1 more > Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 12.43 sec > > Results : > > Failed tests: > testLog4Event(org.apache.logging.log4j.flume.appender.FlumeEmbeddedAgentTest) > > Tests run: 12, Failures: 1, Errors: 0, Skipped: 0 > > [INFO] > ------------------------------------------------------------------------ > [INFO] Reactor Summary: > [INFO] > [INFO] Apache Log4j 2 .................................... SUCCESS [1.420s] > [INFO] Apache Log4j API .................................. SUCCESS [9.272s] > [INFO] Apache Log4J Core ................................. SUCCESS [1:44.074s] > [INFO] Apache Log4j 1.x Compatibility API ................ SUCCESS [3.789s] > [INFO] Apache Log4j SLF4J Binding ........................ SUCCESS [2.685s] > [INFO] Apache Log4j to SLF4J Adapter ..................... SUCCESS [1.845s] > [INFO] Apache Log4j Commons Logging Bridge ............... SUCCESS [3.240s] > [INFO] Apache Log4j Flume NG Bridge ...................... FAILURE [41.842s] > [INFO] Log4j Web Adapters ................................ SKIPPED > [INFO] log4j-samples ..................................... SKIPPED > [INFO] flume-common ...................................... SKIPPED > [INFO] flume-remote ...................................... SKIPPED > [INFO] flume-embedded .................................... SKIPPED > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD FAILURE > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 2:49.127s > [INFO] Finished at: Thu Jan 10 15:07:33 EST 2013 > [INFO] Final Memory: 70M/348M > [INFO] > ------------------------------------------------------------------------ > > Tested with: > > Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500) > Maven home: C:\Java\apache-maven-3.0.4\bin\.. > Java version: 1.7.0_10, vendor: Oracle Corporation > Java home: C:\Program Files\Java\jdk1.7.0_10\jre > Default locale: en_US, platform encoding: Cp1252 > OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" > > Gary > > > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > JUnit in Action, 2nd Ed: http://bit.ly/ECvg0 > Spring Batch in Action: http://bit.ly/bqpbCK > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory