[ https://issues.apache.org/jira/browse/HADOOP-13716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steve Loughran updated HADOOP-13716: ------------------------------------ Attachment: HADOOP-13716-branch-2-004.patch patch 004 for branch-2; stripped out the lambdas and ran the tests. Interesting that I had to make a local variable final...clearly java 8 is subtly different here {code} hadoop-common/src/test/java/org/apache/hadoop/fs/contract/AbstractContractRootDirectoryTest.java:[99,55] local variable root is accessed from within inner class; needs to be declared final {code} Anu, thanks for +1-ing the patch. I want to do the checkstyle warnings on this before I apply it. This patch here doesn't do that: it's just patch 003 with everything compiling/running on branch-2 > Add LambdaTestUtils class for tests; fix eventual consistency problem in > contract test setup > -------------------------------------------------------------------------------------------- > > Key: HADOOP-13716 > URL: https://issues.apache.org/jira/browse/HADOOP-13716 > Project: Hadoop Common > Issue Type: New Feature > Components: test > Affects Versions: 2.8.0 > Reporter: Steve Loughran > Assignee: Steve Loughran > Attachments: HADOOP-13716-001.patch, HADOOP-13716-002.patch, > HADOOP-13716-003.patch, HADOOP-13716-branch-2-004.patch > > > To make our tests robust against timing problems and eventual consistent > stores, we need to do more spin & wait for state. > We have some code in {{GenericTestUtils.waitFor}} to await a condition being > met, but the predicate it calls doesn't throw exceptions, there's no way for > a probe to throw an exception, and all you get is the eventual "timed out" > message. > We can do better, and in closure-ready languages (scala & scalatest, groovy > and some slider code) we've examples to follow. Some of that work has been > reimplemented slightly in {{S3ATestUtils.eventually}} > I propose adding a class in the test tree, {{Eventually}} to be a > successor/replacement for these. > # has an eventually/waitfor operation taking a predicate that throws an > exception > # has an "evaluate" exception which tries to evaluate an answer until the > operation stops raising an exception. (again, from scalatest) > # plugin backoff strategies (from Scalatest; lets you do exponential as well > as linear) > # option of adding a special handler to generate the failure exception (e.g. > run more detailed diagnostics for the exception text, etc). > # be Java 8 lambda expression friendly > # be testable and tested itself. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org