modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
| 5 +++
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
| 16 ++++++----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceAlreadyExistsException.java
| 9 +++++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeAlreadyExistsException.java
| 7 ++++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupAlreadyExistsException.java
| 7 ++++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
| 6 +++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupUpdateException.java
| 8 +++++
7 files changed, 52 insertions(+), 6 deletions(-)
New commits:
commit 9d56ea4c0431e91ffb25ca1fab29e7fc17305534
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Mar 5 14:41:13 2013 -0500
Several of our Exception classes need to be annotated as ApplicationExceptions.
This prevents them from being wrapped as EJBExceptions when returned out of
a transaction context (and therefore more easily caught as the expected exception
type).
Most of these, the specific "return-value-oriented" AlreadyExists exceptions
should not
mark the Txc for rollback.
More general exceptions can still be marked as ApplicationException, to avoid the
wrapping, but should in fact rollback the Tx, because the problem is not specific and
may be terminal to the logical operation.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceAlreadyExistsException.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceAlreadyExistsException.java
index 1afef20..6660e93 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceAlreadyExistsException.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceAlreadyExistsException.java
@@ -18,7 +18,14 @@
*/
package org.rhq.enterprise.server.resource;
-public class ResourceAlreadyExistsException extends Exception {
+import javax.ejb.ApplicationException;
+
+/**
+ * Declare this an {@link ApplicationException} because we don't want these to be
wrapped or to rollback an ongoing
+ * transaction.
+ */
+@ApplicationException(rollback = false, inherited = true)
+public class ResourceAlreadyExistsException extends RuntimeException {
private static final long serialVersionUID = -8394759185254688952L;
public ResourceAlreadyExistsException() {
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeAlreadyExistsException.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeAlreadyExistsException.java
index 1a65ed7..d0c4b97 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeAlreadyExistsException.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceTypeAlreadyExistsException.java
@@ -18,6 +18,13 @@
*/
package org.rhq.enterprise.server.resource;
+import javax.ejb.ApplicationException;
+
+/**
+ * Declare this an {@link ApplicationException} because we don't want these to be
wrapped or to rollback an ongoing
+ * transaction.
+ */
+@ApplicationException(rollback = false, inherited = true)
public class ResourceTypeAlreadyExistsException extends RuntimeException {
private static final long serialVersionUID = 1169791095984659926L;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupAlreadyExistsException.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupAlreadyExistsException.java
index ddbd79f..eeedd2d 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupAlreadyExistsException.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupAlreadyExistsException.java
@@ -18,6 +18,13 @@
*/
package org.rhq.enterprise.server.resource.group;
+import javax.ejb.ApplicationException;
+
+/**
+ * Declare this an {@link ApplicationException} because we don't want these to be
wrapped or to rollback an ongoing
+ * transaction.
+ */
+@ApplicationException(rollback = false, inherited = true)
public class ResourceGroupAlreadyExistsException extends ResourceGroupUpdateException {
private static final long serialVersionUID = 1L;
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
index ceffcac..6e40bb5 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupManagerRemote.java
@@ -35,6 +35,12 @@ public interface ResourceGroupManagerRemote {
void addResourcesToGroup(Subject subject, int groupId, int[] resourceIds);
+ /**
+ * @param subject
+ * @param resourceGroup
+ * @return The new ResourceGroup
+ * @throws ResourceGroupAlreadyExistsException
+ */
ResourceGroup createResourceGroup(Subject subject, ResourceGroup resourceGroup);
void deleteResourceGroup(Subject subject, int groupId) throws
ResourceGroupNotFoundException,
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupUpdateException.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupUpdateException.java
index 7dd0701..c0dc346 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupUpdateException.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/ResourceGroupUpdateException.java
@@ -18,6 +18,14 @@
*/
package org.rhq.enterprise.server.resource.group;
+import javax.ejb.ApplicationException;
+
+/**
+ * Declare this an {@link ApplicationException} because we don't want these to be
wrapped. But, this is a general
+ * exception, so do allow the Tx to be marked for rollback. Only certain specific
exceptions should allow the Tx to
+ * continue.
+ */
+@ApplicationException(rollback = true, inherited = true)
public class ResourceGroupUpdateException extends RuntimeException {
private static final long serialVersionUID = 9079807311008826697L;
commit 92386ac7ed74e3ed05c80fd184733db794c9c197
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Mar 5 14:37:24 2013 -0500
Add some overrides for unsupported global Criteria methods on the
drift criteria classes that must conform to the server plugin's interface.
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
index b6c02da..97ce68b 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
@@ -292,6 +292,11 @@ public class JPADriftChangeSetCriteria extends Criteria implements
DriftChangeSe
}
@Override
+ public void addSortId(PageOrdering pageOrdering) {
+ throw new UnsupportedOperationException("The sort is not supported by
DriftChangeSetCriteria.");
+ }
+
+ @Override
public void addFilterIds(Integer... filterIds) {
throw new UnsupportedOperationException("The filter is not supported by
DriftChangeSetCriteria.");
}
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
index b222b58..56f0ddf 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
@@ -107,11 +107,6 @@ public class JPADriftCriteria extends Criteria implements
DriftCriteria {
}
@Override
- public void addFilterIds(Integer... filterIds) {
- throw new UnsupportedOperationException("The filter is not supported by
DriftCriteria.");
- }
-
- @Override
public String getFilterId() {
return (null == filterId) ? null : filterId.toString();
}
@@ -248,4 +243,15 @@ public class JPADriftCriteria extends Criteria implements
DriftCriteria {
public PageOrdering getSortCtime() {
return sortCtime;
}
+
+ @Override
+ public void addFilterIds(Integer... filterIds) {
+ throw new UnsupportedOperationException("The filter is not supported by
DriftCriteria.");
+ }
+
+ @Override
+ public void addSortId(PageOrdering pageOrdering) {
+ throw new UnsupportedOperationException("The sort is not supported by
DriftCriteria.");
+ }
+
}
Show replies by date