Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 681810 Details for
Bug 900933
Upgrade to JBoss Transactions 4.16.6.Final
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
4165-withouttestchanges.diff
4165-withouttestchanges.diff (text/x-patch), 15.70 KB, created by
tom.jenkinson
on 2012-09-26 16:46:15 UTC
(
hide
)
Description:
4165-withouttestchanges.diff
Filename:
MIME Type:
Creator:
tom.jenkinson
Created:
2012-09-26 16:46:15 UTC
Size:
15.70 KB
patch
obsolete
>Index: ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/RecoveryXids.java >=================================================================== >--- ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/RecoveryXids.java (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/RecoveryXids.java (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -142,6 +142,18 @@ > > return _whenFirstSeen.containsKey(xidImple); > } >+ >+ // JBTM-924 >+ public boolean isStale() { >+ long now = System.currentTimeMillis(); >+ // JBTM-1255 - use a different safety declaration for staleness, if you set a safety interval of 0 (using reflection) then >+ // you will detect everything as stale. The only time we actually set safetyIntervalMillis is in JBTM-895 unit test SimpleIsolatedServers >+ // so in the normal case this will behave as before >+ long threshold = _lastValidated+(2*safetyIntervalMillis < staleSafetyIntervalMillis ? staleSafetyIntervalMillis : 2*safetyIntervalMillis); >+ long diff = now - threshold; >+ boolean result = diff > 0; >+ return result; >+ } > > public boolean remove (Xid xid) > { >@@ -199,6 +211,10 @@ > private XAResource _xares; > private long _lastValidated; > >+ /** >+ * JBTM-1255 this is required to reinstate JBTM-924, see message in {@see RecoveryXids#isStale()} >+ */ >+ private static final int staleSafetyIntervalMillis = 20000; // The advice is that this (if made configurable is twice the safety interval) > // JBTM-916 removed final so 10000 is not inlined into source code until we make this configurable > // https://issues.jboss.org/browse/JBTM-842 > private static int safetyIntervalMillis = 10000; // may eventually want to make this configurable? >Index: ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java >=================================================================== >--- ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -196,10 +196,6 @@ > bottomUpRecovery(); > } > >- // JBTM-895 updated so that retrieving an XAResource triggers garbage collection, this is required because garbage collecting >- // The XA resources in a bottom up scenario (e.g. resourceInitiatedRecoveryForRecoveryHelpers) means that any xids that are >- // not eligible for recovery after the first scan may be removed as stale and due to the undocumented _xidScans check above will not be >- // reloaded > if (_xidScans != null) > { > Enumeration<XAResource> keys = _xidScans.keys(); >@@ -209,12 +205,9 @@ > XAResource theKey = keys.nextElement(); > RecoveryXids xids = _xidScans.get(theKey); > >- if (xids.remove(xid)) { >- if (xids.isEmpty()) { >- _xidScans.remove(theKey); >- } >+ // JBTM-1255 moved stale check back to bottomUpRecovery >+ if (xids.contains(xid)) > return theKey; >- } > } > } > >@@ -385,6 +378,16 @@ > resourceInitiatedRecoveryForRecoveryHelpers(); > > // JBTM-895 garbage collection is now done when we return XAResources {@see XARecoveryModule#getNewXAResource(XAResourceRecord)} >+ // JBTM-924 requires this here garbage collection, see JBTM-1155: >+ if (_xidScans != null) { >+ Set<XAResource> keys = new HashSet<XAResource>(_xidScans.keySet()); >+ for(XAResource theKey : keys) { >+ RecoveryXids recoveryXids = _xidScans.get(theKey); >+ if(recoveryXids.isStale()) { >+ _xidScans.remove(theKey); >+ } >+ } >+ } > } > > /** >Index: ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java >=================================================================== >--- ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -874,7 +874,7 @@ > * > * @return the name of the class implementing XAResourceRecordWrappingPlugin. > */ >- public String getXAResourceRecordWrappingPluginClassName() >+ public String getXaResourceRecordWrappingPluginClassName() > { > return xaResourceRecordWrappingPluginClassName; > } >@@ -884,7 +884,7 @@ > * > * @param xaResourceRecordWrappingPluginClassName the name of a class which implements XAResourceRecordWrappingPlugin. > */ >- public void setXAResourceRecordWrappingPluginClassName(String xaResourceRecordWrappingPluginClassName) >+ public void setXaResourceRecordWrappingPluginClassName(String xaResourceRecordWrappingPluginClassName) > { > synchronized(this) > { >Index: sharedbuild.xml >=================================================================== >--- sharedbuild.xml (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ sharedbuild.xml (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -81,17 +81,48 @@ > > <property name="byteman.dir" value="${global.ext.lib.dir}" /> > >- <path id="byteman.lib" > >- <pathelement location="${byteman.dir}/byteman.jar" /> >- <pathelement location="${byteman.dir}/byteman-bmunit.jar" /> >- <pathelement location="${byteman.dir}/byteman-install.jar" /> >- <pathelement location="${byteman.dir}/byteman-submit.jar" /> >- <pathelement location="${byteman.dir}/byteman-dtest.jar" /> >- <pathelement location="${java.home}/../lib/tools.jar" /> >- </path> >- > <taskdef resource="emma_ant.properties" classpathref="emma.lib" /> > >+ <condition property="isMacOS"> >+ <os family="mac"/> >+ </condition> >+ >+ <target name="path-init-mac" if="${isMacOS}"> >+ <path id="byteman.lib" > >+ <pathelement location="${byteman.dir}/byteman.jar" /> >+ <pathelement location="${byteman.dir}/byteman-bmunit.jar" /> >+ <pathelement location="${byteman.dir}/byteman-install.jar" /> >+ <pathelement location="${byteman.dir}/byteman-submit.jar" /> >+ <pathelement location="${byteman.dir}/byteman-dtest.jar" /> >+ </path> >+ <path id="perf.support.lib" > >+ <!-- jconsole performance graphing support >+ --> >+ <pathelement location="${sharedbuild.base.dir}/ext/orson-0.5.0.jar"/> >+ <pathelement location="${sharedbuild.base.dir}/ext/jcommon-1.0.10.jar"/> >+ <pathelement location="${sharedbuild.base.dir}/ext/jfreechart-1.0.6.jar"/> >+ <pathelement location="${java.home}/../Classes/jconsole.jar"/> >+ </path> >+ </target> >+ >+ <target name="path-init" unless="${isMacOS}"> >+ <path id="byteman.lib" > >+ <pathelement location="${byteman.dir}/byteman.jar" /> >+ <pathelement location="${byteman.dir}/byteman-bmunit.jar" /> >+ <pathelement location="${byteman.dir}/byteman-install.jar" /> >+ <pathelement location="${byteman.dir}/byteman-submit.jar" /> >+ <pathelement location="${byteman.dir}/byteman-dtest.jar" /> >+ <pathelement location="${java.home}/../lib/tools.jar" /> >+ </path> >+ <path id="perf.support.lib" > >+ <!-- jconsole performance graphing support >+ --> >+ <pathelement location="${sharedbuild.base.dir}/ext/orson-0.5.0.jar"/> >+ <pathelement location="${sharedbuild.base.dir}/ext/jcommon-1.0.10.jar"/> >+ <pathelement location="${sharedbuild.base.dir}/ext/jfreechart-1.0.6.jar"/> >+ <pathelement location="${java.home}/../lib/jconsole.jar"/> >+ </path> >+ </target> > > <target name="clean"> > <delete dir="${build.dir}"/> >@@ -104,7 +135,7 @@ > </for> > </target> > >- <target name="init"> >+ <target name="init" depends="path-init-mac,path-init"> > > <mkdir dir="${build.dir}"/> > <mkdir dir="${build.dir}/lib"/> >Index: ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBean.java >=================================================================== >--- ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBean.java (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBean.java (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -58,6 +58,8 @@ > private volatile boolean allowMultipleLastResources = false; > private volatile boolean disableMultipleLastResourcesWarning = false; > >+ @FullPropertyName(name = "timeout.factor") >+ private volatile int timeoutFactor = 1; > > /** > * Returns the 'var' directory path. >@@ -306,6 +308,24 @@ > } > > /** >+ * Get a factor by which all crashrec delays in the QA test suited will be multiplied >+ * @return the multiplier >+ */ >+ public int getTimeoutFactor() >+ { >+ return timeoutFactor; >+ } >+ >+ /** >+ * Set a factor by which all crashrec delays in the QA test suited will be multiplied >+ * @param timeoutFactor the factor >+ */ >+ public void setTimeoutFactor(int timeoutFactor) >+ { >+ this.timeoutFactor = timeoutFactor; >+ } >+ >+ /** > * @return the version control tag of the source used, or "unknown" > */ > public String getBuildVersion() >Index: ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/osb/mbean/ActionBean.java >=================================================================== >--- ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/osb/mbean/ActionBean.java (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/osb/mbean/ActionBean.java (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -224,10 +224,6 @@ > RecordList oldList = ra.getRecords(lt); > RecordList newList = ra.getRecords(newStatus); > >- if (lt.equals(ParticipantStatus.HEURISTIC) && !targRecord.forgetHeuristic()) { >- return false; >- } >- > // move the record from currList to targList > if (oldList.remove(targRecord)) { > >Index: ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/coordinator/ReaperElement.java >=================================================================== >--- ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/coordinator/ReaperElement.java (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/coordinator/ReaperElement.java (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -62,7 +62,7 @@ > * the current time of day in milliseconds. > */ > >- _absoluteTimeoutMills = (timeout * 1000) + System.currentTimeMillis(); >+ _absoluteTimeoutMills = (timeout * 1000L) + System.currentTimeMillis(); > > // add additional variation to distinguish instances created in the same millisecond. > _bias = getBiasCounter(); >Index: ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java >=================================================================== >--- ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -654,7 +654,7 @@ > private void doBackoffWait() > { > try { >- _stateLock.wait(_backoffPeriod * 1000); >+ _stateLock.wait(_backoffPeriod * 1000L); > } catch (InterruptedException e) { > // we can ignore this exception > } >@@ -669,7 +669,7 @@ > private void doPeriodicWait() > { > try { >- _stateLock.wait(_recoveryPeriod * 1000); >+ _stateLock.wait(_recoveryPeriod * 1000L); > } catch (InterruptedException e) { > // we can ignore this exception > } >Index: ArjunaCore/arjuna/build.xml >=================================================================== >--- ArjunaCore/arjuna/build.xml (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/arjuna/build.xml (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -48,10 +48,7 @@ > <additional.classpath> > <!-- jconsole performance graphing support > --> >- <fileset dir="${sharedbuild.base.dir}/ext/" includes="orson-0.5.0.jar"/> >- <fileset dir="${sharedbuild.base.dir}/ext/" includes="jcommon-1.0.10.jar"/> >- <fileset dir="${sharedbuild.base.dir}/ext/" includes="jfreechart-1.0.6.jar"/> >- <fileset dir="${java.home}/../lib/" includes="jconsole.jar"/> >+ <path refid="perf.support.lib" /> > </additional.classpath> > </compile.macro> > </target> >Index: ArjunaCore/scripts/setup-env.sh >=================================================================== >--- ArjunaCore/scripts/setup-env.sh (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/scripts/setup-env.sh (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -80,12 +80,15 @@ > EXT_CLASSPATH="$EXT_CLASSPATH$CPS$JBOSSTS_HOME/lib/ext/jndi.jar" > EXT_CLASSPATH="$EXT_CLASSPATH$CPS$JBOSSTS_HOME/lib/ext/jta-1_1-classes.zip" > EXT_CLASSPATH="$EXT_CLASSPATH$CPS$JBOSSTS_HOME/lib/ext/log4j-1.2.14.jar" >+EXT_CLASSPATH="$EXT_CLASSPATH$CPS$JBOSSTS_HOME/lib/ext/jboss-loggingjar" > > JACORB_CLASSPATH="$JACORB_HOME/lib/jacorb.jar" > JACORB_CLASSPATH="$JACORB_CLASSPATH$CPS$JACORB_HOME/lib/idl.jar" > JACORB_CLASSPATH="$JACORB_CLASSPATH$CPS$JACORB_HOME/lib/logkit-1.2.jar" > JACORB_CLASSPATH="$JACORB_CLASSPATH$CPS$JACORB_HOME/lib/avalon-framework-4.1.5.jar" > JACORB_CLASSPATH="$JACORB_CLASSPATH$CPS$JACORB_HOME/etc" >+JACORB_CLASSPATH="$JACORB_CLASSPATH$CPS$JACORB_HOME/lib/slf4j-jdk14-1.5.6.jar" >+JACORB_CLASSPATH="$JACORB_CLASSPATH$CPS$JACORB_HOME/lib/slf4j-api-1.5.6.jar" > > CLASSPATH=".$CPS$PRODUCT_CLASSPATH$CPS$EXT_CLASSPATH$CPS$JACORB_CLASSPATH" > export CLASSPATH >Index: ArjunaCore/scripts/withorb-setup-env.bat >=================================================================== >--- ArjunaCore/scripts/withorb-setup-env.bat (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/scripts/withorb-setup-env.bat (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -50,6 +50,7 @@ > set EXT_CLASSPATH=%EXT_CLASSPATH%;%@HOME_DIRECTORY@%\lib\ext\log4j-1.2.14.jar > set EXT_CLASSPATH=%EXT_CLASSPATH%;%@HOME_DIRECTORY@%\lib\ext\xercesImpl.jar > set EXT_CLASSPATH=%EXT_CLASSPATH%;%@HOME_DIRECTORY@%\lib\ext\xmlParserAPIs.jar >+set EXT_CLASSPATH=%EXT_CLASSPATH%;%JBOSSTS_HOME%\lib\ext\jboss-logging.jar > > rem > rem Caution: JBossTS needs a specially patched version of JacORB. >Index: ArjunaCore/scripts/setup-env.bat >=================================================================== >--- ArjunaCore/scripts/setup-env.bat (.../JBOSSTS_4_16_4_Final) (revision 38202) >+++ ArjunaCore/scripts/setup-env.bat (.../JBOSSTS_4_16_5_Final) (revision 38202) >@@ -53,7 +53,9 @@ > set EXT_CLASSPATH=%EXT_CLASSPATH%;%JBOSSTS_HOME%\lib\ext\log4j-1.2.14.jar > set EXT_CLASSPATH=%EXT_CLASSPATH%;%JBOSSTS_HOME%\lib\ext\xercesImpl.jar > set EXT_CLASSPATH=%EXT_CLASSPATH%;%JBOSSTS_HOME%\lib\ext\xmlParserAPIs.jar >+set EXT_CLASSPATH=%EXT_CLASSPATH%;%JBOSSTS_HOME%\lib\ext\jboss-logging.jar > >+ > rem > rem Caution: JBossTS needs a specially patched version of JacORB. > rem Use %JBOSSTS_HOME%\jacorb here unless you have a good reason not to. >@@ -64,6 +66,8 @@ > set JACORB_CLASSPATH=%JACORB_CLASSPATH%;%JACORB_HOME%\lib\logkit-1.2.jar > set JACORB_CLASSPATH=%JACORB_CLASSPATH%;%JACORB_HOME%\lib\avalon-framework-4.1.5.jar > set JACORB_CLASSPATH=%JACORB_CLASSPATH%;%JACORB_HOME%\etc >+set JACORB_CLASSPATH=%JACORB_CLASSPATH%;%JACORB_HOME%\lib\slf4j-jdk14-1.5.6.jar >+set JACORB_CLASSPATH=%JACORB_CLASSPATH%;%JACORB_HOME%\lib\slf4j-api-1.5.6.jar > > set CLASSPATH=.;%PRODUCT_CLASSPATH%;%EXT_CLASSPATH%;%JACORB_CLASSPATH%
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 900933
: 681810 |
681811