Bug 1277249 - showInDoubtTransactions fails with InvocationTargetException
Summary: showInDoubtTransactions fails with InvocationTargetException
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: JBoss Data Grid 6
Classification: JBoss
Component: Infinispan
Version: 6.2.1
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ER2
: 6.6.0
Assignee: Pedro Ruivo
QA Contact: Martin Gencur
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-11-02 19:45 UTC by Shay Matasaro
Modified: 2025-02-10 03:48 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-02-10 03:48:25 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker ISPN-5922 0 Major Resolved Recovery MBean showInDoubtTransactions fails because of missing RecoveryManager 2016-01-07 15:47:58 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.