Bug 1277249

Summary: showInDoubtTransactions fails with InvocationTargetException
Product: [JBoss] JBoss Data Grid 6 Reporter: Shay Matasaro <smatasar>
Component: InfinispanAssignee: Pedro Ruivo <pruivo>
Status: CLOSED UPSTREAM QA Contact: Martin Gencur <mgencur>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2.1CC: dereed, jdg-bugs, ttarrant, wfink
Target Milestone: ER2   
Target Release: 6.6.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:48:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Shay Matasaro 2015-11-02 19:45:21 UTC
given  a transaction cache with recovery enabled 

new ConfigurationBuilder().clustering()
.cacheMode(CacheMode.REPL_SYNC).transaction() .transactionMode(TransactionMode.TRANSACTIONAL).recovery().enable().jmxStatistics().enable()

When using jcosnole to showInDoubtTransactions  , an InvocationTargetException is thrown

Comment 2 dereed 2015-11-02 20:14:16 UTC
The Recovery MBean uses different checks than the RecoveryManager itself.

RecoveryManagerFactory checks whether recovery is enabled with:

      boolean recoveryEnabled = configuration.transaction().recovery().enabled()
            && !configuration.transaction().useSynchronization();

But InternalCacheFactory has a *different* check to enable the recovery MBean:

    if (configuration.transaction().transactionMode().isTransactional() && configuration.transaction().recovery().enabled())

So with this config, the MBean is enabled, but the RecoveryManager isn't, causing NullPointerExceptions (which just show up as InvocationTargetException in JConsole) when it's used.

Comment 3 dereed 2015-11-02 20:20:01 UTC
Also, it should log a WARN (or maybe even ERROR) if recovery().enabled(),
but the other useSynchronization() or isTransactional() checks don't pass so it doesn't really get enabled.

Comment 4 Shay Matasaro 2015-11-02 20:24:52 UTC
this issue also happens at the latest version

Comment 5 Shay Matasaro 2015-11-04 15:03:59 UTC
is there a viable workaround for 6.2 ?

Comment 9 Red Hat Bugzilla 2025-02-10 03:48:25 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.