You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2012/10/12 16:34:45 UTC

svn commit: r1397585 - in /activemq/activemq-cpp/trunk/activemq-cpp/src/main: Makefile.am activemq/util/CMSExceptionSupport.h cms/ResourceAllocationException.cpp cms/ResourceAllocationException.h

Author: tabish
Date: Fri Oct 12 14:34:44 2012
New Revision: 1397585

URL: http://svn.apache.org/viewvc?rev=1397585&view=rev
Log:
Adds the missing ResourceAllocationException to the CMS API and ensure the correct types are thrown from the helper macro

Added:
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.cpp   (with props)
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.h   (with props)
Modified:
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/CMSExceptionSupport.h

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am?rev=1397585&r1=1397584&r2=1397585&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am Fri Oct 12 14:34:44 2012
@@ -277,6 +277,7 @@ cc_sources = \
     cms/ObjectMessage.cpp \
     cms/Queue.cpp \
     cms/QueueBrowser.cpp \
+    cms/ResourceAllocationException.cpp \
     cms/Session.cpp \
     cms/Startable.cpp \
     cms/Stoppable.cpp \
@@ -816,6 +817,7 @@ h_sources = \
     cms/ObjectMessage.h \
     cms/Queue.h \
     cms/QueueBrowser.h \
+    cms/ResourceAllocationException.h \
     cms/Session.h \
     cms/Startable.h \
     cms/Stoppable.h \

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/CMSExceptionSupport.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/CMSExceptionSupport.h?rev=1397585&r1=1397584&r2=1397585&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/CMSExceptionSupport.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/CMSExceptionSupport.h Fri Oct 12 14:34:44 2012
@@ -30,6 +30,9 @@
 #include <cms/InvalidDestinationException.h>
 #include <cms/InvalidSelectorException.h>
 #include <cms/IllegalStateException.h>
+#include <cms/ResourceAllocationException.h>
+#include <cms/TransactionInProgressException.h>
+#include <cms/TransactionRolledBackException.h>
 #include <cms/UnsupportedOperationException.h>
 
 #include <decaf/lang/Exception.h>
@@ -67,50 +70,59 @@ namespace util {
 * exception of MessageNotReadableException for instance.
 */
 #define AMQ_CATCH_ALL_THROW_CMSEXCEPTION() \
-    catch( cms::CMSSecurityException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::IllegalStateException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::InvalidClientIdException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::InvalidDestinationException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::InvalidSelectorException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::MessageEOFException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::MessageFormatException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::MessageNotReadableException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::MessageNotWriteableException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::UnsupportedOperationException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( cms::CMSException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        throw ex; \
-    } catch( activemq::exceptions::ActiveMQException& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
+    catch (cms::CMSSecurityException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::IllegalStateException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::InvalidClientIdException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::InvalidDestinationException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::InvalidSelectorException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::MessageEOFException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::MessageFormatException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::MessageNotReadableException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::MessageNotWriteableException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::ResourceAllocationException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::TransactionInProgressException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::TransactionRolledBackException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::UnsupportedOperationException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (cms::CMSException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
+        throw; \
+    } catch (activemq::exceptions::ActiveMQException& ex) { \
+        ex.setMark(__FILE__, __LINE__); \
         throw ex.convertToCMSException(); \
-    } catch( decaf::lang::Exception& ex ){ \
-        ex.setMark( __FILE__, __LINE__ ); \
-        activemq::exceptions::ActiveMQException amqEx( ex ); \
+    } catch(decaf::lang::Exception& ex){ \
+        ex.setMark(__FILE__, __LINE__); \
+        activemq::exceptions::ActiveMQException amqEx(ex); \
         throw amqEx.convertToCMSException(); \
-    } catch( std::exception& ex ){ \
-        throw cms::CMSException( ex.what(), NULL ); \
+    } catch(std::exception& ex){ \
+        throw cms::CMSException(ex.what(), NULL); \
     } catch(...) { \
-        throw cms::CMSException( "Caught Unknown Exception", NULL ); \
+        throw cms::CMSException("Caught Unknown Exception", NULL); \
     }
 
 #endif /* _ACTIVEMQ_UTIL_CMSEXCEPTIONSUPPORT_H_ */

Added: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.cpp?rev=1397585&view=auto
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.cpp (added)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.cpp Fri Oct 12 14:34:44 2012
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ResourceAllocationException.h"
+
+using namespace cms;
+
+////////////////////////////////////////////////////////////////////////////////
+ResourceAllocationException::ResourceAllocationException() : CMSException() {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+ResourceAllocationException::ResourceAllocationException(const ResourceAllocationException& ex) :
+    CMSException(ex) {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+ResourceAllocationException::ResourceAllocationException(const std::string& message) :
+    CMSException(message, NULL) {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+ResourceAllocationException::ResourceAllocationException(const std::string& message, const std::exception* cause) :
+    CMSException(message, cause) {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+ResourceAllocationException::ResourceAllocationException(const std::string& message, const std::exception* cause,
+                                                         const std::vector<std::pair<std::string, int> >& stackTrace) :
+    CMSException(message, cause, stackTrace) {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+ResourceAllocationException::~ResourceAllocationException() throw() {
+}

Propchange: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.h?rev=1397585&view=auto
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.h (added)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.h Fri Oct 12 14:34:44 2012
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _CMS_RESOURCEALLOCATIONEXCEPTION_H_
+#define _CMS_RESOURCEALLOCATIONEXCEPTION_H_
+
+#include <cms/Config.h>
+#include <cms/CMSException.h>
+
+namespace cms {
+
+    /**
+     * This exception is thrown when an operation is invalid because a transaction is in progress.
+     * For instance, an attempt to call Session::commit when a session is part of a distributed
+     * transaction should throw a  ResourceAllocationException.
+     *
+     * @since 2.3
+     */
+    class CMS_API ResourceAllocationException : public cms::CMSException {
+    public:
+
+        ResourceAllocationException();
+
+        ResourceAllocationException(const ResourceAllocationException& ex);
+
+        ResourceAllocationException(const std::string& message);
+
+        ResourceAllocationException(const std::string& message, const std::exception* cause);
+
+        ResourceAllocationException(const std::string& message, const std::exception* cause,
+                                    const std::vector<std::pair<std::string, int> >& stackTrace);
+
+        virtual ~ResourceAllocationException() throw();
+
+
+    };
+
+}
+
+#endif /* _CMS_RESOURCEALLOCATIONEXCEPTION_H_ */

Propchange: activemq/activemq-cpp/trunk/activemq-cpp/src/main/cms/ResourceAllocationException.h
------------------------------------------------------------------------------
    svn:eol-style = native