Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
84092ec5
Unverified
提交
84092ec5
authored
6 年前
作者:
Andrei Tokar
提交者:
GitHub
6 年前
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1353 from h2database/crash-api
Crash api
上级
a63f2589
244c0bd0
master
version-1.4.198
无相关合并请求
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
17 行增加
和
5 行删除
+17
-5
Prepared.java
h2/src/main/org/h2/command/Prepared.java
+6
-1
JdbcBlob.java
h2/src/main/org/h2/jdbc/JdbcBlob.java
+6
-0
TestCrashAPI.java
h2/src/test/org/h2/test/synth/TestCrashAPI.java
+5
-4
没有找到文件。
h2/src/main/org/h2/command/Prepared.java
浏览文件 @
84092ec5
...
...
@@ -170,6 +170,11 @@ public abstract class Prepared {
* @throws DbException if any parameter has not been set
*/
protected
void
checkParameters
()
{
if
(
persistedObjectId
<
0
)
{
// restore original persistedObjectId on Command re-run
// i.e. due to concurrent update
persistedObjectId
=
-
persistedObjectId
-
1
;
}
if
(
parameters
!=
null
)
{
for
(
Parameter
param
:
parameters
)
{
param
.
checkSet
();
...
...
@@ -268,7 +273,7 @@ public abstract class Prepared {
}
else
if
(
id
<
0
)
{
throw
DbException
.
throwInternalError
(
"Prepared.getObjectId() was called before"
);
}
persistedObjectId
=
-
1
;
persistedObjectId
=
-
persistedObjectId
-
1
;
// while negative, it can be restored later
return
id
;
}
...
...
This diff is collapsed.
Click to expand it.
h2/src/main/org/h2/jdbc/JdbcBlob.java
浏览文件 @
84092ec5
...
...
@@ -102,6 +102,9 @@ public class JdbcBlob extends JdbcLob implements Blob {
*/
@Override
public
int
setBytes
(
long
pos
,
byte
[]
bytes
)
throws
SQLException
{
if
(
bytes
==
null
)
{
throw
new
NullPointerException
();
}
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"setBytes("
+
pos
+
", "
+
quoteBytes
(
bytes
)+
");"
);
...
...
@@ -129,6 +132,9 @@ public class JdbcBlob extends JdbcLob implements Blob {
@Override
public
int
setBytes
(
long
pos
,
byte
[]
bytes
,
int
offset
,
int
len
)
throws
SQLException
{
if
(
bytes
==
null
)
{
throw
new
NullPointerException
();
}
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"setBytes("
+
pos
+
", "
+
quoteBytes
(
bytes
)
+
", "
+
offset
+
", "
+
len
+
");"
);
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/synth/TestCrashAPI.java
浏览文件 @
84092ec5
...
...
@@ -383,6 +383,7 @@ public class TestCrashAPI extends TestDb implements Runnable {
boolean
isDefault
=
(
m
.
getModifiers
()
&
(
Modifier
.
ABSTRACT
|
Modifier
.
PUBLIC
|
Modifier
.
STATIC
))
==
Modifier
.
PUBLIC
&&
m
.
getDeclaringClass
().
isInterface
();
boolean
allowNPE
=
isDefault
||
o
instanceof
Blob
&&
"setBytes"
.
equals
(
m
.
getName
());
Class
<?>[]
paramClasses
=
m
.
getParameterTypes
();
Object
[]
params
=
new
Object
[
paramClasses
.
length
];
for
(
int
i
=
0
;
i
<
params
.
length
;
i
++)
{
...
...
@@ -398,7 +399,7 @@ public class TestCrashAPI extends TestDb implements Runnable {
TestBase
.
logError
(
"error"
,
e
);
}
catch
(
InvocationTargetException
e
)
{
Throwable
t
=
e
.
getTargetException
();
printIfBad
(
seed
,
id
,
objectId
,
t
,
isDefault
);
printIfBad
(
seed
,
id
,
objectId
,
t
,
allowNPE
);
}
if
(
result
==
null
)
{
return
null
;
...
...
@@ -414,7 +415,7 @@ public class TestCrashAPI extends TestDb implements Runnable {
printIfBad
(
seed
,
id
,
objectId
,
t
,
false
);
}
private
void
printIfBad
(
int
seed
,
int
id
,
int
objectId
,
Throwable
t
,
boolean
isDefault
)
{
private
void
printIfBad
(
int
seed
,
int
id
,
int
objectId
,
Throwable
t
,
boolean
allowNPE
)
{
if
(
t
instanceof
BatchUpdateException
)
{
// do nothing
}
else
if
(
t
.
getClass
().
getName
().
contains
(
"SQLClientInfoException"
))
{
...
...
@@ -438,8 +439,8 @@ public class TestCrashAPI extends TestDb implements Runnable {
// General error [HY000]
printError
(
seed
,
id
,
s
);
}
}
else
if
(
isDefault
&&
t
instanceof
NullPointerException
)
{
// do nothing,
default
methods may throw this exception
}
else
if
(
allowNPE
&&
t
instanceof
NullPointerException
)
{
// do nothing,
this
methods may throw this exception
}
else
{
printError
(
seed
,
id
,
t
);
}
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论