Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
1226e747
提交
1226e747
authored
11 年前
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix test cases
上级
75604676
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
26 行增加
和
16 行删除
+26
-16
FileStore.java
h2/src/main/org/h2/mvstore/FileStore.java
+10
-13
MVStore.java
h2/src/main/org/h2/mvstore/MVStore.java
+2
-2
SourceCompiler.java
h2/src/main/org/h2/util/SourceCompiler.java
+12
-1
TestMVStore.java
h2/src/test/org/h2/test/store/TestMVStore.java
+1
-0
ProxyCodeGenerator.java
h2/src/test/org/h2/test/utils/ProxyCodeGenerator.java
+1
-0
没有找到文件。
h2/src/main/org/h2/mvstore/FileStore.java
浏览文件 @
1226e747
...
...
@@ -22,7 +22,7 @@ import org.h2.store.fs.FilePathNio;
*/
public
class
FileStore
{
private
final
String
fileName
;
private
String
fileName
;
private
boolean
readOnly
;
private
FileChannel
file
;
private
FileLock
fileLock
;
...
...
@@ -30,17 +30,6 @@ public class FileStore {
private
long
readCount
;
private
long
writeCount
;
public
FileStore
(
String
fileName
,
boolean
readOnly
)
{
if
(
fileName
!=
null
&&
fileName
.
indexOf
(
':'
)
<
0
)
{
// NIO is used, unless a different file system is specified
// the following line is to ensure the NIO file system is compiled
FilePathNio
.
class
.
getName
();
fileName
=
"nio:"
+
fileName
;
}
this
.
fileName
=
fileName
;
this
.
readOnly
=
readOnly
;
}
@Override
public
String
toString
()
{
return
fileName
;
...
...
@@ -67,7 +56,14 @@ public class FileStore {
}
public
void
open
(
char
[]
encryptionKey
)
{
public
void
open
(
String
fileName
,
boolean
readOnly
,
char
[]
encryptionKey
)
{
if
(
fileName
!=
null
&&
fileName
.
indexOf
(
':'
)
<
0
)
{
// NIO is used, unless a different file system is specified
// the following line is to ensure the NIO file system is compiled
FilePathNio
.
class
.
getName
();
fileName
=
"nio:"
+
fileName
;
}
this
.
fileName
=
fileName
;
FilePath
f
=
FilePath
.
get
(
fileName
);
FilePath
parent
=
f
.
getParent
();
if
(!
parent
.
exists
())
{
...
...
@@ -76,6 +72,7 @@ public class FileStore {
if
(
f
.
exists
()
&&
!
f
.
canWrite
())
{
readOnly
=
true
;
}
this
.
readOnly
=
readOnly
;
try
{
file
=
f
.
open
(
readOnly
?
"r"
:
"rw"
);
if
(
encryptionKey
!=
null
)
{
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/mvstore/MVStore.java
浏览文件 @
1226e747
...
...
@@ -267,8 +267,8 @@ public class MVStore {
cache
=
null
;
return
;
}
fileStore
=
new
FileStore
();
boolean
readOnly
=
config
.
containsKey
(
"readOnly"
);
fileStore
=
new
FileStore
(
f
,
readOnly
);
o
=
config
.
get
(
"cacheSize"
);
int
mb
=
o
==
null
?
16
:
(
Integer
)
o
;
int
maxMemoryBytes
=
mb
*
1024
*
1024
;
...
...
@@ -284,7 +284,7 @@ public class MVStore {
unsavedPageCountMax
=
writeBufferSize
/
(
div
==
0
?
1
:
div
);
char
[]
encryptionKey
=
(
char
[])
config
.
get
(
"encryptionKey"
);
try
{
fileStore
.
open
(
encryptionKey
);
fileStore
.
open
(
f
,
readOnly
,
encryptionKey
);
if
(
fileStore
.
size
()
==
0
)
{
creationTime
=
0
;
creationTime
=
getTime
();
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/util/SourceCompiler.java
浏览文件 @
1226e747
...
...
@@ -58,6 +58,8 @@ public class SourceCompiler {
* The class name to byte code map.
*/
final
HashMap
<
String
,
Class
<?>>
compiled
=
New
.
hashMap
();
boolean
useJavaSystemCompiler
=
true
;
static
{
JavaCompiler
c
;
...
...
@@ -88,6 +90,15 @@ public class SourceCompiler {
sources
.
put
(
className
,
source
);
compiled
.
clear
();
}
/**
* Enable or disable the usage of the Java system compiler.
*
* @param enabled true to enable
*/
public
void
setJavaSystemCompiler
(
boolean
enabled
)
{
this
.
useJavaSystemCompiler
=
enabled
;
}
/**
* Get the class object for the given name.
...
...
@@ -125,7 +136,7 @@ public class SourceCompiler {
className
=
name
;
}
String
s
=
getCompleteSourceCode
(
packageName
,
className
,
source
);
if
(
JAVA_COMPILER
!=
null
)
{
if
(
JAVA_COMPILER
!=
null
&&
useJavaSystemCompiler
)
{
classInstance
=
javaxToolsJavac
(
packageName
,
className
,
s
);
}
else
{
byte
[]
data
=
javacCompile
(
packageName
,
className
,
s
);
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/store/TestMVStore.java
浏览文件 @
1226e747
...
...
@@ -398,6 +398,7 @@ public class TestMVStore extends TestBase {
fileName
(
fileName
).
encryptionKey
(
passwordChars
).
open
();
assertTrue
(
s
.
getFileStore
().
isReadOnly
());
s
.
close
();
FileUtils
.
delete
(
fileName
);
assertFalse
(
FileUtils
.
exists
(
fileName
));
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/utils/ProxyCodeGenerator.java
浏览文件 @
1226e747
...
...
@@ -64,6 +64,7 @@ public class ProxyCodeGenerator {
cg
.
write
(
new
PrintWriter
(
sw
));
String
code
=
sw
.
toString
();
String
proxy
=
"bytecode."
+
c
.
getSimpleName
()
+
"Proxy"
;
compiler
.
setJavaSystemCompiler
(
false
);
compiler
.
setSource
(
proxy
,
code
);
// System.out.println(code);
Class
<?>
px
=
compiler
.
getClass
(
proxy
);
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论