diff --git a/gradle/java-module.gradle b/gradle/java-module.gradle index eb50f191b4..3b2d30d904 100644 --- a/gradle/java-module.gradle +++ b/gradle/java-module.gradle @@ -14,7 +14,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'de.thetaphi:forbiddenapis:3.2' + classpath 'de.thetaphi:forbiddenapis:3.5.1' } } @@ -516,6 +516,7 @@ task forbiddenApisUnsafe(type: CheckForbiddenApis, dependsOn: compileJava) { task forbiddenApisNonPortable(type: CheckForbiddenApis, dependsOn: compileJava) { bundledSignatures += 'jdk-non-portable' + suppressAnnotations += ['org.hibernate.internal.build.AllowNonPortable'] } task forbiddenApis { diff --git a/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionClosedEvent.java b/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionClosedEvent.java index 66244806a9..835a2cea1f 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionClosedEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionClosedEvent.java @@ -6,6 +6,8 @@ */ package org.hibernate.event.jfr; +import org.hibernate.internal.build.AllowNonPortable; + import jdk.jfr.Category; import jdk.jfr.Description; import jdk.jfr.Event; @@ -21,6 +23,7 @@ import jdk.jfr.StackTrace; @Category("Hibernate ORM") @Description("Hibernate Session closed") @StackTrace(false) +@AllowNonPortable public class SessionClosedEvent extends Event { public static final String NAME = "org.hibernate.orm.SessionClosed"; diff --git a/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionOpenEvent.java b/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionOpenEvent.java index 4620808699..379603ecaf 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionOpenEvent.java +++ b/hibernate-core/src/main/java/org/hibernate/event/jfr/SessionOpenEvent.java @@ -6,6 +6,8 @@ */ package org.hibernate.event.jfr; +import org.hibernate.internal.build.AllowNonPortable; + import jdk.jfr.Category; import jdk.jfr.Description; import jdk.jfr.Event; @@ -21,6 +23,7 @@ import jdk.jfr.StackTrace; @Category("Hibernate ORM") @Description("Hibernate Session opened") @StackTrace(false) +@AllowNonPortable public class SessionOpenEvent extends Event { public static final String NAME = "org.hibernate.orm.SessionOpened"; diff --git a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java index 3965abf4dc..eb44f02607 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java @@ -110,6 +110,7 @@ import org.hibernate.event.spi.SaveOrUpdateEventListener; import org.hibernate.graph.GraphSemantic; import org.hibernate.graph.internal.RootGraphImpl; import org.hibernate.graph.spi.RootGraphImplementor; +import org.hibernate.internal.build.AllowNonPortable; import org.hibernate.internal.util.ExceptionHelper; import org.hibernate.jpa.internal.LegacySpecHelper; import org.hibernate.jpa.internal.util.ConfigurationHelper; @@ -227,6 +228,7 @@ public class SessionImpl // TODO: this is unused and can be removed private transient boolean isEnforcingFetchGraph; + @AllowNonPortable public SessionImpl(SessionFactoryImpl factory, SessionCreationOptions options) { super( factory, options ); @@ -423,6 +425,7 @@ public class SessionImpl closeWithoutOpenChecks(); } + @AllowNonPortable public void closeWithoutOpenChecks() throws HibernateException { if ( log.isTraceEnabled() ) { log.tracef( "Closing session [%s]", getSessionIdentifier() ); diff --git a/hibernate-core/src/main/java/org/hibernate/internal/build/AllowNonPortable.java b/hibernate-core/src/main/java/org/hibernate/internal/build/AllowNonPortable.java new file mode 100644 index 0000000000..b562abb646 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/internal/build/AllowNonPortable.java @@ -0,0 +1,14 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html + */ +package org.hibernate.internal.build; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention( RetentionPolicy.CLASS ) +public @interface AllowNonPortable { +}