You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2015/11/12 16:00:59 UTC

svn commit: r1714062 - in /aries/trunk/transaction: transaction-blueprint/src/main/java/org/apache/aries/transaction/ transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/ transaction-testbundle/src/main/java/org/apache/aries/transa...

Author: cschneider
Date: Thu Nov 12 15:00:59 2015
New Revision: 1714062

URL: http://svn.apache.org/viewvc?rev=1714062&view=rev
Log:
[ARIES-1450] Fix some issues reported by sonar

Modified:
    aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/ComponentTxData.java
    aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java
    aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java
    aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java
    aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/AnnotationProcessor.java
    aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/TxNamespaceHandler.java
    aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java
    aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java
    aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java

Modified: aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/ComponentTxData.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/ComponentTxData.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/ComponentTxData.java (original)
+++ aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/ComponentTxData.java Thu Nov 12 15:00:59 2015
@@ -8,41 +8,58 @@ import java.util.Map;
 import javax.transaction.Transactional;
 import javax.transaction.Transactional.TxType;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 public class ComponentTxData {
+    private static final Logger LOG = LoggerFactory.getLogger(ComponentTxData.class);
     private static final int BANNED_MODIFIERS = Modifier.PRIVATE | Modifier.STATIC;
     
     Map<Method, TxType> txMap = new HashMap<Method, Transactional.TxType>();
     private boolean isTransactional;
     private Class<?> beanClass;
     
-    TxType getEffectiveType(Method m) {
-        try {
-            Method effectiveMethod = beanClass.getDeclaredMethod(m.getName(), m.getParameterTypes());
-            return txMap.get(effectiveMethod);
-        } catch (NoSuchMethodException e) {
-            try {
-                Method effectiveMethod = beanClass.getMethod(m.getName(), m.getParameterTypes());
-                return txMap.get(effectiveMethod);
-            } catch (NoSuchMethodException e1) {
-                return null;
-            } catch (SecurityException e1) {
-                throw new RuntimeException("Security exception when determining effective method", e1);
-            }
-        } catch (SecurityException e) {
-            throw new RuntimeException("Security exception when determining effective method", e);
-        }
-    }
-    
     public ComponentTxData(Class<?> c) {
         beanClass = c;
         isTransactional = false;
         // Check class hierarchy
-        while (c != Object.class) {
-            isTransactional |= parseTxData(c);
-            for (Class<?> iface : c.getInterfaces()) {
+        Class<?> current = c;
+        while (current != Object.class) {
+            isTransactional |= parseTxData(current);
+            for (Class<?> iface : current.getInterfaces()) {
                 isTransactional |= parseTxData(iface);
             }
-            c = c.getSuperclass();
+            current = current.getSuperclass();
+        }
+    }
+    
+    TxType getEffectiveType(Method m) {
+        if (txMap.containsKey(m)) {
+                return txMap.get(m);
+        }
+        try {
+            Method effectiveMethod = beanClass.getDeclaredMethod(m.getName(), m.getParameterTypes());
+            TxType txType = txMap.get(effectiveMethod);
+            txMap.put(m, txType);
+            return txType;
+        } catch (NoSuchMethodException e) { // NOSONAR
+            return getFromMethod(m);
+        } catch (SecurityException e) {
+            throw new RuntimeException("Security exception when determining effective method", e); // NOSONAR
+        }
+    }
+
+    private TxType getFromMethod(Method m) {
+        try {
+            Method effectiveMethod = beanClass.getMethod(m.getName(), m.getParameterTypes());
+            TxType txType = txMap.get(effectiveMethod);
+            txMap.put(m, txType);
+            return txType;
+        } catch (NoSuchMethodException e1) {
+            LOG.debug("No method found when scanning for transactions", e1);
+            return null;
+        } catch (SecurityException e1) {
+            throw new RuntimeException("Security exception when determining effective method", e1); // NOSONAR
         }
     }
 
@@ -63,18 +80,18 @@ public class ComponentTxData {
                    txMap.put(m, defaultType);
                 }
             } catch(IllegalStateException e) {
-                // don't break bean creation due to invalid transaction attribute
+                LOG.warn("Invalid transaction annoation found", e);
             }
         }
 
         return shouldAssignInterceptor;
     }
 
-    private TxType getType(Transactional jtaT) {
+    private static TxType getType(Transactional jtaT) {
         return (jtaT != null) ? jtaT.value() : null;
     }
 
-    private void assertAllowedModifier(Method m) {
+    private static void assertAllowedModifier(Method m) {
         if ((m.getModifiers() & BANNED_MODIFIERS) != 0) {
             throw new IllegalArgumentException("Transaction annotation is not allowed on private or static method " + m);
         }

Modified: aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java (original)
+++ aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java Thu Nov 12 15:00:59 2015
@@ -29,9 +29,13 @@ import javax.transaction.Transaction;
 import javax.transaction.TransactionManager;
 import javax.transaction.Transactional.TxType;
 
+/**
+ * TODO This is copied from aries transaction. We could share this code
+ */
 public enum TransactionAttribute {
     MANDATORY
     {
+      @Override
       public TransactionToken begin(TransactionManager man) throws SystemException
       {
         if (man.getStatus() == Status.STATUS_NO_TRANSACTION) {
@@ -43,6 +47,7 @@ public enum TransactionAttribute {
     },
     NEVER
     {
+      @Override
       public TransactionToken begin(TransactionManager man) throws SystemException
       {
         if (man.getStatus() == Status.STATUS_ACTIVE) {
@@ -54,6 +59,7 @@ public enum TransactionAttribute {
     },
     NOT_SUPPORTED
     {
+      @Override
       public TransactionToken begin(TransactionManager man) throws SystemException
       {
         if (man.getStatus() == Status.STATUS_ACTIVE) {
@@ -63,8 +69,9 @@ public enum TransactionAttribute {
         return new TransactionToken(null, null, NOT_SUPPORTED);
       }
 
+      @Override
       public void finish(TransactionManager man, TransactionToken tranToken) throws SystemException,
-          InvalidTransactionException, IllegalStateException
+          InvalidTransactionException
       {
         Transaction tran = tranToken.getSuspendedTransaction();
         if (tran != null) {
@@ -74,6 +81,7 @@ public enum TransactionAttribute {
     },
     REQUIRED
     {
+      @Override
       public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException
       {
         if (man.getStatus() == Status.STATUS_NO_TRANSACTION) {
@@ -84,8 +92,9 @@ public enum TransactionAttribute {
         return new TransactionToken(man.getTransaction(), null, REQUIRED);
       }
 
+      @Override
       public void finish(TransactionManager man, TransactionToken tranToken) throws SystemException,
-          InvalidTransactionException, IllegalStateException, SecurityException, RollbackException,
+          InvalidTransactionException, RollbackException,
           HeuristicMixedException, HeuristicRollbackException
       {
         if (tranToken.isCompletionAllowed()) {
@@ -99,8 +108,9 @@ public enum TransactionAttribute {
     },
     REQUIRES_NEW
     {
+      @Override
       public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException,
-          InvalidTransactionException, IllegalStateException
+          InvalidTransactionException
       {
          Transaction suspendedTransaction = (man.getStatus() == Status.STATUS_ACTIVE) ? man.suspend() : null;
 
@@ -116,8 +126,9 @@ public enum TransactionAttribute {
         return new TransactionToken(man.getTransaction(), suspendedTransaction, REQUIRES_NEW, true);
       }
 
+      @Override
       public void finish(TransactionManager man, TransactionToken tranToken) throws SystemException,
-          InvalidTransactionException, IllegalStateException, SecurityException, RollbackException,
+          InvalidTransactionException, RollbackException,
           HeuristicMixedException, HeuristicRollbackException
       {
         if (tranToken.isCompletionAllowed()) {
@@ -136,8 +147,9 @@ public enum TransactionAttribute {
     },
     SUPPORTS
     {
+      @Override
       public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException,
-          InvalidTransactionException, IllegalStateException
+          InvalidTransactionException
       {
           if (man.getStatus() == Status.STATUS_ACTIVE) {
               return new TransactionToken(man.getTransaction(), null, SUPPORTS);
@@ -151,17 +163,16 @@ public enum TransactionAttribute {
     {
       return valueOf(type.name());
     }
-
-    public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException,
-        InvalidTransactionException, IllegalStateException
+    
+    public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException, InvalidTransactionException // NOSONAR
     {
       return null;
     }
 
-    public void finish(TransactionManager man, TransactionToken tranToken) throws SystemException,
-        InvalidTransactionException, IllegalStateException, SecurityException, RollbackException,
+    public void finish(TransactionManager man, TransactionToken tranToken) throws SystemException, // NOSONAR
+        InvalidTransactionException, RollbackException,
         HeuristicMixedException, HeuristicRollbackException
     {
-
+        // No operation by default
     }
 }

Modified: aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java (original)
+++ aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java Thu Nov 12 15:00:59 2015
@@ -53,10 +53,18 @@ public class TransactionToken
        return suspendedTransaction;
    }
 
+   public void setSuspendedTransaction(Transaction suspendedTransaction) {
+       this.suspendedTransaction = suspendedTransaction;
+   }
+
    public TransactionAttribute getTransactionAttribute() {
        return transactionAttribute;
    }
 
+   public void setTransactionStrategy(TransactionAttribute transactionAttribute) {
+       this.transactionAttribute = transactionAttribute;
+   }
+
    public boolean isCompletionAllowed() {
        return isCompletionAllowed;
    }

Modified: aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java (original)
+++ aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java Thu Nov 12 15:00:59 2015
@@ -46,10 +46,12 @@ public class TxInterceptorImpl implement
         this.txData = txData;
     }
 
+    @Override
     public int getRank() {
         return 1; // Higher rank than jpa interceptor to make sure transaction is started first
     }
 
+    @Override
     public Object preCall(ComponentMetadata cm, Method m, Object... parameters) throws Throwable {
         final TxType type = txData.getEffectiveType(m);
         if (type == null) {
@@ -66,6 +68,7 @@ public class TxInterceptorImpl implement
         return token;
     }
 
+    @Override
     public void postCallWithException(ComponentMetadata cm, Method m, Throwable ex, Object preCallToken) {
         if (!(preCallToken instanceof TransactionToken)) {
             return;
@@ -90,10 +93,8 @@ public class TxInterceptorImpl implement
         }
     }
 
-    private String getCmId(ComponentMetadata cm) {
-        return cm == null ? null : cm.getId();
-    }
 
+    @Override
     public void postCallWithReturn(ComponentMetadata cm, Method m, Object returnType, Object preCallToken)
         throws Exception {
         LOGGER.debug("PostCallWithReturn for bean {}, method {}.", getCmId(cm), m);
@@ -101,24 +102,27 @@ public class TxInterceptorImpl implement
         if (preCallToken == null) {
             return;
         }
-        if (preCallToken instanceof TransactionToken) {
-            final TransactionToken token = (TransactionToken)preCallToken;
-            token.getCoordination().end();
-            try {
-                token.getTransactionAttribute().finish(tm, token);
-            } catch (Exception e) {
-                // We are throwing an exception, so we don't error it out
-                LOGGER.debug("Exception while completing transaction.", e);
-                RollbackException rbe = new javax.transaction.RollbackException();
-                rbe.addSuppressed(e);
-                throw rbe;
-            }
-        } else {
-            // TODO: what now?
+        if (!(preCallToken instanceof TransactionToken)) {
+            throw new IllegalStateException("Expected a TransactionToken from preCall but got " + preCallToken);
+        }
+        final TransactionToken token = (TransactionToken)preCallToken;
+        token.getCoordination().end();
+        try {
+            token.getTransactionAttribute().finish(tm, token);
+        } catch (Exception e) {
+            // We are throwing an exception, so we don't error it out
+            LOGGER.debug("Exception while completing transaction.", e);
+            RollbackException rbe = new javax.transaction.RollbackException();
+            rbe.addSuppressed(e);
+            throw rbe;
         }
     }
+    
+    private static String getCmId(ComponentMetadata cm) {
+        return cm == null ? null : cm.getId();
+    }
 
-    private boolean isRollBackException(Throwable ex) {
+    private static boolean isRollBackException(Throwable ex) {
         return ex instanceof RuntimeException || ex instanceof Error;
     }
 

Modified: aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/AnnotationProcessor.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/AnnotationProcessor.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/AnnotationProcessor.java (original)
+++ aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/AnnotationProcessor.java Thu Nov 12 15:00:59 2015
@@ -47,16 +47,17 @@ public class AnnotationProcessor impleme
         this.coordinator = coordinator;
     }
 
-    public void afterDestroy(Object arg0, String arg1) {
-    }
-
-    public Object afterInit(Object arg0, String arg1, BeanCreator arg2, BeanMetadata arg3) {
-        return arg0;
+    @Override
+    public void beforeDestroy(Object arg0, String arg1) {
+        // Nothing to be done
     }
 
-    public void beforeDestroy(Object arg0, String arg1) {
+    @Override
+    public void afterDestroy(Object arg0, String arg1) {
+        // Nothing to be done
     }
 
+    @Override
     public Object beforeInit(Object bean, String beanName, BeanCreator beanCreator, BeanMetadata beanData) {
         ComponentTxData txData = new ComponentTxData(bean.getClass());
         if (txData.isTransactional()) {
@@ -65,5 +66,10 @@ public class AnnotationProcessor impleme
         }
         return bean;
     }
+    
+    @Override
+    public Object afterInit(Object arg0, String arg1, BeanCreator arg2, BeanMetadata arg3) {
+        return arg0;
+    }
 
 }

Modified: aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/TxNamespaceHandler.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/TxNamespaceHandler.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/TxNamespaceHandler.java (original)
+++ aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/parsing/TxNamespaceHandler.java Thu Nov 12 15:00:59 2015
@@ -19,6 +19,7 @@
 package org.apache.aries.transaction.parsing;
 
 import java.net.URL;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
@@ -52,20 +53,18 @@ public class TxNamespaceHandler implemen
         schemaMap.put(TX_NAMESPACE_URI, "transactionv20.xsd");
     }
 
-    private void parseElement(Element elt, ComponentMetadata cm, ParserContext pc)
+    private void parseElement(Element elt, ParserContext pc)
     {
         LOGGER.debug("parser asked to parse element {} ", elt.getNodeName());
 
         ComponentDefinitionRegistry cdr = pc.getComponentDefinitionRegistry();
         if ("enable".equals(elt.getLocalName())) {
             Node n = elt.getChildNodes().item(0);
-            if (n == null || Boolean.parseBoolean(n.getNodeValue())) {
-                //We need to register a bean processor to add annotation-based config
-                if (!cdr.containsComponentDefinition(ANNOTATION_PARSER_BEAN_NAME)) {
-                    LOGGER.debug("Enabling annotation based transactions");
-                    MutableBeanMetadata meta = createAnnotationParserBean(pc, cdr);
-                    cdr.registerComponentDefinition(meta);
-                }
+            if ((n == null || Boolean.parseBoolean(n.getNodeValue())) &&
+                !cdr.containsComponentDefinition(ANNOTATION_PARSER_BEAN_NAME)) {
+                LOGGER.debug("Enabling annotation based transactions");
+                MutableBeanMetadata meta = createAnnotationParserBean(pc, cdr);
+                cdr.registerComponentDefinition(meta);
             }
         }
     }
@@ -87,21 +86,23 @@ public class TxNamespaceHandler implemen
         return meta;
     }
 
+    @Override
     public ComponentMetadata decorate(Node node, ComponentMetadata cm, ParserContext pc)
     {
         if (node instanceof Element) {
-            Element elt = (Element) node;
-            parseElement(elt, cm, pc);
+            parseElement((Element) node, pc);
         }
         return cm;
     }
 
+    @Override
     public Metadata parse(Element elt, ParserContext pc)
     {
-        parseElement(elt, pc.getEnclosingComponent(), pc);
+        parseElement(elt, pc);
         return null;
     }
 
+    @Override
     public URL getSchemaLocation(String namespaceUri)
     {
         String xsdPath = schemaMap.get(namespaceUri);
@@ -117,9 +118,10 @@ public class TxNamespaceHandler implemen
     }
 
     @SuppressWarnings("rawtypes")
+    @Override
     public Set<Class> getManagedClasses()
     {
-        return null;
+        return Collections.emptySet();
     }
     
 }

Modified: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java Thu Nov 12 15:00:59 2015
@@ -71,12 +71,13 @@ public class Connector implements Counte
             stmt.executeUpdate(sql);
             conn.commit();
         } catch (Exception e) {
-            // Ignore
+            throw new RuntimeException(e.getMessage(), e); // NOSONAR
         } finally {
             safeClose(stmt);
         }
     }
     
+    @Override
     public int countRows() {
         PreparedStatement stmt = null;
         ResultSet rs = null;
@@ -87,7 +88,7 @@ public class Connector implements Counte
             rs.last();
             count = rs.getRow();
         } catch (Exception e) {
-            throw new RuntimeException(e.getMessage(), e);
+            throw new RuntimeException(e.getMessage(), e); // NOSONAR
         }
         finally {
             safeClose(rs);
@@ -119,33 +120,33 @@ public class Connector implements Counte
         safeClose(conn);
     }
 
-    public void safeClose(Connection conn) {
+    private static void safeClose(Connection conn) {
         if (conn != null) {
             try {
                 conn.close();
             } catch (SQLException e) {
-                // Ignore
+                throw new IllegalStateException(e);
             }
         }
     }
 
-    public void safeClose(Statement stmt) {
+    private static void safeClose(Statement stmt) {
         if (stmt != null) {
             try {
                 stmt.close();
             } catch (SQLException e) {
-                // Ignore
+                throw new IllegalStateException(e);
             }
         }
     }
     
 
-    private void safeClose(ResultSet rs) {
+    private static void safeClose(ResultSet rs) {
         if (rs != null) {
             try {
                 rs.close();
             } catch (SQLException e) {
-                // Ignore
+                throw new IllegalStateException(e);
             }
         }
     }

Modified: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java Thu Nov 12 15:00:59 2015
@@ -28,21 +28,18 @@ public class NotSupportedTestBeanImpl ex
     @Transactional(Transactional.TxType.NOT_SUPPORTED)
     @Override
     public void delegateInsertRow(String name, int value) throws SQLException {
-        // TODO Auto-generated method stub
         super.delegateInsertRow(name, value);
     }
 
     @Transactional(Transactional.TxType.NOT_SUPPORTED)
     @Override
     public void throwApplicationException() throws SQLException {
-        // TODO Auto-generated method stub
         super.throwApplicationException();
     }
 
     @Transactional(Transactional.TxType.NOT_SUPPORTED)
     @Override
     public void throwRuntimeException() {
-        // TODO Auto-generated method stub
         super.throwRuntimeException();
     }
 

Modified: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java?rev=1714062&r1=1714061&r2=1714062&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java Thu Nov 12 15:00:59 2015
@@ -26,9 +26,7 @@ public class TestBeanImpl implements Tes
     private Connector connector;
     private TestBean bean;
 
-    public TestBeanImpl() {
-    }
-
+    @Override
     public void insertRow(String name, int value, Exception e) throws SQLException {
         connector.insertRow(name, value);
         if (e instanceof SQLException) { 
@@ -38,16 +36,19 @@ public class TestBeanImpl implements Tes
         }
     }
 
+    @Override
     public void delegateInsertRow(String name, int value) throws SQLException {
         bean.insertRow(name, value, null);
     }
 
+    @Override
     public void throwApplicationException() throws SQLException {
         throw new SQLException("Test exception");
     }
 
+    @Override
     public void throwRuntimeException() {
-        throw new RuntimeException("Test exception");
+        throw new RuntimeException("Test exception"); // NOSONAR
     }
 
     public void setTestBean(TestBean bean) {