Skip to content

Transaction over HotRod to a server w/security enabled throws UnsupportedOperationException #14926

@pferraro

Description

@pferraro

Describe the bug

A transaction over HotRod to a secure remote cluster currently fails with the following:

2025-05-28 17:05:19,498 ERROR [o.i.SERVER] ISPN005003: Exception reported java.lang.UnsupportedOperationException: Decorated caches should not delegate wrapping operations
    at org.infinispan.cache.impl.DecoratedCache.rewrap(DecoratedCache.java:68)
    at org.infinispan.cache.impl.AbstractDelegatingAdvancedCache.transform(AbstractDelegatingAdvancedCache.java:238)
    at org.infinispan.cache.impl.AbstractDelegatingAdvancedCache.transform(AbstractDelegatingAdvancedCache.java:237)
    at org.infinispan.security.impl.SecureCacheImpl.transform(SecureCacheImpl.java:216)
    at org.infinispan.server.hotrod.tx.PrepareCoordinator.decorateCache(PrepareCoordinator.java:211)
    at org.infinispan.server.hotrod.TransactionRequestProcessor.prepareTransactionInternal(TransactionRequestProcessor.java:134)
    at org.infinispan.server.hotrod.TransactionRequestProcessor.lambda$prepareTransaction$0(TransactionRequestProcessor.java:68)
    at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
    at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
    at java.base/java.lang.Thread.run(Thread.java:1583)

Expected behavior

No response

Actual behavior

No response

How to Reproduce?

  1. Use default server configuration from the default docker image containing a local cache configured via:
{
	"local-cache" : {
		"transaction" : {
			"mode" : "NON_XA",
			"locking" : "PESSIMISTIC"
		}
	}
}
  1. Configure transactional HotRod client using TransactionMode.NON_XA and RemoteTransactionManagerLookup.getInstance().
  2. Invoke a simple RemoteCache.put(...) within a transaction.

Output of uname -a or ver

Linux P16v 6.14.7-arch2-1 #1 SMP PREEMPT_DYNAMIC Thu, 22 May 2025 05:37:49 +0000 x86_64 GNU/Linux

Output of java -version

openjdk version "17.0.15" 2025-04-15 OpenJDK Runtime Environment (build 17.0.15+6) OpenJDK 64-Bit Server VM (build 17.0.15+6, mixed mode, sharing)

Infinispan version or git rev

15.2.2.Final

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugAn issue describing a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions