File tree Expand file tree Collapse file tree 4 files changed +20
-2
lines changed
hibernate-core/src/main/java/org/hibernate
bytecode/enhance/internal/tracker
main/java/org/hibernate/graalvm/internal
test/java/org/hibernate/graalvm/internal Expand file tree Collapse file tree 4 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ public void callOwner(String fieldName) {
4747 }
4848 }
4949
50- @ AllowReflection
50+ @ AllowReflection // Possible array types are registered in org.hibernate.graalvm.internal.StaticClassLists.typesNeedingArrayCopy
5151 public void removeOwner (String name ) {
5252 for ( int i = 0 ; i < names .length ; i ++ ) {
5353 if ( name .equals ( names [i ] ) ) {
Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ public SessionEventListenerManagerImpl(List<SessionEventListener> initialListene
3131 }
3232
3333 @ Override
34- @ AllowReflection
34+ @ AllowReflection // Possible array types are registered in org.hibernate.graalvm.internal.StaticClassLists.typesNeedingArrayCopy
3535 public void addListener (final SessionEventListener ... additionalListeners ) {
3636 Objects .requireNonNull ( additionalListeners );
3737 final SessionEventListener [] existing = this .listeners ;
Original file line number Diff line number Diff line change 55package org .hibernate .graalvm .internal ;
66
77
8+ import org .hibernate .SessionEventListener ;
9+ import org .hibernate .engine .spi .CompositeTracker ;
810import org .hibernate .tool .schema .internal .script .MultiLineSqlScriptExtractor ;
911
1012/**
@@ -41,6 +43,10 @@ public static Class[] typesNeedingDefaultConstructorAccessible() {
4143
4244 public static Class [] typesNeedingArrayCopy () {
4345 return new Class [] {
46+ // See CompositeOwnerTracker
47+ CompositeTracker [].class ,
48+ // See SessionEventListenerManagerImpl
49+ SessionEventListener [].class ,
4450 //Eventlisteners need to be registered for reflection to allow creation via Array#newInstance ;
4551 // types need to be in synch with those declared in org.hibernate.event.spi.EventType
4652 org .hibernate .event .spi .LoadEventListener [].class ,
Original file line number Diff line number Diff line change 1515import java .util .stream .Stream ;
1616
1717import org .hibernate .Session ;
18+ import org .hibernate .SessionEventListener ;
19+ import org .hibernate .engine .spi .CompositeOwner ;
1820import org .hibernate .event .spi .EventType ;
1921import org .hibernate .internal .util .ReflectHelper ;
2022import org .hibernate .persister .collection .CollectionPersister ;
@@ -56,6 +58,16 @@ void meta_noMissingTestCategory() {
5658
5759 // TODO ORM 7: Move this inside TypesNeedingAllConstructorsAccessible (requires JDK 17) and rename to simple Category
5860 enum TypesNeedingAllConstructorsAccessible_Category {
61+ // These are needed simply because we use Arrays#copyOf with arrays of this type
62+ ARRAYS_COPY_OF {
63+ @ Override
64+ Stream <Class <?>> classes () {
65+ return Stream .of (
66+ CompositeOwner .class , // See org.hibernate.bytecode.enhance.internal.tracker.CompositeOwnerTracker
67+ SessionEventListener .class // See org.hibernate.engine.internal.SessionEventListenerManagerImpl
68+ );
69+ }
70+ },
5971 PERSISTERS {
6072 @ Override
6173 Stream <Class <?>> classes () {
You can’t perform that action at this time.
0 commit comments