Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
01397c72
Unverified
提交
01397c72
authored
7 年前
作者:
Noel Grandin
提交者:
GitHub
7 年前
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #818 from katzyn/misc
Fixes for remaining issues with boolean parameters
上级
e2742465
bbad6234
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
102 行增加
和
22 行删除
+102
-22
ConnectionInfo.java
h2/src/main/org/h2/engine/ConnectionInfo.java
+2
-3
SessionRemote.java
h2/src/main/org/h2/engine/SessionRemote.java
+3
-6
WebApp.java
h2/src/main/org/h2/server/web/WebApp.java
+2
-4
Csv.java
h2/src/main/org/h2/tools/Csv.java
+4
-3
SimpleResultSet.java
h2/src/main/org/h2/tools/SimpleResultSet.java
+2
-1
Utils.java
h2/src/main/org/h2/util/Utils.java
+28
-5
TestUtils.java
h2/src/test/org/h2/test/unit/TestUtils.java
+61
-0
没有找到文件。
h2/src/main/org/h2/engine/ConnectionInfo.java
浏览文件 @
01397c72
...
...
@@ -333,7 +333,7 @@ public class ConnectionInfo implements Cloneable {
* @param defaultValue the default value
* @return the value
*/
boolean
getProperty
(
String
key
,
boolean
defaultValue
)
{
public
boolean
getProperty
(
String
key
,
boolean
defaultValue
)
{
return
Utils
.
parseBoolean
(
getProperty
(
key
,
null
),
defaultValue
,
false
);
}
...
...
@@ -345,8 +345,7 @@ public class ConnectionInfo implements Cloneable {
* @return the value
*/
public
boolean
removeProperty
(
String
key
,
boolean
defaultValue
)
{
String
x
=
removeProperty
(
key
,
null
);
return
x
==
null
?
defaultValue
:
Boolean
.
parseBoolean
(
x
);
return
Utils
.
parseBoolean
(
removeProperty
(
key
,
null
),
defaultValue
,
false
);
}
/**
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/engine/SessionRemote.java
浏览文件 @
01397c72
...
...
@@ -335,8 +335,7 @@ public class SessionRemote extends SessionWithState implements DataHandler {
}
// create the session using reflection,
// so that the JDBC layer can be compiled without it
boolean
autoServerMode
=
Boolean
.
parseBoolean
(
ci
.
getProperty
(
"AUTO_SERVER"
,
"false"
));
boolean
autoServerMode
=
ci
.
getProperty
(
"AUTO_SERVER"
,
false
);
ConnectionInfo
backup
=
null
;
try
{
if
(
autoServerMode
)
{
...
...
@@ -413,11 +412,9 @@ public class SessionRemote extends SessionWithState implements DataHandler {
serverList
=
StringUtils
.
quoteStringSQL
(
server
);
ci
.
setProperty
(
"CLUSTER"
,
Constants
.
CLUSTERING_ENABLED
);
}
autoReconnect
=
Boolean
.
parseBoolean
(
ci
.
getProperty
(
"AUTO_RECONNECT"
,
"false"
));
autoReconnect
=
ci
.
getProperty
(
"AUTO_RECONNECT"
,
false
);
// AUTO_SERVER implies AUTO_RECONNECT
boolean
autoServer
=
Boolean
.
parseBoolean
(
ci
.
getProperty
(
"AUTO_SERVER"
,
"false"
));
boolean
autoServer
=
ci
.
getProperty
(
"AUTO_SERVER"
,
false
);
if
(
autoServer
&&
serverList
!=
null
)
{
throw
DbException
.
getUnsupportedException
(
"autoServer && serverList != null"
);
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/server/web/WebApp.java
浏览文件 @
01397c72
...
...
@@ -351,12 +351,10 @@ public class WebApp {
int
port
=
Integer
.
decode
((
String
)
attributes
.
get
(
"port"
));
prop
.
setProperty
(
"webPort"
,
String
.
valueOf
(
port
));
server
.
setPort
(
port
);
boolean
allowOthers
=
Boolean
.
parseBoolean
(
(
String
)
attributes
.
get
(
"allowOthers"
));
boolean
allowOthers
=
Utils
.
parseBoolean
((
String
)
attributes
.
get
(
"allowOthers"
),
false
,
false
);
prop
.
setProperty
(
"webAllowOthers"
,
String
.
valueOf
(
allowOthers
));
server
.
setAllowOthers
(
allowOthers
);
boolean
ssl
=
Boolean
.
parseBoolean
(
(
String
)
attributes
.
get
(
"ssl"
));
boolean
ssl
=
Utils
.
parseBoolean
((
String
)
attributes
.
get
(
"ssl"
),
false
,
false
);
prop
.
setProperty
(
"webSSL"
,
String
.
valueOf
(
ssl
));
server
.
setSSL
(
ssl
);
server
.
saveProperties
(
prop
);
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/tools/Csv.java
浏览文件 @
01397c72
...
...
@@ -32,6 +32,7 @@ import org.h2.util.IOUtils;
import
org.h2.util.JdbcUtils
;
import
org.h2.util.New
;
import
org.h2.util.StringUtils
;
import
org.h2.util.Utils
;
/**
* A facility to read from and write to CSV (comma separated values) files. When
...
...
@@ -857,11 +858,11 @@ public class Csv implements SimpleRowSource {
}
else
if
(
isParam
(
key
,
"charset"
,
"characterSet"
))
{
charset
=
value
;
}
else
if
(
isParam
(
key
,
"preserveWhitespace"
))
{
setPreserveWhitespace
(
Boolean
.
parseBoolean
(
valu
e
));
setPreserveWhitespace
(
Utils
.
parseBoolean
(
value
,
false
,
fals
e
));
}
else
if
(
isParam
(
key
,
"writeColumnHeader"
))
{
setWriteColumnHeader
(
Boolean
.
parseBoolean
(
valu
e
));
setWriteColumnHeader
(
Utils
.
parseBoolean
(
value
,
true
,
fals
e
));
}
else
if
(
isParam
(
key
,
"caseSensitiveColumnNames"
))
{
setCaseSensitiveColumnNames
(
Boolean
.
parseBoolean
(
valu
e
));
setCaseSensitiveColumnNames
(
Utils
.
parseBoolean
(
value
,
false
,
fals
e
));
}
else
{
throw
DbException
.
getUnsupportedException
(
key
);
}
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/tools/SimpleResultSet.java
浏览文件 @
01397c72
...
...
@@ -38,6 +38,7 @@ import org.h2.util.Bits;
import
org.h2.util.JdbcUtils
;
import
org.h2.util.MathUtils
;
import
org.h2.util.New
;
import
org.h2.util.Utils
;
import
org.h2.value.DataType
;
/**
...
...
@@ -498,7 +499,7 @@ public class SimpleResultSet implements ResultSet, ResultSetMetaData,
}
return
n
.
longValue
()
!=
0
;
}
return
Boolean
.
parseBoolean
(
o
.
toString
()
);
return
Utils
.
parseBoolean
(
o
.
toString
(),
false
,
true
);
}
/**
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/util/Utils.java
浏览文件 @
01397c72
...
...
@@ -659,11 +659,34 @@ public class Utils {
if
(
value
==
null
)
{
return
defaultValue
;
}
if
(
value
.
equalsIgnoreCase
(
"true"
)
||
value
.
equals
(
"1"
))
{
return
true
;
}
if
(
value
.
equalsIgnoreCase
(
"false"
)
||
value
.
equals
(
"0"
))
{
return
false
;
switch
(
value
.
length
())
{
case
1
:
if
(
value
.
equals
(
"1"
)
||
value
.
equalsIgnoreCase
(
"t"
)
||
value
.
equalsIgnoreCase
(
"y"
))
{
return
true
;
}
if
(
value
.
equals
(
"0"
)
||
value
.
equalsIgnoreCase
(
"f"
)
||
value
.
equalsIgnoreCase
(
"n"
))
{
return
false
;
}
break
;
case
2
:
if
(
value
.
equalsIgnoreCase
(
"no"
))
{
return
false
;
}
break
;
case
3
:
if
(
value
.
equalsIgnoreCase
(
"yes"
))
{
return
true
;
}
break
;
case
4
:
if
(
value
.
equalsIgnoreCase
(
"true"
))
{
return
true
;
}
break
;
case
5
:
if
(
value
.
equalsIgnoreCase
(
"false"
))
{
return
false
;
}
}
if
(
throwException
)
{
throw
new
IllegalArgumentException
(
value
);
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/unit/TestUtils.java
浏览文件 @
01397c72
...
...
@@ -52,6 +52,7 @@ public class TestUtils extends TestBase {
testGetNonPrimitiveClass
();
testGetNonPrimitiveClass
();
testReflectionUtils
();
testParseBoolean
();
}
private
void
testIOUtils
()
throws
IOException
{
...
...
@@ -221,4 +222,64 @@ public class TestUtils extends TestBase {
ArrayList
.
class
));
}
private
void
testParseBooleanCheckFalse
(
String
value
)
{
assertFalse
(
Utils
.
parseBoolean
(
value
,
false
,
false
));
assertFalse
(
Utils
.
parseBoolean
(
value
,
false
,
true
));
assertFalse
(
Utils
.
parseBoolean
(
value
,
true
,
false
));
assertFalse
(
Utils
.
parseBoolean
(
value
,
true
,
true
));
}
private
void
testParseBooleanCheckTrue
(
String
value
)
{
assertTrue
(
Utils
.
parseBoolean
(
value
,
false
,
false
));
assertTrue
(
Utils
.
parseBoolean
(
value
,
false
,
true
));
assertTrue
(
Utils
.
parseBoolean
(
value
,
true
,
false
));
assertTrue
(
Utils
.
parseBoolean
(
value
,
true
,
true
));
}
private
void
testParseBoolean
()
{
// Test for default value in case of null
assertFalse
(
Utils
.
parseBoolean
(
null
,
false
,
false
));
assertFalse
(
Utils
.
parseBoolean
(
null
,
false
,
true
));
assertTrue
(
Utils
.
parseBoolean
(
null
,
true
,
false
));
assertTrue
(
Utils
.
parseBoolean
(
null
,
true
,
true
));
// Test assorted valid strings
testParseBooleanCheckFalse
(
"0"
);
testParseBooleanCheckFalse
(
"f"
);
testParseBooleanCheckFalse
(
"F"
);
testParseBooleanCheckFalse
(
"n"
);
testParseBooleanCheckFalse
(
"N"
);
testParseBooleanCheckFalse
(
"no"
);
testParseBooleanCheckFalse
(
"No"
);
testParseBooleanCheckFalse
(
"NO"
);
testParseBooleanCheckFalse
(
"false"
);
testParseBooleanCheckFalse
(
"False"
);
testParseBooleanCheckFalse
(
"FALSE"
);
testParseBooleanCheckTrue
(
"1"
);
testParseBooleanCheckTrue
(
"t"
);
testParseBooleanCheckTrue
(
"T"
);
testParseBooleanCheckTrue
(
"y"
);
testParseBooleanCheckTrue
(
"Y"
);
testParseBooleanCheckTrue
(
"yes"
);
testParseBooleanCheckTrue
(
"Yes"
);
testParseBooleanCheckTrue
(
"YES"
);
testParseBooleanCheckTrue
(
"true"
);
testParseBooleanCheckTrue
(
"True"
);
testParseBooleanCheckTrue
(
"TRUE"
);
// Test other values
assertFalse
(
Utils
.
parseBoolean
(
"BAD"
,
false
,
false
));
assertTrue
(
Utils
.
parseBoolean
(
"BAD"
,
true
,
false
));
try
{
Utils
.
parseBoolean
(
"BAD"
,
false
,
true
);
fail
();
}
catch
(
IllegalArgumentException
e
)
{
// OK
}
try
{
Utils
.
parseBoolean
(
"BAD"
,
true
,
true
);
fail
();
}
catch
(
IllegalArgumentException
e
)
{
// OK
}
}
}
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论