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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 40a43dd4 Fix configs not rolled back in TsFileGeneratorUtils (#274)
40a43dd4 is described below

commit 40a43dd4c5aa9bf4bfc0f2ca5f1cfbcf8c6adff1
Author: Jiang Tian <[email protected]>
AuthorDate: Wed Oct 23 11:14:17 2024 +0800

    Fix configs not rolled back in TsFileGeneratorUtils (#274)
---
 .../apache/tsfile/utils/TsFileGeneratorUtils.java  | 32 ++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java 
b/java/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
index ff7cb33c..53ab9456 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/utils/TsFileGeneratorUtils.java
@@ -239,10 +239,16 @@ public class TsFileGeneratorUtils {
     if (file.exists()) {
       file.delete();
     }
-    if (chunkGroupSize > 0)
+
+    int originGroupSize = 
TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte();
+    int originPageSize = 
TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
+    if (chunkGroupSize > 0) {
       
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(chunkGroupSize);
-    if (pageSize > 0)
+    }
+    if (pageSize > 0) {
       
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
+    }
+
     try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
       // register align timeseries
       List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
@@ -266,6 +272,9 @@ public class TsFileGeneratorUtils {
             startValue,
             true);
       }
+    } finally {
+      
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(originGroupSize);
+      
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(originPageSize);
     }
     return file;
   }
@@ -284,6 +293,9 @@ public class TsFileGeneratorUtils {
     if (file.exists()) {
       file.delete();
     }
+
+    int originGroupSize = 
TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte();
+    int originPageSize = 
TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
     if (chunkGroupSize > 0)
       
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(chunkGroupSize);
     if (pageSize > 0)
@@ -311,6 +323,9 @@ public class TsFileGeneratorUtils {
             false);
       }
       return file;
+    } finally {
+      
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(originGroupSize);
+      
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(originPageSize);
     }
   }
 
@@ -328,10 +343,14 @@ public class TsFileGeneratorUtils {
     if (file.exists()) {
       file.delete();
     }
+
+    int originGroupSize = 
TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte();
+    int originPageSize = 
TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
     if (chunkGroupSize > 0)
       
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(chunkGroupSize);
     if (pageSize > 0)
       
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(pageSize);
+
     try (TsFileWriter tsFileWriter = new TsFileWriter(file)) {
       // register align timeseries
       List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
@@ -368,6 +387,9 @@ public class TsFileGeneratorUtils {
           tsFileWriter.writeAligned(tsRecord);
         }
       }
+    } finally {
+      
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(originGroupSize);
+      
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(originPageSize);
     }
     return file;
   }
@@ -386,6 +408,9 @@ public class TsFileGeneratorUtils {
     if (file.exists()) {
       file.delete();
     }
+
+    int originGroupSize = 
TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte();
+    int originPageSize = 
TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
     if (chunkGroupSize > 0)
       
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(chunkGroupSize);
     if (pageSize > 0)
@@ -421,6 +446,9 @@ public class TsFileGeneratorUtils {
         }
       }
       return file;
+    } finally {
+      
TSFileDescriptor.getInstance().getConfig().setGroupSizeInByte(originGroupSize);
+      
TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(originPageSize);
     }
   }
 

Reply via email to