diff --git a/cppcache/src/AuthenticatedView.cpp b/cppcache/src/AuthenticatedView.cpp
index 644a2dd..87b84d1 100644
--- a/cppcache/src/AuthenticatedView.cpp
+++ b/cppcache/src/AuthenticatedView.cpp
@@ -53,7 +53,6 @@
  * After this cache is closed, any further
  * method call on this cache or any region object will throw
  * <code>CacheClosedException</code>, unless otherwise noted.
- * @param keepalive whether to keep the durable client's queue
  * @throws CacheClosedException,  if the cache is already closed.
  */
 void AuthenticatedView::close() {
@@ -119,8 +118,6 @@
  * shared regions to be mapped into the cache. This set is a snapshot and
  * is not backed by the Cache. The regions passed in are cleared.
  *
- * @param regions the region collection object containing the returned set of
- * regions when the function returns
  */
 std::shared_ptr<QueryService> AuthenticatedView::getQueryService() {
   if (!m_isAuthenticatedViewClosed) {
diff --git a/cppcache/src/Cache.cpp b/cppcache/src/Cache.cpp
index c3bba33..9f5fcdd 100644
--- a/cppcache/src/Cache.cpp
+++ b/cppcache/src/Cache.cpp
@@ -79,9 +79,6 @@
  * Returns a set of root regions in the cache. Does not cause any
  * shared regions to be mapped into the cache. This set is a snapshot and
  * is not backed by the Cache. The regions passed in are cleared.
- *
- * @param regions the region collection object containing the returned set of
- * regions when the function returns
  */
 std::vector<std::shared_ptr<Region>> Cache::rootRegions() const {
   return m_cacheImpl->rootRegions();
diff --git a/cppcache/src/CqQueryImpl.cpp b/cppcache/src/CqQueryImpl.cpp
index b641449..4b1f26d 100644
--- a/cppcache/src/CqQueryImpl.cpp
+++ b/cppcache/src/CqQueryImpl.cpp
@@ -240,7 +240,7 @@
 void CqQueryImpl::cleanup() { removeFromCqMap(); }
 
 /**
- * @return Returns the cqListeners.
+ * @param cqListener - on success, refers to the current listener
  */
 void CqQueryImpl::getCqListeners(
     CqAttributes::listener_container_type& cqListener) {
diff --git a/cppcache/src/CqService.cpp b/cppcache/src/CqService.cpp
index b6d0dec..57403e9 100644
--- a/cppcache/src/CqService.cpp
+++ b/cppcache/src/CqService.cpp
@@ -392,8 +392,10 @@
  * Invokes the CqListeners for the given CQs.
  * @param cqs list of cqs with the cq operation from the Server.
  * @param messageType base operation
- * @param key
- * @param value
+ * @param key key to notify for
+ * @param value associated value
+ * @param deltaValue if delta, contains delta bytes
+ * @param eventId event to send
  */
 void CqService::invokeCqListeners(const std::map<std::string, int>* cqs,
                                   uint32_t messageType,
@@ -504,7 +506,7 @@
 
 /**
  * Returns the Operation for the given EnumListenerEvent type.
- * @param eventType
+ * @param eventType event type to translate to opType
  * @return Operation
  */
 CqOperation CqService::getOperation(int eventType) {
diff --git a/cppcache/src/statistics/OsStatisticsImpl.cpp b/cppcache/src/statistics/OsStatisticsImpl.cpp
index e3539bc..63f3ca3 100644
--- a/cppcache/src/statistics/OsStatisticsImpl.cpp
+++ b/cppcache/src/statistics/OsStatisticsImpl.cpp
@@ -64,13 +64,13 @@
 /**
  * Creates a new statistics instance of the given type
  *
- * @param type
+ * @param typeArg
  *        A description of the statistics
- * @param textId
+ * @param textIdArg
  *        Text that identifies this statistic when it is monitored
- * @param numericId
+ * @param numericIdArg
  *        A number that displayed when this statistic is monitored
- * @param uniqueId
+ * @param uniqueIdArg
  *        A number that uniquely identifies this instance
  * @param system
  *        The distributed system that determines whether or not these
diff --git a/cppcache/src/statistics/Statistics.cpp b/cppcache/src/statistics/Statistics.cpp
index c52aa00..dc1c962 100644
--- a/cppcache/src/statistics/Statistics.cpp
+++ b/cppcache/src/statistics/Statistics.cpp
@@ -102,9 +102,6 @@
  * Increments the value of the identified statistic of type <code>int</code>
  * by the given amount.
  *
- * @param id a statistic id obtained with {@link #nameToId}
- * or {@link StatisticsType#nameToId}.
- *
  * @return The value of the statistic after it has been incremented
  *
  * @throws IllegalArgumentException
