[
https://issues.apache.org/jira/browse/OOZIE-3125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Attila Sasvari updated OOZIE-3125:
----------------------------------
Attachment: OOZIE-3125-amend-1.patch
Amendment patch:
- New oozie site xml, hsqldb-tools-oozie-site.xml, with
sql.enforce_strict_size=true, used in TestDBLoadDump tests
- Executed tests: {{mvn clean test
-Dtest=TestCoordMaterializeTransitionXCommand,TestConfigurationService,TestCoordActionMissingDependenciesXCommand,TestCoordMaterializeTransitionXCommand,TestDBLoadDump
-Denforcer.skip=true -Dcheckstyle.skip=true -Dfindbugs.skip=true}}
> TestDBLoadDump.testImportInvalidDataLeavesTablesEmpty fails
> -----------------------------------------------------------
>
> Key: OOZIE-3125
> URL: https://issues.apache.org/jira/browse/OOZIE-3125
> Project: Oozie
> Issue Type: Bug
> Components: tests
> Reporter: Attila Sasvari
> Assignee: Attila Sasvari
> Priority: Minor
> Fix For: 5.0.0b1
>
> Attachments: OOZIE-3125-001.patch, OOZIE-3125-002.patch,
> OOZIE-3125-amend-1.patch
>
>
> Running {{mvn test
> -Dtest=TestDBLoadDump#testImportInvalidDataLeavesTablesEmpty}} results in a
> test failure:
> {code}
> [ERROR]
> TestDBLoadDump.testImportInvalidDataLeavesTablesEmpty:136->tryImportAndCheckPrematureExit:271
> import should have been ended prematurely
> {code}
> {{TestDBLoadDump.testImportInvalidDataLeavesTablesEmpty}} tests that
> processing an invalid dump file results in transactions are rolled back and
> tables are left unpopulated (empty).
> {{tools/src/test/resources/dumpData/invalid/ooziedb_ac.json}} contains an
> {{executionPath}} that consists of more than 1024 characters (2000).
> {{OozieDBImportCLI.importOneInputFileToOneEntityTable}} deserialize the
> WorkflowActionBean object from the JSON using {{final E newEntity =
> gson.fromJson(line, entityClass);}} . However, persisting this object should
> fail even because invariants (see {{@Column(name = "execution_path", length =
> 1024)}} in {{WorkflowActionBean}}) do not hold.
> In the setup method of TestDBLoadDump, {{setSqlStricEnforce()}} is used to
> make sure strict size is enforced:
> {code}
> private void setSqlStrictEnforce(final EntityManager entityManager) {
> final String sqlStrictEnforce = "SET PROPERTY
> \"sql.enforce_strict_size\" TRUE";
> final EntityTransaction tx = entityManager.getTransaction();
> tx.begin();
> entityManager.createNativeQuery(sqlStrictEnforce).executeUpdate();
> tx.commit();
> }
> {code}
> However it does not seem to take effect. [HSQL db's
> documentation|http://hsqldb.org/doc/guide/dbproperties-chapt.html] says:
> {quote}
> Management of properties has changed since version 1.8. The old SET PROPERTY
> statement does not change a property and is ignored. The statement is
> retained to simplify application upgrades.
> {quote}
> Running {{mvn dependency:tree}}, it turns out Oozie core uses 1.8.0.10
> {code}
> [INFO] +- hsqldb:hsqldb:jar:1.8.0.10:compile
> {code}
> It is, however, strange that tests pass if running all the test cases in
> TestDBLoadDump with {{mvn test -Dmaven.surefire.debug
> -Dtest=TestDBLoadDump}}. In other words, tests are not independent of
> execution order.
> Looking at a successfull test execution in surefire-reports
> ({{TEST-org.apache.oozie.tools.TestDBLoadDump.xml}}) :
> {code}
> <testcase name="testImportTablesOverflowBatchSize"
> classname="org.apache.oozie.tools.TestDBLoadDump" time="25.362"/>
> <testcase name="testImportToNonExistingTablesSucceedsOnHsqldb"
> classname="org.apache.oozie.tools.TestDBLoadDump" time="0.559"/>
> <testcase name="testImportInvalidDataLeavesTablesEmpty"
> classname="org.apache.oozie.tools.TestDBLoadDump" time="0.708"/>
> <testcase name="testImportToNonEmptyTablesCausesPrematureExit"
> classname="org.apache.oozie.tools.TestDBLoadDump" time="1.066"/>
> <testcase name="testImportedDBIsExportedCorrectly"
> classname="org.apache.oozie.tools.TestDBLoadDump" time="1.135"/>
> {code}
> We shall make sure individual tests pass. As a first step,
> {{TestDBLoadDump.testImportInvalidDataLeavesTablesEmpty}} is to be fixed.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)