[ 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)