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

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

commit cd542a962909676476de99e3c5e8ee868015bad7
Author: Tian Jiang <[email protected]>
AuthorDate: Wed Oct 23 10:23:43 2024 +0800

    Fix configs not rolled back in TsFileGeneratorUtils
---
 .../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