[hibernate-issues] [JIRA] (HHH-13971) defective unit test DB behavior

IT Support (JIRA) jira at hibernate.atlassian.net
Wed Apr 22 19:24:53 EDT 2020


IT Support ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A7c7fc415-3805-43c8-9dfa-7cbe1117db94 ) *updated* an issue

Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiYjYyOTg0ZjZkYjA0NDc2Y2JjYjYzYjk5YzNhN2RhZDAiLCJwIjoiaiJ9 ) / Sub-task ( https://hibernate.atlassian.net/browse/HHH-13971?atlOrigin=eyJpIjoiYjYyOTg0ZjZkYjA0NDc2Y2JjYjYzYjk5YzNhN2RhZDAiLCJwIjoiaiJ9 ) HHH-13971 ( https://hibernate.atlassian.net/browse/HHH-13971?atlOrigin=eyJpIjoiYjYyOTg0ZjZkYjA0NDc2Y2JjYjYzYjk5YzNhN2RhZDAiLCJwIjoiaiJ9 ) defective unit test DB behavior ( https://hibernate.atlassian.net/browse/HHH-13971?atlOrigin=eyJpIjoiYjYyOTg0ZjZkYjA0NDc2Y2JjYjYzYjk5YzNhN2RhZDAiLCJwIjoiaiJ9 )

Change By: IT Support ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A7c7fc415-3805-43c8-9dfa-7cbe1117db94 )

This issue is not the essence of HHH-10956, but instead some other issue. It is likely an issue with the Unit Testing DB/Dialect. Further investigation will be required.

The schema generation should have produced

{code:sql}create table CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI (
nid bigint generated by default as identity,
name varchar(255),
hid_hid bigint not null,
parent_hid_hid bigint,
parent_nid bigint,
primary key (hid_hid, nid)
)

create table CompositeIdFkGeneratedValueIdentityTest$HeadI (
hid bigint generated by default as identity,
name varchar(255),
primary key (hid)
)

create table CompositeIdFkGeneratedValueIdentityTest$NodeI (
nid bigint generated by default as identity,
name varchar(255),
hid_hid bigint not null,
primary key (hid_hid, nid)
){code}

but instead it produced:

{noformat}19:06:01,221 DEBUG SQL:128 -

create table CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI (
nid bigint not null,
name varchar(255),
hid_hid bigint not null,
parent_hid_hid bigint,
parent_nid bigint,
primary key (hid_hid, nid)
)
19:06:01,228 DEBUG SQL:128 -

create table CompositeIdFkGeneratedValueIdentityTest$HeadI (
hid bigint generated by default as identity,
name varchar(255),
primary key (hid)
)
19:06:01,239 DEBUG SQL:128 -

create table CompositeIdFkGeneratedValueIdentityTest$NodeI (
nid bigint not null,
name varchar(255),
hid_hid bigint generated by default as identity,
primary key (hid_hid, nid)
)
19:06:01,241  WARN ExceptionHandlerLoggedImpl:27 - GenerationTarget encountered exception accepting command : Error executing DDL "
create table CompositeIdFkGeneratedValueIdentityTest$NodeI (
nid bigint not null,
name varchar(255),
hid_hid bigint generated by default as identity,
primary key (hid_hid, nid)
)" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "
create table CompositeIdFkGeneratedValueIdentityTest$NodeI (
nid bigint not null,
name varchar(255),
hid_hid bigint generated by default as identity,
primary key (hid_hid, nid)
)" via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:439)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:423)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:314)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:156)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:468)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)
at org.hibernate.testing.junit4.BaseCoreFunctionalTestCase.buildSessionFactory(BaseCoreFunctionalTestCase.java:119)
at org.hibernate.testing.junit4.BaseCoreFunctionalTestCase.buildSessionFactory(BaseCoreFunctionalTestCase.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hibernate.testing.junit4.TestClassMetadata.performCallbackInvocation(TestClassMetadata.java:205)
at org.hibernate.testing.junit4.TestClassMetadata.invokeCallback(TestClassMetadata.java:192)
at org.hibernate.testing.junit4.TestClassMetadata.performCallbacks(TestClassMetadata.java:184)
at org.hibernate.testing.junit4.TestClassMetadata.performBeforeClassCallbacks(TestClassMetadata.java:175)
at org.hibernate.testing.junit4.BeforeClassCallbackHandler.evaluate(BeforeClassCallbackHandler.java:25)
at org.hibernate.testing.junit4.AfterClassCallbackHandler.evaluate(AfterClassCallbackHandler.java:25)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:106)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:66)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.h2.jdbc.JdbcSQLException: Attempt to define a second primary key; SQL statement:

create table CompositeIdFkGeneratedValueIdentityTest$NodeI (
nid bigint not null,
name varchar(255),
hid_hid bigint generated by default as identity,
primary key (hid_hid, nid)
) [90017-196]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.message.DbException.get(DbException.java:144)
at org.h2.command.ddl.CreateTable.setPrimaryKeyColumns(CreateTable.java:280)
at org.h2.command.ddl.CreateTable.addConstraintCommand(CreateTable.java:86)
at org.h2.command.Parser.parseCreateTable(Parser.java:6152)
at org.h2.command.Parser.parseCreate(Parser.java:4351)
at org.h2.command.Parser.parsePrepared(Parser.java:366)
at org.h2.command.Parser.parse(Parser.java:321)
at org.h2.command.Parser.parse(Parser.java:293)
at org.h2.command.Parser.prepareCommand(Parser.java:258)
at org.h2.engine.Session.prepareLocal(Session.java:578)
at org.h2.engine.Session.prepareCommand(Session.java:519)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)
... 54 more{noformat}

resulting in the following faulty runtime:

{noformat}19:06:01,926  INFO CustomRunner:123 - Test: testCompositePkWithIdentityAndFKByIdentity2
19:06:01,930 DEBUG StatisticsInitiator:101 - Statistics initialized [enabled=false]
19:06:01,933 DEBUG SQL:128 -
insert
into
CompositeIdFkGeneratedValueIdentityTest$HeadI
(hid, name)
values
(null, ?)
19:06:01,934 TRACE BasicBinder:64 - binding parameter [1] as [VARCHAR] - [Head by Identity]
VALUE =>Head by Identity=1
19:06:01,935 DEBUG SQL:128 -
call next value for hibernate_sequence
VALUE =>Node by Identity=1:1 with parent=null
19:06:01,938 DEBUG SQL:128 -
call next value for hibernate_sequence
VALUE =>Node 2 by Identity=2:1 with parent=1:1
19:06:01,938 DEBUG SQL:128 -
insert
into
CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI
(name, parent_hid_hid, parent_nid, hid_hid, nid)
values
(?, ?, ?, ?, ?)
19:06:01,939 TRACE BasicBinder:64 - binding parameter [1] as [VARCHAR] - [Node by Identity]
19:06:01,939 TRACE BasicBinder:52 - binding parameter [2] as [BIGINT] - [null]
19:06:01,940 TRACE BasicBinder:52 - binding parameter [3] as [BIGINT] - [null]
19:06:01,940 TRACE BasicBinder:64 - binding parameter [4] as [BIGINT] - [1]
19:06:01,940 TRACE BasicBinder:64 - binding parameter [5] as [BIGINT] - [1]
19:06:01,940 DEBUG SQL:128 -
insert
into
CompositeIdFkGeneratedValueIdentityTest$ComplexNodeI
(name, parent_hid_hid, parent_nid, hid_hid, nid)
values
(?, ?, ?, ?, ?)
19:06:01,940 TRACE BasicBinder:64 - binding parameter [1] as [VARCHAR] - [Node 2 by Identity]
19:06:01,940 TRACE BasicBinder:64 - binding parameter [2] as [BIGINT] - [1]
19:06:01,941 TRACE BasicBinder:64 - binding parameter [3] as [BIGINT] - [1]
19:06:01,941 TRACE BasicBinder:64 - binding parameter [4] as [BIGINT] - [1]
19:06:01,941 TRACE BasicBinder:64 - binding parameter [5] as [BIGINT] - [2]{noformat}

The offending unit test testCompositePkWithIdentityAndFKByIdentity2 is marked as {{@Ignore}}

( https://hibernate.atlassian.net/browse/HHH-13971#add-comment?atlOrigin=eyJpIjoiYjYyOTg0ZjZkYjA0NDc2Y2JjYjYzYjk5YzNhN2RhZDAiLCJwIjoiaiJ9 ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-13971#add-comment?atlOrigin=eyJpIjoiYjYyOTg0ZjZkYjA0NDc2Y2JjYjYzYjk5YzNhN2RhZDAiLCJwIjoiaiJ9 )

Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100125- sha1:0a83519 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200422/8011e203/attachment.html 


More information about the hibernate-issues mailing list