Thanks, Greg.  I assume that dependency was there and working with DBCP
2.9, correct?

Can you try reverting the pom change above, replacing the
Jakarta transactions reference with

<dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.1_spec</artifactId>
      <version>1.1.1</version>
      <optional>true</optional>
</dependency>

Then recompile DBCP from 2.10 sources and test (just use mvn clean package
from the root of an extract of the source distribution).

Phil

On Mon, Sep 25, 2023 at 12:44 AM Greg Huber <gregh3...@gmail.com> wrote:

>   >> does your code maybe bring in the 2.0 jakarta spec jar?
>
> I do have :
>
> jakarta.transaction-api-2.0.1.jar
>
> which comes from hibernate-core 6.3.1.Final.
>
>
>
> ###############
>
> Using eclipse here are the errors
>
> The project was not built since its build path is incomplete. Cannot
> find the class file for jakarta.transaction.Synchronization. Fix the
> build path then try building this project
>
> The type jakarta.transaction.Synchronization cannot be resolved. It is
> indirectly referenced from required type
> org.hibernate.context.internal.ThreadLocalSessionContext.CleanupSync
>
>
> Here is the class that won't compile
>
> public class ThreadLocalSessionContextNoAutoClose
>          extends ThreadLocalSessionContext {
>
>      private static final long serialVersionUID = -9220338553393731611L;
>
>      /**
>       * Create a new instance.
>       *
>       * @param factory The <code>SessionFactoryImplementor</code>
> required by the
>       *                super constructor.
>       */
>      public ThreadLocalSessionContextNoAutoClose(
>              SessionFactoryImplementor factory) {
>          super(factory);
>      }
>
>      /**
>       * Returns <code>false</code> to prevent auto closing.
>       *
>       * @return <code>false</code> to prevent auto closing.
>       */
>      protected boolean isAutoCloseEnabled() {
>          return false;
>      }
>
>      /**
>       * Returns <code>false</code> to prevent auto flushing.
>       *
>       * @return <code>false</code> to prevent auto flushing.
>       */
>      protected boolean isAutoFlushEnabled() {
>          return false;
>      }
>
>      /**
>       * Uses <code>super.buildOrObtainSession()</code>, then sets the
> resulting
>       * <code>Session</code>'s flush mode to <code>FlushMode.NEVER</code>
> to
>       * prevent auto-flushing.
>       *
>       * @return A session configured with <code>FlushMode.NEVER</code>.
>       */
>      protected Session buildOrObtainSession() {
>          Session s = super.buildOrObtainSession();
>          s.setHibernateFlushMode(FlushMode.MANUAL);
>          return s;
>      }
>
>      /**
>       * Returns an instance of <code>CleanupSynch</code> which prevents
> auto
>       * closing and unbinding.
>       *
>       * @return A <code>CleanupSynch</code> which prevents auto closing and
>       *         unbinding.
>       */
>      protected CleanupSync buildCleanupSynch() {
>          return new NoCleanupSynch(factory());
>      }
>
>      /**
>       * A simple extension of <code>CleanupSynch</code> that prevents
> any cleanup
>       * from happening. No session closing or unbinding.
>       */
>      private static class NoCleanupSynch
>              extends ThreadLocalSessionContext.CleanupSync {
>
>          private static final long serialVersionUID =
> -6191453375299821467L;
>
>          /**
>           * Creates a new instance based on the given factory.
>           *
>           * @param factory The required <code>SessionFactory</code> that is
>           *                passed to the super constructor.
>           */
>          public NoCleanupSynch(SessionFactory factory) {
>              super(factory);
>          }
>
>          /**
>           * Does nothing, thus helping to prevent session closing and/or
>           * unbinding.
>           */
>          public void beforeCompletion() {
>              // do nothing
>          }
>
>          /**
>           * Does nothing, thus helping to prevent session closing and/or
>           * unbinding.
>           *
>           * @param i
>           */
>          public void afterCompletion(int i) {
>              // do nothing
>          }
>      }
>
> }
>
> Thanks.
>
> On 24/09/2023 20:34, Phil Steitz wrote:
> > On Sun, Sep 24, 2023 at 10:28 AM Greg Huber<gregh3...@gmail.com>  wrote:
> >
> >> Forgot to add, I use hibernate 6.
> >>
> > I suspect this is a side effect of the change to use the jakarta spec jar
> >
> > In 2.10, we have
> >
> > <dependency>
> >      <groupId>jakarta.transaction</groupId>
> >      <artifactId>jakarta.transaction-api</artifactId>
> >      <version>1.3.1</version>
> > </dependency>
> >
> > vs
> >
> > <dependency>
> >        <groupId>org.apache.geronimo.specs</groupId>
> >        <artifactId>geronimo-jta_1.1_spec</artifactId>
> >        <version>1.1.1</version>
> >        <optional>true</optional>
> > </dependency>
> >
> > in 2.9.  What I don't get is where Greg's code is picking
> > up jakarta.transaction.Synchronization because the jakarta version we
> > "upgraded" to still exports the javax classes and these are what dbcp
> > uses.  Greg - does your code maybe bring in the 2.0 jakarta spec jar?
> >
> > Phil
> >
> >
> >> Cheers.
> >>
> >> On Sun, 24 Sept 2023 at 12:49, Gary Gregory<garydgreg...@gmail.com>
> >> wrote:
> >>
> >>> What else has changed in your app?
> >>>
> >>> Gary
> >>>
> >>> On Sun, Sep 24, 2023 at 5:13 AM Greg Huber<gregh3...@gmail.com>
> wrote:
> >>>> Hello,
> >>>>
> >>>> On upgrading from 2.9.0 I get this message and my class won't compile.
> >>>>
> >>>> I get this error
> >>>>
> >>>> The type jakarta.transaction.Synchronization cannot be resolved. It is
> >>>> indirectly referenced from required type
> >>>> org.hibernate.context.internal.ThreadLocalSessionContext.CleanupSync
> >>>>
> >>>> I am on :
> >>>>
> >>>> openjdk version "11.0.19" 2023-04-18 LTS
> >>>> OpenJDK Runtime Environment Zulu11.64+19-CA (build 11.0.19+7-LTS)
> >>>> OpenJDK 64-Bit Server VM Zulu11.64+19-CA (build 11.0.19+7-LTS, mixed
> >>> mode)
> >>>> Not too sure what I need to do to fix this.
> >>>>
> >>>> Cheers
> >>>>
> >>>> On 03/09/2023 22:51, Gary Gregory wrote:
> >>>>> The Apache Commons DBCP team is pleased to announce the release of
> >>>>> Apache Commons DBCP 2.10.0.
> >>>>>
> >>>>> Apache Commons DBCP software implements Database Connection Pooling.
> >>>>>
> >>>>> This is a minor release, including bug fixes and enhancements:
> >>>>>
> >>
> https://commons.apache.org/proper/commons-dbcp/changes-report.html#a2.10.0
> >>>>> For complete information on Apache Commons DBCP, including
> >>>>> instructions on how to submit bug reports, patches, or suggestions
> >> for
> >>>>> improvement, see the Apache Commons DBCP website:
> >>>>>
> >>>>> https://commons.apache.org/dbcp/
> >>>>>
> >>>>> Download page:https://commons.apache.org/dbcp/download_dbcp.cgi
> >>>>>
> >>>>> Gary Gregory
> >>>>> Apache Commons
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail:user-unsubscr...@commons.apache.org
> >>>>> For additional commands, e-mail:user-h...@commons.apache.org
> >>>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail:user-unsubscr...@commons.apache.org
> >>>> For additional commands, e-mail:user-h...@commons.apache.org
> >>>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail:user-unsubscr...@commons.apache.org
> >>> For additional commands, e-mail:user-h...@commons.apache.org
> >>>
> >>>

Reply via email to