I'm trying to follow the instructions here to setup testing environment for
Oozie: https://oozie.apache.org/docs/4.3.0/ENG_MiniOozie.html

When I run `mvn clean test`, the test phase fails. I found the following
error in target/surefire-reports/org.apache.oozie.test.WorkflowTest.txt:

>
> Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 24.68 sec
> <<< FAILURE!
> testWorkflowRun(org.apache.oozie.test.WorkflowTest)  Time elapsed: 0.156
> sec  <<< ERROR!
> java.lang.ExceptionInInitializerError
>         at org.apache.oozie.service.Services.<init>(Services.java:114)
>         at
> org.apache.oozie.test.XTestCase.cleanUpDBTables(XTestCase.java:804)
>         at org.apache.oozie.test.XTestCase.setUp(XTestCase.java:431)
>         at org.apache.oozie.test.XTestCase.setUp(XTestCase.java:280)
>         at org.apache.oozie.test.XFsTestCase.setUp(XFsTestCase.java:61)
>         at
> org.apache.oozie.test.MiniOozieTestCase.setUp(MiniOozieTestCase.java:61)
>         at org.apache.oozie.test.WorkflowTest.setUp(WorkflowTest.java:46)
>         at junit.framework.TestCase.runBare(TestCase.java:132)
>         at junit.framework.TestResult$1.protect(TestResult.java:110)
>         at junit.framework.TestResult.runProtected(TestResult.java:128)
>         at junit.framework.TestResult.run(TestResult.java:113)
>         at junit.framework.TestCase.run(TestCase.java:124)
>         at junit.framework.TestSuite.runTest(TestSuite.java:243)
>         at junit.framework.TestSuite.run(TestSuite.java:238)
>         at
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>         at org.junit.runners.Suite.runChild(Suite.java:128)
>         at org.junit.runners.Suite.runChild(Suite.java:24)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>         at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: Invalid TimeZone: UTC
>         at org.apache.oozie.util.DateUtils.getTimeZone(DateUtils.java:146)
>         at org.apache.oozie.util.DateUtils.<clinit>(DateUtils.java:44)
>         ... 23 more
> testWorkflowRunFromFile(org.apache.oozie.test.WorkflowTest)  Time elapsed:
> 0.001 sec  <<< ERROR!
> java.lang.NoClassDefFoundError: Could not initialize class
> org.apache.oozie.util.DateUtils
>         at org.apache.oozie.service.Services.<init>(Services.java:114)
>         at
> org.apache.oozie.test.XTestCase.cleanUpDBTables(XTestCase.java:804)
>         at org.apache.oozie.test.XTestCase.setUp(XTestCase.java:431)
>         at org.apache.oozie.test.XTestCase.setUp(XTestCase.java:280)
>         at org.apache.oozie.test.XFsTestCase.setUp(XFsTestCase.java:61)
>         at
> org.apache.oozie.test.MiniOozieTestCase.setUp(MiniOozieTestCase.java:61)
>         at org.apache.oozie.test.WorkflowTest.setUp(WorkflowTest.java:46)
>         at junit.framework.TestCase.runBare(TestCase.java:132)
>         at junit.framework.TestResult$1.protect(TestResult.java:110)
>         at junit.framework.TestResult.runProtected(TestResult.java:128)
>         at junit.framework.TestResult.run(TestResult.java:113)
>         at junit.framework.TestCase.run(TestCase.java:124)
>         at junit.framework.TestSuite.runTest(TestSuite.java:243)
>         at junit.framework.TestSuite.run(TestSuite.java:238)
>         at
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>         at org.junit.runners.Suite.runChild(Suite.java:128)
>         at org.junit.runners.Suite.runChild(Suite.java:24)
>         at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
>         at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)


This looks very puzzling to me. From my understanding of the code,
DateUtils has always been calling DateUtils.getTimeZone("UTC"), but isn't
that an illegal value? How has this code ever worked? (
https://github.com/apache/oozie/blob/eb168360c550943828d9fe2c7bfdcd4f5e830003/core/src/main/java/org/apache/oozie/util/DateUtils.java#L44
)

Reply via email to