You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ag...@apache.org on 2018/01/22 20:03:46 UTC

[geode] branch develop updated (4f0c0b1 -> ec53f62)

This is an automated email from the ASF dual-hosted git repository.

agingade pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


    from 4f0c0b1  GEODE-4333: add unit tests for AbstractRegionMap.destroy (#1314)
     new 7fc5d6e  GEODE-3554: Add javadoc warning about getAnyInstance in CacheCallback
     new ec53f62  GEODE-3554: Add additional javadoc about how to get Cache.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java | 8 ++++++++
 .../src/main/java/org/apache/geode/cache/CacheListener.java       | 7 ++++++-
 geode-core/src/main/java/org/apache/geode/cache/CacheLoader.java  | 5 ++++-
 geode-core/src/main/java/org/apache/geode/cache/CacheWriter.java  | 4 ++++
 .../src/main/java/org/apache/geode/cache/TransactionListener.java | 4 +++-
 .../src/main/java/org/apache/geode/cache/TransactionWriter.java   | 5 +++++
 6 files changed, 30 insertions(+), 3 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
agingade@apache.org.

[geode] 01/02: GEODE-3554: Add javadoc warning about getAnyInstance in CacheCallback

Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

agingade pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 7fc5d6e93c66f3a3b0bd4a4cfec5f9a5c20425d2
Author: Anil <ag...@pivotal.io>
AuthorDate: Thu Jan 18 14:26:41 2018 -0800

    GEODE-3554: Add javadoc warning about getAnyInstance in CacheCallback
---
 geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java b/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
index 5857927..9de3168 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
@@ -307,6 +307,12 @@ public class CacheFactory {
    * Gets an arbitrary open instance of {@link Cache} produced by an earlier call to
    * {@link #create()}.
    *
+   * <p>
+   * WARNING: To avoid risk of deadlock, do not invoke getAnyInstance() from within any
+   * CacheCallback including CacheListener, CacheLoader, CacheWriter, TransactionListener,
+   * TransactionWriter.
+   * </p>
+   *
    * @throws CacheClosedException if a cache has not been created or the only created one is
    *         {@link Cache#isClosed closed}
    */

-- 
To stop receiving notification emails like this one, please contact
agingade@apache.org.

[geode] 02/02: GEODE-3554: Add additional javadoc about how to get Cache.

Posted by ag...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

agingade pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git

commit ec53f620359f85b4d3c0063b34ec5911e84c50c9
Author: Anil <ag...@pivotal.io>
AuthorDate: Fri Jan 19 16:06:20 2018 -0800

    GEODE-3554: Add additional javadoc about how to get Cache.
---
 geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java  | 4 +++-
 geode-core/src/main/java/org/apache/geode/cache/CacheListener.java | 7 ++++++-
 geode-core/src/main/java/org/apache/geode/cache/CacheLoader.java   | 5 ++++-
 geode-core/src/main/java/org/apache/geode/cache/CacheWriter.java   | 4 ++++
 .../src/main/java/org/apache/geode/cache/TransactionListener.java  | 4 +++-
 .../src/main/java/org/apache/geode/cache/TransactionWriter.java    | 5 +++++
 6 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java b/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
index 9de3168..2253672 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/CacheFactory.java
@@ -310,7 +310,9 @@ public class CacheFactory {
    * <p>
    * WARNING: To avoid risk of deadlock, do not invoke getAnyInstance() from within any
    * CacheCallback including CacheListener, CacheLoader, CacheWriter, TransactionListener,
-   * TransactionWriter.
+   * TransactionWriter. Instead use EntryEvent.getRegion().getCache(),
+   * RegionEvent.getRegion().getCache(), LoaderHelper.getRegion().getCache(), or
+   * TransactionEvent.getCache().
    * </p>
    *
    * @throws CacheClosedException if a cache has not been created or the only created one is
diff --git a/geode-core/src/main/java/org/apache/geode/cache/CacheListener.java b/geode-core/src/main/java/org/apache/geode/cache/CacheListener.java
index cb7f2ef..fd268ea 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/CacheListener.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/CacheListener.java
@@ -40,6 +40,12 @@ package org.apache.geode.cache;
  * access the region and must not wait for that thread to complete the task.
  * </p>
  *
+ * <p>
+ * WARNING: To avoid risk of deadlock, do not invoke CacheFactory.getAnyInstance() from within any
+ * callback methods. Instead use EntryEvent.getRegion().getCache() or
+ * RegionEvent.getRegion().getCache().
+ * </p>
+ *
  * <h4>Concurrency</h4>
  * <p>
  * Multiple events, on different entries, can cause concurrent invocation of
@@ -52,7 +58,6 @@ package org.apache.geode.cache;
  * To declare a CacheListener in a Cache XML file, it must also implement {@link Declarable}
  * </p>
  *
- *
  * @see AttributesFactory#addCacheListener
  * @see AttributesFactory#initCacheListeners
  * @see RegionAttributes#getCacheListeners
diff --git a/geode-core/src/main/java/org/apache/geode/cache/CacheLoader.java b/geode-core/src/main/java/org/apache/geode/cache/CacheLoader.java
index 8812816..9c7a25d 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/CacheLoader.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/CacheLoader.java
@@ -24,7 +24,10 @@ package org.apache.geode.cache;
  * hosted by another member of the distributed system.
  * </p>
  *
- *
+ * <p>
+ * WARNING: To avoid risk of deadlock, do not invoke CacheFactory.getAnyInstance() from within any
+ * callback methods. Instead use LoaderHelper.getRegion().getCache().
+ * </p>
  *
  * @see AttributesFactory#setCacheLoader
  * @see RegionAttributes#getCacheLoader
diff --git a/geode-core/src/main/java/org/apache/geode/cache/CacheWriter.java b/geode-core/src/main/java/org/apache/geode/cache/CacheWriter.java
index a3f33be..a60a4b8 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/CacheWriter.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/CacheWriter.java
@@ -37,6 +37,10 @@ package org.apache.geode.cache;
  * initiator of the operation, regardless of whether the initiator is in the same VM as the
  * <code>CacheWriter</code>.
  *
+ * <p>
+ * WARNING: To avoid risk of deadlock, do not invoke CacheFactory.getAnyInstance() from within any
+ * callback methods. Instead use EntryEvent.getRegion().getCache() or
+ * RegionEvent.getRegion().getCache().
  *
  * @see AttributesFactory#setCacheWriter
  * @see RegionAttributes#getCacheWriter
diff --git a/geode-core/src/main/java/org/apache/geode/cache/TransactionListener.java b/geode-core/src/main/java/org/apache/geode/cache/TransactionListener.java
index 4beb167..b1f8c3d 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/TransactionListener.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/TransactionListener.java
@@ -31,12 +31,14 @@ package org.apache.geode.cache;
  * <p>
  * Rollback and failed commit operations are local.
  *
+ * <p>
+ * WARNING: To avoid risk of deadlock, do not invoke CacheFactory.getAnyInstance() from within any
+ * callback methods. Instead use TransactionEvent.getCache().
  *
  * @see CacheTransactionManager#setListener
  * @see CacheTransactionManager#getListener
  * @since GemFire 4.0
  */
-
 public interface TransactionListener extends CacheCallback {
 
   /**
diff --git a/geode-core/src/main/java/org/apache/geode/cache/TransactionWriter.java b/geode-core/src/main/java/org/apache/geode/cache/TransactionWriter.java
index 06c939b..1eba49a 100755
--- a/geode-core/src/main/java/org/apache/geode/cache/TransactionWriter.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/TransactionWriter.java
@@ -21,10 +21,15 @@ package org.apache.geode.cache;
  * and only one TransactionWriter will be fired in the entire distributed system for each
  * transaction.
  *
+ * <p>
  * This writer can be used to update a backend data source before the GemFire cache is updated
  * during commit. If the backend update fails, the implementer can throw a
  * {@link TransactionWriterException} to veto the transaction.
  *
+ * <p>
+ * WARNING: To avoid risk of deadlock, do not invoke CacheFactory.getAnyInstance() from within any
+ * callback methods. Instead use TransactionEvent.getCache().
+ *
  * @see CacheTransactionManager#setWriter
  * @since GemFire 6.5
  */

-- 
To stop receiving notification emails like this one, please contact
agingade@apache.org.