If I am understanding this correctly, I replace

<!-- For managed connections -->
<dependency>
     <groupId>jakarta.transaction</groupId>
     <artifactId>jakarta.transaction-api</artifactId>
     <version>1.3.1</version>
</dependency>

with

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

in the source of 2.10.0 pom.xml and then mvn clean package.

I get this error

[ERROR] Failed to execute goal org.moditect:moditect-maven-plugin:1.0.0.Final:add-module-info (add-module-infos) on project commons-dbcp2: Execution add-module-infos of goal org.moditect:moditect-maven-plugin:1.0.0.Final:add-module-info failed: No assignedModuleName provided for jar with invalid module name: ~/.m2/repository/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar -> [Help 1]

#####


I did a diff of my apps /lib folder between the 2.10.0 and 2.9.0

Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.9: commons-dbcp2-2.9.0.jar Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.10: commons-dbcp2-2.10.0.jar

Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.9: commons-pool2-2.10.0.jar Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.10: commons-pool2-2.11.1.jar

Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.9: jakarta.transaction-api-2.0.1.jar Only in ~/downloads/commons-dbcp2-2.10.0-src/target/lib.10: jakarta.transaction-api-1.3.1.jar


If I copy lib.9: jakarta.transaction-api-2.0.1.jar to replace the lib.10: jakarta.transaction-api-1.3.1.jar class ThreadLocalSessionContextNoAutoClose compiles and works.

Cheers Greg

On 25/09/2023 18:49, Phil Steitz wrote:
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



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to