summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-05-23 18:47:34 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-05-23 18:47:34 +0200
commit0593db2ff6438f0c259144822c6f0ada1f7b79df (patch)
tree8400faa0d5bbdd95fcfe03fb9adfb8e117f9da07 /cpp/src
parentFix whitespace (diff)
downloadice-0593db2ff6438f0c259144822c6f0ada1f7b79df.tar.bz2
ice-0593db2ff6438f0c259144822c6f0ada1f7b79df.tar.xz
ice-0593db2ff6438f0c259144822c6f0ada1f7b79df.zip
Fixed ICE-7884 - TwowayOnlyException is now raised for twoway invocations on oneway proxies
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier2Lib/SessionHelper.cpp4
-rw-r--r--cpp/src/Ice/Proxy.cpp16
-rw-r--r--cpp/src/IceSSL/OpenSSLCertificateI.cpp4
-rw-r--r--cpp/src/IceSSL/SChannelCertificateI.cpp4
-rw-r--r--cpp/src/IceSSL/SecureTransportCertificateI.cpp4
5 files changed, 29 insertions, 3 deletions
diff --git a/cpp/src/Glacier2Lib/SessionHelper.cpp b/cpp/src/Glacier2Lib/SessionHelper.cpp
index 3891e31ab7f..b5d436c7503 100644
--- a/cpp/src/Glacier2Lib/SessionHelper.cpp
+++ b/cpp/src/Glacier2Lib/SessionHelper.cpp
@@ -1041,7 +1041,11 @@ Glacier2::SessionFactoryHelper::setProtocol(const string& protocol)
protocol != "ws" &&
protocol != "wss")
{
+#ifdef ICE_CPP11_MAPPING
+ throw invalid_argument("Unknown protocol `" + protocol + "'");
+#else
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "Unknown protocol `" + protocol + "'");
+#endif
}
_protocol = protocol;
}
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp
index b46545c35c1..7b7a7311fa6 100644
--- a/cpp/src/Ice/Proxy.cpp
+++ b/cpp/src/Ice/Proxy.cpp
@@ -239,9 +239,7 @@ Ice::ObjectPrx::_checkTwowayOnly(const string& name) const
//
if(!ice_isTwoway())
{
- throw IceUtil::IllegalArgumentException(__FILE__,
- __LINE__,
- "`" + name + "' can only be called with a twoway proxy");
+ throw Ice::TwowayOnlyException(__FILE__, __LINE__, name);
}
}
@@ -852,7 +850,11 @@ ICE_OBJECT_PRX::ice_locatorCacheTimeout(Int newTimeout) const
{
ostringstream s;
s << "invalid value passed to ice_locatorCacheTimeout: " << newTimeout;
+#ifdef ICE_CPP11_MAPPING
+ throw invalid_argument(s.str());
+#else
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, s.str());
+#endif
}
if(newTimeout == _reference->getLocatorCacheTimeout())
{
@@ -1059,7 +1061,11 @@ ICE_OBJECT_PRX::ice_invocationTimeout(Int newTimeout) const
{
ostringstream s;
s << "invalid value passed to ice_invocationTimeout: " << newTimeout;
+#ifdef ICE_CPP11_MAPPING
+ throw invalid_argument(s.str());
+#else
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, s.str());
+#endif
}
if(newTimeout == _reference->getInvocationTimeout())
{
@@ -1201,7 +1207,11 @@ ICE_OBJECT_PRX::ice_timeout(int t) const
{
ostringstream s;
s << "invalid value passed to ice_timeout: " << t;
+#ifdef ICE_CPP11_MAPPING
+ throw invalid_argument(s.str());
+#else
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, s.str());
+#endif
}
ReferencePtr ref = _reference->changeTimeout(t);
if(ref == _reference)
diff --git a/cpp/src/IceSSL/OpenSSLCertificateI.cpp b/cpp/src/IceSSL/OpenSSLCertificateI.cpp
index 03c0d304d51..afdd6b7c815 100644
--- a/cpp/src/IceSSL/OpenSSLCertificateI.cpp
+++ b/cpp/src/IceSSL/OpenSSLCertificateI.cpp
@@ -349,7 +349,11 @@ OpenSSLCertificateI::OpenSSLCertificateI(x509_st* cert) : _cert(cert)
{
if(!_cert)
{
+#ifdef ICE_CPP11_MAPPING
+ throw invalid_argument("Invalid certificate reference");
+#else
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "Invalid certificate reference");
+#endif
}
}
diff --git a/cpp/src/IceSSL/SChannelCertificateI.cpp b/cpp/src/IceSSL/SChannelCertificateI.cpp
index c0a357fd63e..0767bd4efb9 100644
--- a/cpp/src/IceSSL/SChannelCertificateI.cpp
+++ b/cpp/src/IceSSL/SChannelCertificateI.cpp
@@ -312,7 +312,11 @@ SChannelCertificateI::SChannelCertificateI(CERT_SIGNED_CONTENT_INFO* cert) :
{
if(!_cert)
{
+#ifdef ICE_CPP11_MAPPING
+ throw invalid_argument("Invalid certificate reference");
+#else
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "Invalid certificate reference");
+#endif
}
try
diff --git a/cpp/src/IceSSL/SecureTransportCertificateI.cpp b/cpp/src/IceSSL/SecureTransportCertificateI.cpp
index 0e90b61ae00..00b60e1854b 100644
--- a/cpp/src/IceSSL/SecureTransportCertificateI.cpp
+++ b/cpp/src/IceSSL/SecureTransportCertificateI.cpp
@@ -409,7 +409,11 @@ SecureTransportCertificateI::SecureTransportCertificateI(SecCertificateRef cert)
{
if(!_cert)
{
+#ifdef ICE_CPP11_MAPPING
+ throw invalid_argument("Invalid certificate reference");
+#else
throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "Invalid certificate reference");
+#endif
}
}