You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mnemonic.apache.org by ga...@apache.org on 2016/10/11 16:54:23 UTC

incubator-mnemonic git commit: MNEMONIC-142: Buffer/chunk not managed by durable object model

Repository: incubator-mnemonic
Updated Branches:
  refs/heads/master 9fab6aa8f -> da301c912


MNEMONIC-142: Buffer/chunk not managed by durable object model


Project: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/commit/da301c91
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/tree/da301c91
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/diff/da301c91

Branch: refs/heads/master
Commit: da301c91219d75ddccf3fccb148b2f82f2013fa6
Parents: 9fab6aa
Author: Wang, Gang(Gary) <ga...@intel.com>
Authored: Tue Oct 11 09:54:01 2016 -0700
Committer: Wang, Gang(Gary) <ga...@intel.com>
Committed: Tue Oct 11 09:54:01 2016 -0700

----------------------------------------------------------------------
 .../apache/mnemonic/AnnotatedDurableEntityClass.java  | 14 ++++++++++++++
 pom.xml                                               |  2 +-
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/da301c91/mnemonic-core/src/main/java/org/apache/mnemonic/AnnotatedDurableEntityClass.java
----------------------------------------------------------------------
diff --git a/mnemonic-core/src/main/java/org/apache/mnemonic/AnnotatedDurableEntityClass.java b/mnemonic-core/src/main/java/org/apache/mnemonic/AnnotatedDurableEntityClass.java
index 806fe27..51939c1 100644
--- a/mnemonic-core/src/main/java/org/apache/mnemonic/AnnotatedDurableEntityClass.java
+++ b/mnemonic-core/src/main/java/org/apache/mnemonic/AnnotatedDurableEntityClass.java
@@ -610,6 +610,13 @@ public class AnnotatedDurableEntityClass {
           code.addStatement("throw new IllegalAllocatorError(\"This chunk is allocated by another allocator!\")");
           code.endControlFlow();
           code.addStatement("$1N = $2L", dynfieldinfo.name, arg0);
+          code.beginControlFlow("if (null != $1N)", dynfieldinfo.name);
+          code.beginControlFlow("if ($1N)", autoreclaimname);
+          code.addStatement("$1N.registerAutoReclaim();", dynfieldinfo.name);
+          code.nextControlFlow("else");
+          code.addStatement("$1N.cancelAutoReclaim();", dynfieldinfo.name);
+          code.endControlFlow();
+          code.endControlFlow();
           code.addStatement("$1N.putLong($2N.get() + $3L, null == $4N ? 0L : $5N.getChunkHandler($4N))",
               unsafename, holdername, dynfieldinfo.fieldoff, dynfieldinfo.name, allocname);
         } else if (valtname.toString().startsWith(MemBufferHolder.class.getCanonicalName())) {
@@ -622,6 +629,13 @@ public class AnnotatedDurableEntityClass {
           code.addStatement("throw new IllegalAllocatorError(\"This buffer is allocated by another allocator!\")");
           code.endControlFlow();
           code.addStatement("$1N = $2L", dynfieldinfo.name, arg0);
+          code.beginControlFlow("if (null != $1N)", dynfieldinfo.name);
+          code.beginControlFlow("if ($1N)", autoreclaimname);
+          code.addStatement("$1N.registerAutoReclaim();", dynfieldinfo.name);
+          code.nextControlFlow("else");
+          code.addStatement("$1N.cancelAutoReclaim();", dynfieldinfo.name);
+          code.endControlFlow();
+          code.endControlFlow();
           code.addStatement("$1N.putLong($2N.get() + $3L, null == $4N ? 0L : $5N.getBufferHandler($4N))",
               unsafename, holdername, dynfieldinfo.fieldoff, dynfieldinfo.name, allocname);
         } else if (valtname.toString().equals(String.class.getCanonicalName())) {

http://git-wip-us.apache.org/repos/asf/incubator-mnemonic/blob/da301c91/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 7525b8d..188a708 100644
--- a/pom.xml
+++ b/pom.xml
@@ -161,7 +161,7 @@
       <dependency>
         <groupId>org.flowcomputing.commons</groupId>
         <artifactId>commons-resgc</artifactId>
-        <version>0.8.10</version>
+        <version>0.8.11</version>
       </dependency>
       <dependency>
         <groupId>org.flowcomputing.commons</groupId>