[JBoss JIRA] (JBTM-970) Allow a ServiceRequest to be annotated as read only
by Paul Robinson (Created) (JIRA)
Allow a ServiceRequest to be annotated as read only
---------------------------------------------------
Key: JBTM-970
URL: https://issues.jboss.org/browse/JBTM-970
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: TxBridge
Reporter: Paul Robinson
Assignee: Paul Robinson
Fix For: 5.0.0.M2
This class level annotation allows the class which is the target of lifecycle handler callbacks to be specified.
{code}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface ParticipantService
{
public Class lifecycleClass() default Default.class;
}
{code}
This field may be overridden in the ServiceRequest annotation itself. If the value of this field is Default.class then the ParticipantService class is used as the default class to resolve POJO lifecycle methods.
{code}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface ServiceRequest
{
public Class lifecycleClass() default Default.class;
}
{code}
If the lifecycleClass attribute is not specified in either place, the class containing the @ServiceInvocation is assumed to also contain the associated Lifecycle Handler methods.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 8 months
[JBoss JIRA] (JBTM-971) Allow a ServiceRequst method to programaticaly state that it is ReadOnly
by Paul Robinson (Created) (JIRA)
Allow a ServiceRequst method to programaticaly state that it is ReadOnly
------------------------------------------------------------------------
Key: JBTM-971
URL: https://issues.jboss.org/browse/JBTM-971
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: TxBridge
Reporter: Paul Robinson
Assignee: Paul Robinson
Fix For: 5.0.0.M2
The RequestType attribute on the ServiceRequest annotation identifies whether the service request is always read only as far as transactional modifications are concerned or, alternatively, that it may make changes to transactional data. in the latter case the service request method can indicate a read-only outcome by invoking the readOnly method of an injected control.
{code}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ServiceRequest
{
public RequestType requestType() default RequestType.MODIFY;
}
{code}
The framework does not normally register lifecycle callbacks for ServiceRequest methods whose request type is READ_ONLY (see the next paragraph for the rider which qualifies this statement). The framework does normally register callbacks for ServiceRequest methods whose request type is MODIFY, on the assumption that the method has performed transactional changes. The latter methods may inhibit registration of lifecycle methods by calling the readOnly() method of an injected transaction control.
The reason why it is important to identify READ_ONLY methods is that they affect the way the framework performs PREPARE or COMPLETE processing (as appropriate to the protocol in question). If all ServiceRequest methods in the transaction are READ_ONLY the participant will trigger READ_ONLY or EXIT callbacks, respectively, for these lifecycle events, precluding further involvement in the transaction. If any of the ServiceRequest methods is not READ_ONLY then the framework will trigger PREPARE or COMPLETE callbacks, respectively. Clearly, it would be futile for a READ_ONLY declaration or notification to inhibit registration of callbacks which are triggered by READ_ONLY or EXIT events. So, the framework only registers READ_ONLY or EXIT lifecycle callbacks when they are triggered by READ_ONLY methods or by MODIFY methods which notify their READ_ONLY status using an injected control.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 8 months
[JBoss JIRA] (JBTM-969) Specify external participant lifecycle class on a per ServiceRequest method basis
by Paul Robinson (Created) (JIRA)
Specify external participant lifecycle class on a per ServiceRequest method basis
---------------------------------------------------------------------------------
Key: JBTM-969
URL: https://issues.jboss.org/browse/JBTM-969
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: TxBridge
Reporter: Paul Robinson
Assignee: Paul Robinson
Fix For: 5.0.0.M2
This class level annotation allows the class which is the target of lifecycle handler callbacks to be specified. If this annotation is not specified, the clas contining the @ServiceInvocation is assumed to also contain the associated Lifecycle Handler methods.
{code}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface ParticipantService
{
public Class lifecycleClass() default Default.class;
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 8 months
[JBoss JIRA] (JBTM-1006) Review TXFramework test coverage
by Paul Robinson (Created) (JIRA)
Review TXFramework test coverage
--------------------------------
Key: JBTM-1006
URL: https://issues.jboss.org/browse/JBTM-1006
Project: JBoss Transaction Manager
Issue Type: Task
Security Level: Public (Everyone can see)
Components: TXFramework
Affects Versions: 5.0.0.M1
Reporter: Paul Robinson
Assignee: Paul Robinson
Priority: Minor
Fix For: 5.0.0.M2
Only the obvious "happy path" cases are tested at the moment. Need to ensure incorrect developer implementation and configuration is handled correctly.
We should also consider taking a copy of the existing XTS tests and modify to use the TXFramework. This could allow us to get some good coverage, relatively quickly.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 8 months
[JBoss JIRA] (JBTM-997) TXFramework build is broken
by Paul Robinson (Created) (JIRA)
TXFramework build is broken
---------------------------
Key: JBTM-997
URL: https://issues.jboss.org/browse/JBTM-997
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: TXFramework
Affects Versions: 5.0.0.M1
Reporter: Paul Robinson
Assignee: Paul Robinson
Priority: Critical
Fix For: 5.0.0.M2
To reproduce:
{code}
cd $NARAYANA_HOME/txframework/framework/
mvn clean install
{code}
Observe:
{code}
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project txframework: Compilation failure: Compilation failure:
[ERROR] /Users/paul/Dropbox/Redhat/backup/dev/JBOSSTS_TRUNK/narayana/txframework/framework/src/main/java/org/jboss/narayana/txframework/api/annotation/transaction/WSBA.java:[21,65] incompatible types
[ERROR] found : org.jboss.narayana.txframework.api.configuration.transaction.CompletionType
[ERROR] required: org.jboss.narayana.txframework.api.configuration.transaction.CompletionType
[ERROR] /Users/paul/Dropbox/Redhat/backup/dev/JBOSSTS_TRUNK/narayana/txframework/framework/src/main/java/org/jboss/narayana/txframework/api/annotation/service/ServiceRequest.java:[32,56] incompatible types
[ERROR] found : org.jboss.narayana.txframework.api.configuration.service.RequestType
[ERROR] required: org.jboss.narayana.txframework.api.configuration.service.RequestType
[ERROR] -> [Help 1]
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 8 months
[JBoss JIRA] (JBTM-1087) Investigate strspn issue
by Tom Jenkinson (JIRA)
Tom Jenkinson created JBTM-1087:
-----------------------------------
Summary: Investigate strspn issue
Key: JBTM-1087
URL: https://issues.jboss.org/browse/JBTM-1087
Project: JBoss Transaction Manager
Issue Type: Task
Security Level: Public (Everyone can see)
Reporter: Tom Jenkinson
Assignee: Michael Musgrove
Fix For: 5.0.0.M2
On some configurations we are getting strspn invalid read of size 8
http://albany/view/Narayana+BlackTie/job/blacktie-linux64/1361/artifact/a...
==32023== Invalid read of size 8
==32023== at 0xA151454: __strspn_sse42 (in /lib64/libc-2.12.so)
==32023== by 0x526337A: TAO_IIOP_Profile::parse_string_i(char const*) (OS_NS_string.inl:450)
==32023== by 0x523C6F8: TAO_CORBALOC_Parser::parse_string(char const*, CORBA::ORB*) (CORBALOC_Parser.cpp:214)
==32023== by 0x52859C1: CORBA::ORB::resolve_initial_references(char const*, ACE_Time_Value*) (ORB.cpp:943)
==32023== by 0x74760D8: initOrb(char*) (OrbManagement.cxx:89)
==32023== by 0x7E98E9A: atmibroker::tx::TxManager::TxManager() (TxManager.cxx:95)
==32023== by 0x7EA1C36: atmibroker::tx::OTSTxManager::OTSTxManager(char*) (OTSTxManager.cxx:37)
==32023== by 0x7EA1EDA: atmibroker::tx::OTSTxManager::create(char*) (OTSTxManager.cxx:47)
==32023== by 0x7E98967: atmibroker::tx::TxManager::get_instance() (TxManager.cxx:63)
==32023== by 0x7ED12F8: txManager_open() (TxManagerAvoid.cxx:23)
==32023== by 0x7EC05E0: tx_open (TxAvoid.cxx:53)
==32023== by 0x94BDB4E: AtmiBrokerServer::AtmiBrokerServer() (AtmiBrokerServer.cxx:408)
==32023== by 0x94BC00E: serverinit (AtmiBrokerServer.cxx:182)
==32023== by 0x4C39F7: BaseServerTest::startServer() (BaseServerTest.cxx:58)
==32023== by 0x4C3708: BaseServerTest::setUp() (BaseServerTest.cxx:46)
==32023== by 0x47A2E4: TestTxTPCall::setUp() (TestTxTPCall.cxx:72)
==32023== by 0x483D3C: CppUnit::TestCaller<TestTxTPCall>::setUp() (TestCaller.h:177)
==32023== by 0x3707A29B36: CppUnit::TestCaseMethodFunctor::operator()() const (TestCase.cpp:32)
==32023== by 0x3707A1BEA3: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (DefaultProtector.cpp:15)
==32023== by 0x3707A25C18: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (ProtectorChain.cpp:20)
==32023== by 0x3707A2595B: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (ProtectorChain.cpp:77)
==32023== by 0x3707A3164F: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (TestResult.cpp:178)
==32023== by 0x3707A2977F: CppUnit::TestCase::run(CppUnit::TestResult*) (TestCase.cpp:87)
==32023== by 0x3707A2A10B: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (TestComposite.cpp:64)
==32023== by 0x3707A2A035: CppUnit::TestComposite::run(CppUnit::TestResult*) (TestComposite.cpp:23)
==32023== by 0x3707A2A10B: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (TestComposite.cpp:64)
==32023== by 0x3707A2A035: CppUnit::TestComposite::run(CppUnit::TestResult*) (TestComposite.cpp:23)
==32023== by 0x3707A31429: CppUnit::TestResult::runTest(CppUnit::Test*) (TestResult.cpp:145)
==32023== by 0x3707A33A21: CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) (TestRunner.cpp:96)
==32023== by 0x3707A369CA: CppUnit::TextTestRunner::run(std::string, bool, bool, bool) (TextTestRunner.cpp:64)
==32023== by 0x50044B: main (TestRunner.cxx:27)
==32023== Address 0xc135620 is 0 bytes inside a block of size 5 alloc'd
==32023== at 0x4C26C7E: operator new[](unsigned long, std::nothrow_t const&) (vg_replace_malloc.c:325)
==32023== by 0x52AACB2: CORBA::string_alloc(unsigned int) (String_Alloc.cpp:39)
==32023== by 0x526333E: TAO_IIOP_Profile::parse_string_i(char const*) (IIOP_Profile.cpp:214)
==32023== by 0x523C6F8: TAO_CORBALOC_Parser::parse_string(char const*, CORBA::ORB*) (CORBALOC_Parser.cpp:214)
==32023== by 0x52859C1: CORBA::ORB::resolve_initial_references(char const*, ACE_Time_Value*) (ORB.cpp:943)
==32023== by 0x74760D8: initOrb(char*) (OrbManagement.cxx:89)
==32023== by 0x7E98E9A: atmibroker::tx::TxManager::TxManager() (TxManager.cxx:95)
==32023== by 0x7EA1C36: atmibroker::tx::OTSTxManager::OTSTxManager(char*) (OTSTxManager.cxx:37)
==32023== by 0x7EA1EDA: atmibroker::tx::OTSTxManager::create(char*) (OTSTxManager.cxx:47)
==32023== by 0x7E98967: atmibroker::tx::TxManager::get_instance() (TxManager.cxx:63)
==32023== by 0x7ED12F8: txManager_open() (TxManagerAvoid.cxx:23)
==32023== by 0x7EC05E0: tx_open (TxAvoid.cxx:53)
==32023== by 0x94BDB4E: AtmiBrokerServer::AtmiBrokerServer() (AtmiBrokerServer.cxx:408)
==32023== by 0x94BC00E: serverinit (AtmiBrokerServer.cxx:182)
==32023== by 0x4C39F7: BaseServerTest::startServer() (BaseServerTest.cxx:58)
==32023== by 0x4C3708: BaseServerTest::setUp() (BaseServerTest.cxx:46)
==32023== by 0x47A2E4: TestTxTPCall::setUp() (TestTxTPCall.cxx:72)
==32023== by 0x483D3C: CppUnit::TestCaller<TestTxTPCall>::setUp() (TestCaller.h:177)
==32023== by 0x3707A29B36: CppUnit::TestCaseMethodFunctor::operator()() const (TestCase.cpp:32)
==32023== by 0x3707A1BEA3: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (DefaultProtector.cpp:15)
==32023== by 0x3707A25C18: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (ProtectorChain.cpp:20)
==32023== by 0x3707A2595B: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (ProtectorChain.cpp:77)
==32023== by 0x3707A3164F: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (TestResult.cpp:178)
==32023== by 0x3707A2977F: CppUnit::TestCase::run(CppUnit::TestResult*) (TestCase.cpp:87)
==32023== by 0x3707A2A10B: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (TestComposite.cpp:64)
==32023== by 0x3707A2A035: CppUnit::TestComposite::run(CppUnit::TestResult*) (TestComposite.cpp:23)
==32023== by 0x3707A2A10B: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (TestComposite.cpp:64)
==32023== by 0x3707A2A035: CppUnit::TestComposite::run(CppUnit::TestResult*) (TestComposite.cpp:23)
==32023== by 0x3707A31429: CppUnit::TestResult::runTest(CppUnit::Test*) (TestResult.cpp:145)
==32023== by 0x3707A33A21: CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) (TestRunner.cpp:96)
==32023== by 0x3707A369CA: CppUnit::TextTestRunner::run(std::string, bool, bool, bool) (TextTestRunner.cpp:64)
==32023== by 0x50044B: main (TestRunner.cxx:27)
I tracked this down to a known issue:
http://sourceforge.net/mailarchive/forum.php?thread_name=201111140845.370...
The question I have, is is it valgrind, or is it the underlying strspn. I think it is the later as the build wouldn't fail if it was just a spurious report from VG.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 8 months