[JBoss JIRA] Created: (JGRP-563) Consolidate state transfer API to use streams
by Vladimir Blagojevic (JIRA)
Consolidate state transfer API to use streams
---------------------------------------------
Key: JGRP-563
URL: http://jira.jboss.com/jira/browse/JGRP-563
Project: JGroups
Issue Type: Task
Reporter: Vladimir Blagojevic
Assigned To: Vladimir Blagojevic
Fix For: 3.0
Although streaming state transfer has its advantages over byte based state transfer, byte based state transfer is absolutely necessary since streaming based transfer relies on plain sockets that are not firewall friendly. However, that does not mean that we cannot consolidate state transfer API at application level and mask byte based transfer with streams. We have already done this in JBC 2.0 so there is no reason not to do it on JGroups level as well.
Advantages:
- simpler state transfer API
- interchangeable state transfer mechanism without affect on application
- simplification of client application
Disadvantages:
- we break current API by eliminating getState(byte[]) and setState(byte [])
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 4 months
[JBoss JIRA] Created: (JGRP-567) Add one shot state transfer for multiple substates
by Vladimir Blagojevic (JIRA)
Add one shot state transfer for multiple substates
--------------------------------------------------
Key: JGRP-567
URL: http://jira.jboss.com/jira/browse/JGRP-567
Project: JGroups
Issue Type: Feature Request
Affects Versions: 2.x
Reporter: Vladimir Blagojevic
Assigned To: Vladimir Blagojevic
Currently (2.5) each sub state transfer requires separate state transfer invocation for each sub state. It would be very convenient if we could transfer a list of substates all in one underlying state transfer. This would require introduction of a new method in JChannel API, however we should avoid additional callbacks on application level. Proposed API for additional JChannel method is:
public boolean getState(Address target, List<String> state_ids, long timeout) throws ChannelNotConnectedException, ChannelClosedException;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 4 months
[JBoss JIRA] Created: (JBAS-7922) MDB transaction still commits when EJB container is not started, resulting in undelivered messages being ACK'd
by Robert West (JIRA)
MDB transaction still commits when EJB container is not started, resulting in undelivered messages being ACK'd
--------------------------------------------------------------------------------------------------------------
Key: JBAS-7922
URL: https://jira.jboss.org/jira/browse/JBAS-7922
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: EJB3
Affects Versions: JBossAS-5.1.0.GA
Environment: Version info:
JBoss 5.1.0 GA (we use a local build, and have updated JBoss Cache to 3.2.1.GA, JBossTS to 4.6.1.GA_CP03 and JGroups to 2.6.13.GA to pick up bug fixes for issues we have encountered in production)
ActiveMQ 5.3.0 GA
HornetQ 2.0.0 GA
Java 1.6.0_17
Mac OS 10.6.2
Reporter: Robert West
Assignee: Carlo de Wolf
Priority: Critical
Testing scenario:
Deployed JBoss 5.1.0.GA (with tweaks to the pom during build, see Environment) with a JCA adapter for an external JMS broker, used both ActiveMQ 5.3.0 and HornetQ 2.0.0, both clustered and standalone. Also tried an embedded HornetQ broker with the same results. Deployed an ear that has a simple MDB requiring container managed transactions listening to a queue with max sessions set to 2 and a simple jsp to publish an arbitrary number of text messages to that queue. The MDB simply prints the text information provided by the message, but also has a hard-coded 1 second pause for every even numbered message.
When I shut down JBoss while messages are still being consumed, the BlockContainerShutdownInterceptor starts throwing DispatcherConnectExceptions, as the EJB container has been stopped or is in the process of being stopped. However, it doesn't mark the transaction for rollback itself, and MessageInflowLocalProxy.delivery() only marks the transaction for rollback if the invocation chain throws an Error or RuntimeException. Thus, in this case, JBoss failed to deliver the message to the MDB, but committed the transaction. According to the spec, for an MDB with a container managed transaction, the message should be ACK'd to the broker if the transaction successfully commits, and both the ActiveMQ and HornetQ JCA implementations dutifully do this, resulting in all messages that were attempted to be delivered after the EJB container shutdown being lost.
When the BlockContainerShutdownInterceptor detects that the EJB container has been shutdown, it needs to take an action that will ensure the transaction is marked for rollback. After parsing through the code involved in the interceptor chain, I can see a few potential solutions:
* Have BlockContainerShutdownInterceptor.invoke() call TxUtil.getTransactionManager().setRollbackOnly() before it would throw a DispatcherConnectException. Probably need to consume any exception thrown from setRollbackOnly() and log it first I suppose, although it's always a bit odd when you get an exception thrown when you intend to throw an exception anyway for a different reason.
* Have BlockContainerShutdownInterceptor.invoke() put some state on the Invocation to indicate that delivery is being blocked. MessagingContainer.localInvoke() could then take some action based on this state to ensure the transaction is rolled back, either rolling it back itself or notifying its caller that the transaction should be rolled back. A bit odd here if BlockContainerShutdownInterceptor.invoke() continues to throw an exception, as there would be data about the exception being passed back outside the exception though.
* Have MessageInflowLocalProxy handle DispatcherConnectExceptions. It might be better to introduce an additional class, say InvocationInterruptedException that DispatcherConnectException could extend, to allow for the possibility that invocations may be interrupted for other reasons, allowing MessageInflowLocalProxy to not care as much about the particular reason invocation was halted, but still be able to roll back the transaction whenever it is.
I slightly favor the third approach based on what I've seen of that portion of the code so far, so I will probably work to put together a patch file along those lines. This is the first time I've delved deeply into the JBoss source code though. If I can find some examples of test cases in this part of the code base, I'll attempt to put together a verifying test case as well.
I marked the priority as Critical, based on the guidelines, as this is resulting in data loss and as far as I best understand the spec is a violation of the spec.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 4 months
[JBoss JIRA] Created: (JBAS-5474) @PostLoad -> LazyInitializationException: illegal access to loading collection ond a @OneToMany with FetchType.EAGER
by Stefan Lindner (JIRA)
@PostLoad -> LazyInitializationException: illegal access to loading collection ond a @OneToMany with FetchType.EAGER
--------------------------------------------------------------------------------------------------------------------
Key: JBAS-5474
URL: http://jira.jboss.com/jira/browse/JBAS-5474
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: EJB3
Affects Versions: JBossAS-4.2.2.GA
Environment: Win XP SP2, Java 1.5.0_15-b04
Reporter: Stefan Lindner
Assigned To: Carlo de Wolf
Fix For: JBossAS-4.2.3.GA
I have a bean with a @OneToMany relation mapping like
private List<TherapieeinheitBean> therapieeinheiten;
@OneToMany(
cascade = {CascadeType.REFRESH},
fetch = FetchType.EAGER,
mappedBy="therapiekatalog"
)
with FetchType.EAGER and a simnple @PostLoad like
@PostLoad
public void postLoad() {
System.out.println("!!!!!!!!!! postLoad !!!!!!!!!!");
System.out.print("size: " + therapieeinheiten.size());
}
When an entity of this bean is loaded JBoss trows
org.hibernate.LazyInitializationException: illegal access to loading collection
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:341)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:249)
at de.visiodesk.therapiekatalog.TherapiekatalogBean.postLoad(TherapiekatalogBean.java:170)
.
.
.
and prints the messages
WARN [LoadContexts] fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@2c8ce9<rs=Ingres-ResultSet[18523]>
WARN [CollectionLoadContext] On CollectionLoadContext#cleanup, localLoadingCollectionKeys contained [206] entries
afterwards. The PostLoad method should be called after the data was completely loaded. Is there a workaround for this Problem? I found some other ressources on the net where peole had the same problem, but I saw no resolution, no hint, no workaround.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 4 months
[JBoss JIRA] Created: (JBREM-1182) Update testsuite to run under Hudson
by Richard Achmatowicz (JIRA)
Update testsuite to run under Hudson
--------------------------------------
Key: JBREM-1182
URL: https://jira.jboss.org/jira/browse/JBREM-1182
Project: JBoss Remoting
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: general
Affects Versions: 2.2.3.SP1
Reporter: Richard Achmatowicz
Fix For: 2.2.3.SP2
Update the JBoss Remoting testsuite to run under Hudson. Some current problems include:
(i) on Linux, JRunit based tests are failing due to members not finding each other
(ii) on Linux, under JDK6, JRunit based tests are not able to create a JGroups stack
(iii) JRunit system properties specified by the user on the command line are not being passed the the JUnit targets correctly, and so have no effect on the tests
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 4 months
[JBoss JIRA] Created: (JBCL-94) Spaces in URLs returned by getResource() should in vfszip: handler
by Ondrej Medek (JIRA)
Spaces in URLs returned by getResource() should in vfszip: handler
------------------------------------------------------------------
Key: JBCL-94
URL: https://jira.jboss.org/jira/browse/JBCL-94
Project: JBoss ClassLoader
Issue Type: Bug
Components: ClassLoader
Environment: JBoss AS 5.0.1, WinXP, JDK 1.6.0u12
Reporter: Ondrej Medek
Priority: Minor
Hi,
I have an EAR deployed as directory (not as JAR). Inside I have one service bean and a config directory. I have tried to deploy config directory as a plain directory and packed in the JAR. I have spotted different behaviour of handling spaces in the resource URLS returned by org.jboss.classloader.spi.base.BaseClassLoader when accessing the config directory. My service bean reads config direcory by:
this.getClass().getClassLoader().getResource("conf/")
I get the URL: vfsfile:/C:/Program%20Files/JBoss/jboss-5.0.1.GA/server/default/deploy/prinsee-ear.ear/conf/
(Space is '%20')
however, when I put the resource in the JAR and access it by:
this.getClass().getClassLoader().getResource("prinsee-client.jar/conf")
I get the URL: vfszip:/C:/Program Files/JBoss/jboss-5.0.1.GA/server/default/deploy/prinsee-ear.ear/prinsee-client.jar/conf/
(Space is ' ').
I think, the behaviour of vfszip: handler is wrong. The space should be always '%20'.
Cheers
andy
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 5 months
[JBoss JIRA] Created: (JBRULES-1644) Make drools imply null checks before trying to read a value
by Alex McCarrier (JIRA)
Make drools imply null checks before trying to read a value
-----------------------------------------------------------
Key: JBRULES-1644
URL: http://jira.jboss.com/jira/browse/JBRULES-1644
Project: JBoss Drools
Issue Type: Feature Request
Components: Drl Parser/Builder
Affects Versions: 4.0.6
Environment: all
Reporter: Alex McCarrier
Assigned To: Mark Proctor
Priority: Minor
Fix For: FUTURE
Not sure if this is MVEL or drools itself, but it would be nice if it would do null checks on fields for you rather than having the rule author do it. Example, when doing something like:
when
Object(value1.value2 == something)
before attempting to read value2 it makes sure value1 is not null, and if value1 is null than rather than throwing an error like it does currently, just consider the rule as not matching.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 5 months
[JBoss JIRA] Created: (JBAS-6843) Metadata not created for deployments listed through Classpath attribute of Manifest.MF files
by jaikiran pai (JIRA)
Metadata not created for deployments listed through Classpath attribute of Manifest.MF files
--------------------------------------------------------------------------------------------
Key: JBAS-6843
URL: https://jira.jboss.org/jira/browse/JBAS-6843
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Deployers
Affects Versions: JBossAS-5.1.0.CR1, JBossAS-5.1.0.Beta1
Reporter: jaikiran pai
Assignee: Ales Justin
If a (EJB) *deployment* jar contains a MANIFEST.MF which points to another *deployment* (not a plain jar) through the ClassPath attribute, then the deployment framework does not generate metadata for the deployment listed in MANIFEST.MF
Ex: A.jar is an EJB3 deployment which contains a MANIFEST.MF pointing to B.jar (another EJB3 deployment). While processing A.jar (and its entries in MANIFEST.MF), the deployment framework does not generate metadata for B.jar
As per EJB3.0 core spec, section 20.3:
The ejb-jar file must contain, either by inclusion or by reference, the class files of each enterprise bean as follows:
- The enterprise bean class.
- The enterprise bean business interfaces, web service endpoint interfaces, and home and component interfaces.
- Interceptor classes.
- The primary key class if the bean is an entity bean.
We say that a jar file contains a second file "by reference" if the second file is named in the Class-Path attribute in the Manifest file of the referencing jar file or is contained (either by inclusion or by reference) in another jar file that is named in the Class-Path attribute in the Manifest file of the referencing jar file.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 5 months
[JBoss JIRA] Created: (JBRULES-2377) Problems with DSL / DSLR files when used with a KnowledgeAgent / Change Sets
by Macon Pegram (JIRA)
Problems with DSL / DSLR files when used with a KnowledgeAgent / Change Sets
----------------------------------------------------------------------------
Key: JBRULES-2377
URL: https://jira.jboss.org/jira/browse/JBRULES-2377
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-compiler, drools-compiler (expert), drools-compiler-DSL
Affects Versions: 5.0.1.FINAL
Environment: Windows XP, Mac OS X, JDK 1.5.0_12
Reporter: Macon Pegram
Assignee: Mark Proctor
I tried to address this on the Drools Mailing list but did not receive an answer. See:
Mailing list message threads: "[rules-users] DSL, DSLR and Changesets...", "[rules-users] Can DSL / DSLR be loaded in a changeset?"
----
Are DSL and DSLR files supported by the KnowledgeAgent / Changeset code. Here's the details of my test case:
I have a Changeset file I'm trying to load which looks like the following:
<?xml version="1.0" encoding="UTF-8"?>
<change-set xmlns='http://drools.org/drools-5.0/change-set'
xmlns:xs='http://www.w3.org/2001/XMLSchema-instance' >
<add>
<resource source="classpath:com/test/general/" type="DSL" />
<resource source="classpath:com/test/general/" type="DSLR" />
</add>
</change-set>
There's a single DSL and a single DSLR file in this folder. I'm loading the change set as follows:
KnowledgeAgent ka = KnowledgeAgentFactory.newKnowledgeAgent(agentName);
ka.applyChangeSet(ResourceFactory.newClassPathResource(agentName + "-changeset.xml", getClass()));
When I run this code, the logger suggests the DSL and DSLR are being loaded and compiled:
[2009:10:299 16:10:52:info] KnowledgAgent created, with configuration:
monitorChangeSetEvents=true scanResources=true scanDirectories=true
++ Constructing and applying changeSet: dsl-test
[2009:10:299 16:10:52:info] KnowledegAgent has started listening for ChangeSet notifications
(null: 3, 68): cvc-elt.1: Cannot find the declaration of element 'change-set'.
[2009:10:299 16:10:317:info] KnowledgAgent applying ChangeSet
[2009:10:299 16:10:317:debug] KnowledgeAgent subscribing to directory=[ClassPathResource path='com/test/general/']
[2009:10:299 16:10:317:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@b9b618 to resource=[ClassPathResource path='com/test/general/']
[2009:10:299 16:10:317:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@61ec49 to resource=[ClassPathResource path='com/test/general/']
[2009:10:299 16:10:317:debug] KnowledgeAgent subscribing to directory content resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test.dsl']
[2009:10:299 16:10:317:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@b9b618 to resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test.dsl']
[2009:10:299 16:10:317:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@61ec49 to resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test.dsl']
[2009:10:299 16:10:317:debug] KnowledgeAgent subscribing to directory content resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test-dsl.dslr']
[2009:10:299 16:10:317:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@b9b618 to resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test-dsl.dslr']
[2009:10:299 16:10:317:debug] ResourceChangeScanner subcribing notifier=org.drools.io.impl.ResourceChangeNotifierImpl@61ec49 to resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test-dsl.dslr']
[2009:10:299 16:10:317:debug] KnowledgeAgent subscribing to directory=[ClassPathResource path='com/hmc/test/general/']
[2009:10:299 16:10:317:debug] ResourceChangeNotification subscribing listener=org.drools.agent.impl.KnowledgeAgentImpl@b9b618 to resource=[ClassPathResource path='com/hmc/test/general/']
[2009:10:299 16:10:317:debug] KnowledgeAgent ChangeSet requires KnowledgeBuilder
[2009:10:299 16:10:317:debug] KnowledgeAgent rebuilding KnowledgeBase using ChangeSet
[2009:10:299 16:10:317:debug] KnowledgeAgent building resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test.dsl']
[2009:10:299 16:10:333:debug] KnowledgeAgent building resource=[FileResource file='C:\bea\user_projects\workspaces\alerts\rules-kb\test-kb\target\test-classes\com\test\general\test-dsl.dslr']
[2009:10:299 16:10:333:info] KnowledgeAgent new KnowledgeBase now built and in use
However after load is completed I try to run the following code:
System.out.println("KB Info");
Collection<KnowledgePackage> pkgs = ka.getKnowledgeBase().getKnowledgePackages();
for (KnowledgePackage kp : pkgs) {
for (Rule rule : kp.getRules()) {
System.out.println("Rule: " + rule.getName() + ", " + ule.getPackageName());
for (String attribs : rule.listMetaAttributes())
System.out.println("---- " + attribs);
}
}
}
I get NO output (except of course "KB Info").
If I initialize the knowledgebase like this:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
kbuilder.add(ResourceFactory
.newClassPathResource("com/test/general/test.dsl"),
ResourceType.DSL);
kbuilder.add(ResourceFactory
.newClassPathResource("com/test/general/test-dsl.dslr"),
ResourceType.DSLR);
if (kbuilder.hasErrors()) {
throw new Exception(kbuilder.getErrors().toString());
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
}
... and run the same output code I get a list of the rules that were loaded.
Any clues why the different behavior?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 5 months