[hibernate-dev] Trying Hibernate 5.0.0.Beta1

Petar Tahchiev paranoiabla at gmail.com
Tue Mar 31 20:18:38 EDT 2015


Hi all,

just to confirm - I tried it with java8 and the exception is gone. I still
see the "Duplicate joins for class.." error, as well as a new foreign key
exception:

WARN : SQL Error: 1452, SQLState: 23000
ERROR: Cannot add or update a child row: a foreign key constraint fails
(`solarapparel`.`entity_filters`, CONSTRAINT `FK6yx2wc1w1yb6qa1cx4byv7mju`
FOREIGN KEY (`entity_pk`) REFERENCES `classification_feature` (`pk`))
ERROR: HHH000315: Exception executing batch [could not execute batch]
ERROR: Encountered an error executing step csv-import in job ncsvImportJob
javax.persistence.PersistenceException:
org.hibernate.exception.ConstraintViolationException: could not execute
batch
    at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763)
    at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)
    at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683)
    at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:1338)
    at
org.springframework.batch.item.database.JpaItemWriter.write(JpaItemWriter.java:84)


2015-04-01 3:13 GMT+03:00 Steve Ebersole <steve at hibernate.org>:

> Well the idea is to run the Gradle process with Java 8 (the build itself
> is a Java process too don't forget).  We pass in the older JDK specifically
> to be able to set the bootclasspath for compilation and the executable for
> running tests.  That's the theory.
>
> Interestingly I developed a simplified project to test these theories:
> https://github.com/sebersole/gradle-mixed-jdk  And of course this all
> works there.  As you'd expect right?
>
> I think the JAXB thing comes into play here as well.  Gradle does not have
> any XJC support built in, so we have to make use of its Ant support to run
> the XJC Ant tasks for JAXB model generation.  The problem there is that,
> afaik, there is no way to tell Gradle's AntBuilder to use a JDK other than
> the one that launched Gradle.  I think this is why we see a JAXB model
> defined for Java 7, rather than Java 6, because we essentially run XJC with
> Java 8.
>
> Anyway, this certainly makes the build more complex and we definitely have
> to think through all these scenarios.  In fact after Beta1, one of my todos
> is to build up the build "from scratch" using that gradle-mixed-jdk project
> as a basis.
>
> In general the plan though is to run all the tests (other than
> hibernate-java8, obviously) with the "baseline JDK, whether that be Java 6
> or 7.
>
> On Tue, Mar 31, 2015 at 6:59 PM, Sanne Grinovero <sanne at hibernate.org>
> wrote:
>
>> There are many similar issues discussed on the Lucene developer's
>> mailing list, it's an interesting read:
>>  -
>> http://mail-archives.apache.org/mod_mbox/lucene-dev/201503.mbox/%3C07c401d06aba%240b477c80%2421d67580%24%40thetaphi.de%3E
>>
>> I see no alternative than to have those test jobs actually exercising
>> ORM with JDK6, or maybe even compile it all with JDK6 except the Java8
>> additional module to be compiled with JDK8 ?
>>
>>
>>
>> On 1 April 2015 at 00:36, Steve Ebersole <steve at hibernate.org> wrote:
>> > Ahh, seems this may be an option to work around it:
>> >
>> > <quote>
>> > Using the general *Map* interface in place of the concrete
>> > *ConcurrentHashMap* type here side-steps the coupling to the Java 8
>> return
>> > type and will allow this code to be compiled with Java 8 and run on
>> Java 7.
>> > </quote>
>> >
>> > I had missed that part.
>> >
>> >
>> > On Tue, Mar 31, 2015 at 6:34 PM, Steve Ebersole <steve at hibernate.org>
>> wrote:
>> >
>> >> When I say "internal" here, I mean internal to java classes.
>> >>
>> >> On Tue, Mar 31, 2015 at 6:30 PM, Steve Ebersole <steve at hibernate.org>
>> >> wrote:
>> >>
>> >>> Nope.  It just effects any code compiled with Java 8 even though the
>> >>> change is internal.  The problem is the generated bytecode
>> incorporates
>> >>> this change.   Like I said, this should be compiled with 1.6
>> compatibility,
>> >>> but that is apparently not working atm.  I am having a struggle
>> getting a
>> >>> mixed JDK build working "just right".
>> >>>
>> >>> On Tue, Mar 31, 2015 at 6:28 PM, Petar Tahchiev <
>> paranoiabla at gmail.com>
>> >>> wrote:
>> >>>
>> >>>> According to this:
>> >>>>
>> >>>> https://gist.github.com/AlainODea/1375759b8720a3f9f094
>> >>>>
>> >>>> Notably the Java 1.7 *ConcurrentHashMap#keySet()* returns a Set<K>
>> while
>> >>>> the 1.8*ConcurrentHashMap#keySet()* returns a
>> >>>> ConcurrentHashMap.KeySetView<K,V>`.
>> >>>>
>> >>>> I think you're using some Java8 API.
>> >>>>
>> >>>>
>> >>>> 2015-04-01 2:25 GMT+03:00 Petar Tahchiev <paranoiabla at gmail.com>:
>> >>>>
>> >>>>> petar at petar-ThinkPad-X1-Carbon:~$ java -version
>> >>>>> java version "1.7.0_71"
>> >>>>> Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
>> >>>>> Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
>> >>>>> petar at petar-ThinkPad-X1-Carbon:~$ uname -a
>> >>>>> Linux petar-ThinkPad-X1-Carbon 3.16.0-33-generic #44-Ubuntu SMP Thu
>> Mar
>> >>>>> 12 12:19:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
>> >>>>> petar at petar-ThinkPad-X1-Carbon:~$
>> >>>>>
>> >>>>>
>> >>>>> 2015-04-01 2:21 GMT+03:00 Steve Ebersole <steve at hibernate.org>:
>> >>>>>
>> >>>>>> What JRE are you trying to use?  This error:
>> >>>>>>
>> >>>>>> java.lang.NoSuchMethodError: java.util.concurrent.
>> >>>>>> ConcurrentHashMap.keySet()Ljava/util/concurrent/
>> >>>>>> ConcurrentHashMap$KeySetView;
>> >>>>>>
>> >>>>>> is indicative of an issue in cross-jre support due to a change
>> >>>>>> internal to java classes.
>> >>>>>>
>> >>>>>>
>> >>>>>> On Tue, Mar 31, 2015 at 6:03 PM, Petar Tahchiev <
>> paranoiabla at gmail.com
>> >>>>>> > wrote:
>> >>>>>>
>> >>>>>>> Thanks Steve,
>> >>>>>>>
>> >>>>>>> I managed to migrate my configuration to the new
>> >>>>>>> MetamodelImplementor. Now when I run the scema export I get a lot
>> of these
>> >>>>>>> warning:
>> >>>>>>>
>> >>>>>>> INFO : HHH000400: Using dialect:
>> org.hibernate.dialect.MySQL5Dialect
>> >>>>>>> WARN : JDBC Driver reports it stores quoted identifiers in both
>> mixed
>> >>>>>>> and upper case
>> >>>>>>> WARN : HHH000072: Duplicate joins for class:
>> >>>>>>> com.xxx.platform.core.model.cms.AbstractPageModel
>> >>>>>>> WARN : HHH000072: Duplicate joins for class:
>> >>>>>>> com.xxx.platform.module.invoice.core.model.InvoicePageModel
>> >>>>>>> WARN : HHH000072: Duplicate joins for class:
>> >>>>>>> com.xxx.platform.core.model.batch.BatchStepExecutionContextModel
>> >>>>>>> WARN : HHH000072: Duplicate joins for class:
>> >>>>>>> com.xxx.platform.core.model.batch.BatchJobExecutionContextModel
>> >>>>>>> WARN : HHH000072: Duplicate joins for class:
>> >>>>>>>
>> com.xxx.platform.module.search.core.model.SearchKeywordRedirectModel
>> >>>>>>> WARN : HHH000072: Duplicate joins for class:
>> >>>>>>> com.xxx.platform.module.search.core.model.SearchPageRedirectModel
>> >>>>>>> WARN : HHH000072: Duplicate joins for class:
>> >>>>>>> com.xxx.platform.module.promotion.core.model.PromotionModel
>> >>>>>>>
>> >>>>>>> and when I run some test I get the following exception:
>> >>>>>>> java.lang.NoSuchMethodError:
>> >>>>>>>
>> java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
>> >>>>>>>     at
>> >>>>>>>
>> org.hibernate.internal.SessionFactoryImpl.iterateEntityNameResolvers(SessionFactoryImpl.java:733)
>> >>>>>>>     at
>> >>>>>>>
>> org.hibernate.internal.SessionImpl$CoordinatingEntityNameResolver.resolveEntityName(SessionImpl.java:2470)
>> >>>>>>>     at
>> >>>>>>>
>> org.hibernate.internal.SessionImpl.guessEntityName(SessionImpl.java:1992)
>> >>>>>>>     at
>> >>>>>>>
>> org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1485)
>> >>>>>>>     at
>> >>>>>>>
>> org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:163)
>> >>>>>>>     at
>> >>>>>>>
>> org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:85)
>> >>>>>>>     at
>> >>>>>>> org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:882)
>> >>>>>>>     at
>> org.hibernate.internal.SessionImpl.merge(SessionImpl.java:864)
>> >>>>>>>     at
>> org.hibernate.internal.SessionImpl.merge(SessionImpl.java:869)
>> >>>>>>>     at
>> >>>>>>>
>> org.hibernate.jpa.spi.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:1196)
>> >>>>>>>     at
>> >>>>>>>
>> org.springframework.batch.item.database.JpaItemWriter.doWrite(JpaItemWriter.java:104)
>> >>>>>>>     at
>> >>>>>>>
>> org.springframework.batch.item.database.JpaItemWriter.write(JpaItemWriter.java:83)
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> 2015-04-01 1:23 GMT+03:00 Steve Ebersole <steve at hibernate.org>:
>> >>>>>>>
>> >>>>>>>> I am told that the bug does not affect the JBoss->Central sync
>> >>>>>>>> process.  So at some point the artifacts should all be available
>> in Central
>> >>>>>>>>
>> >>>>>>>> On Tue, Mar 31, 2015 at 5:19 PM, Steve Ebersole <
>> steve at hibernate.org
>> >>>>>>>> > wrote:
>> >>>>>>>>
>> >>>>>>>>> hibernate-core seems to be the only artifact that is available
>> in
>> >>>>>>>>> JBoss Nexus.
>> >>>>>>>>>
>> >>>>>>>>> On Tue, Mar 31, 2015 at 5:18 PM, Steve Ebersole <
>> >>>>>>>>> steve at hibernate.org> wrote:
>> >>>>>>>>>
>> >>>>>>>>>> So apparently the artifacts / repo issue is a Nexus bug that is
>> >>>>>>>>>> effecting the JBoss repo (and therefore us)...
>> >>>>>>>>>> http://issues.sonatype.org/browse/NEXUS-7654
>> >>>>>>>>>>
>> >>>>>>>>>> As I pointed out in the announcement, I am managing the
>> "migration
>> >>>>>>>>>> guide" in source repo while I develop the Betas.  See
>> >>>>>>>>>>
>> https://github.com/hibernate/hibernate-orm/blob/master/working-5.0-migration-guide.md
>> >>>>>>>>>>  As far are the new bootstrapping apis, see
>> >>>>>>>>>>
>> http://docs.jboss.org/hibernate/orm/5.0/topical/html/bootstrap/NativeBootstrapping.html
>> >>>>>>>>>> and
>> >>>>>>>>>>
>> http://docs.jboss.org/hibernate/orm/5.0/topical/html/bootstrap/LegacyBootstrapping.html
>> >>>>>>>>>>
>> >>>>>>>>>> On Tue, Mar 31, 2015 at 5:07 PM, Petar Tahchiev <
>> >>>>>>>>>> paranoiabla at gmail.com> wrote:
>> >>>>>>>>>>
>> >>>>>>>>>>> Hi guys,
>> >>>>>>>>>>>
>> >>>>>>>>>>> I just tried the latest beta and I cannot compile my project.
>> >>>>>>>>>>> With the
>> >>>>>>>>>>> latest hibernate 4.3.X I was able to do this:
>> >>>>>>>>>>> -------
>> >>>>>>>>>>>         final org.hibernate.cfg.Configuration configuration =
>> >>>>>>>>>>> getHibernateConfiguration();
>> >>>>>>>>>>>         configuration.buildMappings();
>> >>>>>>>>>>>         final SchemaUpdate schemaUpdate = new
>> >>>>>>>>>>> SchemaUpdate(configuration);
>> >>>>>>>>>>> -------
>> >>>>>>>>>>>
>> >>>>>>>>>>> however it seems that the SchemaUpdate constructor has been
>> >>>>>>>>>>> removed and now
>> >>>>>>>>>>> a new one is added:
>> >>>>>>>>>>> --------
>> >>>>>>>>>>>     public SchemaUpdate(MetadataImplementor metadata) {
>> >>>>>>>>>>>         this(
>> >>>>>>>>>>> metadata.getMetadataBuildingOptions().getServiceRegistry(),
>> >>>>>>>>>>> metadata );
>> >>>>>>>>>>>     }
>> >>>>>>>>>>> ---------
>> >>>>>>>>>>>
>> >>>>>>>>>>> Also the configuration.buildMappings() method has been
>> >>>>>>>>>>> deprecated. Where do
>> >>>>>>>>>>> I get the MetadataImplementor from? Also is there any
>> changelog I
>> >>>>>>>>>>> can refer
>> >>>>>>>>>>> to?
>> >>>>>>>>>>>
>> >>>>>>>>>>> Thanks.
>> >>>>>>>>>>> --
>> >>>>>>>>>>> Regards, Petar!
>> >>>>>>>>>>> Karlovo, Bulgaria.
>> >>>>>>>>>>> ---
>> >>>>>>>>>>> Public PGP Key at:
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>> >>>>>>>>>>> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311
>> >>>>>>>>>>> 0611
>> >>>>>>>>>>> _______________________________________________
>> >>>>>>>>>>> hibernate-dev mailing list
>> >>>>>>>>>>> hibernate-dev at lists.jboss.org
>> >>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>> >>>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> --
>> >>>>>>> Regards, Petar!
>> >>>>>>> Karlovo, Bulgaria.
>> >>>>>>> ---
>> >>>>>>> Public PGP Key at:
>> >>>>>>>
>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>> >>>>>>> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311
>> 0611
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>> --
>> >>>>> Regards, Petar!
>> >>>>> Karlovo, Bulgaria.
>> >>>>> ---
>> >>>>> Public PGP Key at:
>> >>>>>
>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>> >>>>> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Regards, Petar!
>> >>>> Karlovo, Bulgaria.
>> >>>> ---
>> >>>> Public PGP Key at:
>> >>>>
>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>> >>>> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>> >>>>
>> >>>
>> >>>
>> >>
>> > _______________________________________________
>> > hibernate-dev mailing list
>> > hibernate-dev at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>
>


-- 
Regards, Petar!
Karlovo, Bulgaria.
---
Public PGP Key at:
https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611


More information about the hibernate-dev mailing list