Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
02b91ecc
提交
02b91ecc
authored
17 年前
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
--no commit message
上级
9038f7a4
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
31 行增加
和
13 行删除
+31
-13
SysProperties.java
h2/src/main/org/h2/constant/SysProperties.java
+1
-3
FileSystemMemory.java
h2/src/main/org/h2/store/fs/FileSystemMemory.java
+2
-2
FileUtils.java
h2/src/main/org/h2/util/FileUtils.java
+4
-0
TempFileDeleter.java
h2/src/main/org/h2/util/TempFileDeleter.java
+24
-8
没有找到文件。
h2/src/main/org/h2/constant/SysProperties.java
浏览文件 @
02b91ecc
...
...
@@ -359,9 +359,7 @@ public class SysProperties {
* System property <code>h2.reuseSpaceQuickly</code> (default: true).<br />
* Reuse space in database files quickly.
*/
int
test
;
// public static final boolean REUSE_SPACE_QUICKLY = getBooleanSetting("h2.reuseSpaceQuickly", true);
public
static
final
boolean
REUSE_SPACE_QUICKLY
=
getBooleanSetting
(
"h2.reuseSpaceQuickly"
,
false
);
public
static
final
boolean
REUSE_SPACE_QUICKLY
=
getBooleanSetting
(
"h2.reuseSpaceQuickly"
,
true
);
/**
* System property <code>h2.runFinalize</code> (default: true).<br />
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/store/fs/FileSystemMemory.java
浏览文件 @
02b91ecc
...
...
@@ -77,8 +77,8 @@ public class FileSystemMemory extends FileSystem {
for
(
int
i
=
0
;;
i
++)
{
int
test
;
String
n
=
name
+
RandomUtils
.
getSecureLong
()
+
suffix
;
//
String n = name + i + suffix;
//
String n = name + RandomUtils.getSecureLong() + suffix;
String
n
=
name
+
i
+
suffix
;
if
(!
exists
(
n
))
{
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/util/FileUtils.java
浏览文件 @
02b91ecc
...
...
@@ -193,4 +193,8 @@ public class FileUtils {
FileSystem
.
getInstance
(
fileName
).
delete
(
fileName
);
}
public
static
long
getLastModified
(
String
fileName
)
{
return
FileSystem
.
getInstance
(
fileName
).
getLastModified
(
fileName
);
}
}
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/util/TempFileDeleter.java
浏览文件 @
02b91ecc
...
...
@@ -20,22 +20,38 @@ public class TempFileDeleter {
private
static
final
ReferenceQueue
QUEUE
=
new
ReferenceQueue
();
private
static
final
HashMap
REF_MAP
=
new
HashMap
();
private
static
class
TempFile
{
String
fileName
;
long
lastModified
;
}
public
static
synchronized
Reference
addFile
(
String
fileName
,
Object
file
)
{
FileUtils
.
trace
(
"TempFileDeleter.addFile"
,
fileName
,
file
);
PhantomReference
ref
=
new
PhantomReference
(
file
,
QUEUE
);
REF_MAP
.
put
(
ref
,
fileName
);
TempFile
f
=
new
TempFile
();
f
.
fileName
=
fileName
;
f
.
lastModified
=
FileUtils
.
getLastModified
(
fileName
);
REF_MAP
.
put
(
ref
,
f
);
deleteUnused
();
return
ref
;
}
public
static
synchronized
void
deleteFile
(
Reference
ref
,
String
fileName
)
{
if
(
ref
!=
null
)
{
String
f2
=
(
String
)
REF_MAP
.
remove
(
ref
);
if
(
SysProperties
.
CHECK
&&
f2
!=
null
&&
fileName
!=
null
&&
!
f2
.
equals
(
fileName
))
{
throw
Message
.
getInternalError
(
"f2:"
+
f2
+
" f:"
+
fileName
);
TempFile
f2
=
(
TempFile
)
REF_MAP
.
remove
(
ref
);
if
(
f2
!=
null
)
{
if
(
SysProperties
.
CHECK
&&
fileName
!=
null
&&
!
f2
.
fileName
.
equals
(
fileName
))
{
throw
Message
.
getInternalError
(
"f2:"
+
f2
.
fileName
+
" f:"
+
fileName
);
}
fileName
=
f2
.
fileName
;
long
mod
=
FileUtils
.
getLastModified
(
fileName
);
if
(
mod
!=
f2
.
lastModified
)
{
// the file has been deleted and a new one created
// or it has been modified afterwards
return
;
}
}
fileName
=
f2
;
}
if
(
fileName
!=
null
&&
FileUtils
.
exists
(
fileName
))
{
try
{
...
...
@@ -64,9 +80,9 @@ public class TempFileDeleter {
public
static
void
stopAutoDelete
(
Reference
ref
,
String
fileName
)
{
FileUtils
.
trace
(
"TempFileDeleter.stopAutoDelete"
,
fileName
,
ref
);
if
(
ref
!=
null
)
{
String
f2
=
(
String
)
REF_MAP
.
remove
(
ref
);
if
(
SysProperties
.
CHECK
&&
(
f2
==
null
||
!
f2
.
equals
(
fileName
)))
{
throw
Message
.
getInternalError
(
"f2:"
+
f2
+
" f:"
+
fileName
);
TempFile
f2
=
(
TempFile
)
REF_MAP
.
remove
(
ref
);
if
(
SysProperties
.
CHECK
&&
(
f2
==
null
||
!
f2
.
fileName
.
equals
(
fileName
)))
{
throw
Message
.
getInternalError
(
"f2:"
+
f2
.
fileName
+
" f:"
+
fileName
);
}
}
deleteUnused
();
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论