Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
见谅
dbeaver
提交
5b6d7b42
D
dbeaver
项目概览
见谅
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5b6d7b42
编写于
7月 26, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use job instead of progress service.
上级
2e3552c7
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
51 addition
and
52 deletion
+51
-52
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
.../src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
+14
-18
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/TaskstJob.java
...dbeaver.core/src/org/jkiss/dbeaver/runtime/TaskstJob.java
+11
-10
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/sql/SQLQueryJob.java
...r.core/src/org/jkiss/dbeaver/runtime/sql/SQLQueryJob.java
+9
-12
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/transfer/database/DatabaseTransferConsumer.java
...ver/tools/transfer/database/DatabaseTransferConsumer.java
+5
-12
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/exec/ExecutionQueueErrorJob.java
...jkiss/dbeaver/ui/dialogs/exec/ExecutionQueueErrorJob.java
+12
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceDescriptor.java
浏览文件 @
5b6d7b42
...
...
@@ -37,6 +37,7 @@ import org.jkiss.dbeaver.model.net.DBWTunnel;
import
org.jkiss.dbeaver.model.runtime.*
;
import
org.jkiss.dbeaver.model.struct.*
;
import
org.jkiss.dbeaver.model.virtual.DBVModel
;
import
org.jkiss.dbeaver.runtime.TaskstJob
;
import
org.jkiss.dbeaver.runtime.properties.PropertyCollector
;
import
org.jkiss.dbeaver.ui.actions.datasource.DataSourceHandler
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -288,25 +289,20 @@ public class DataSourceDescriptor
if
(
updateContext
!=
null
)
{
final
DBCTransactionManager
txnManager
=
DBUtils
.
getTransactionManager
(
updateContext
);
if
(
updateConnection
&&
txnManager
!=
null
)
{
try
{
DBeaverUI
.
runInProgressDialog
(
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
monitor
.
beginTask
(
"Set auto-commit mode"
,
1
);
try
{
// Change auto-commit mode
txnManager
.
setAutoCommit
(
monitor
,
autoCommit
);
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
monitor
.
done
();
}
new
TaskstJob
(
"Set auto-commit mode"
,
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
try
{
// Change auto-commit mode
txnManager
.
setAutoCommit
(
monitor
,
autoCommit
);
}
catch
(
DBCException
e
)
{
throw
new
InvocationTargetException
(
e
);
}
finally
{
monitor
.
done
();
}
});
}
catch
(
InvocationTargetException
e
)
{
throw
new
DBException
(
"Can't set auto-commit"
,
e
.
getTargetException
());
}
}
}).
schedule
();
}
}
// Save in preferences
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/TaskstJob.java
浏览文件 @
5b6d7b42
...
...
@@ -21,11 +21,13 @@ import org.eclipse.core.runtime.IStatus;
import
org.eclipse.core.runtime.Status
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob
;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.List
;
/**
...
...
@@ -41,6 +43,10 @@ public class TaskstJob extends AbstractJob
this
.
tasks
=
new
ArrayList
<
DBRRunnableWithProgress
>(
tasks
);
}
public
TaskstJob
(
String
name
,
DBRRunnableWithProgress
task
)
{
this
(
name
,
Collections
.
singletonList
(
task
));
}
@Override
protected
IStatus
run
(
DBRProgressMonitor
monitor
)
{
monitor
.
beginTask
(
getName
(),
tasks
.
size
());
...
...
@@ -53,17 +59,11 @@ public class TaskstJob extends AbstractJob
try
{
task
.
run
(
monitor
);
}
catch
(
InvocationTargetException
e
)
{
if
(!
ignoreErrors
)
{
ExecutionQueueErrorJob
errorJob
=
new
ExecutionQueueErrorJob
(
getName
(),
e
.
getTargetException
(),
tasks
.
size
()
>
1
);
errorJob
.
schedule
();
try
{
errorJob
.
join
();
}
catch
(
InterruptedException
e1
)
{
log
.
error
(
e1
);
}
if
(
tasks
.
size
()
==
1
)
{
UIUtils
.
showErrorDialog
(
null
,
getName
(),
null
,
e
.
getTargetException
());
}
else
if
(!
ignoreErrors
)
{
boolean
keepRunning
=
true
;
switch
(
errorJob
.
getResponse
(
))
{
switch
(
ExecutionQueueErrorJob
.
showError
(
getName
(),
e
.
getTargetException
(),
true
))
{
case
STOP:
keepRunning
=
false
;
break
;
...
...
@@ -85,6 +85,7 @@ public class TaskstJob extends AbstractJob
}
catch
(
InterruptedException
e
)
{
// Ignore
}
monitor
.
worked
(
1
);
i
++;
}
monitor
.
done
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/runtime/sql/SQLQueryJob.java
浏览文件 @
5b6d7b42
...
...
@@ -23,9 +23,12 @@ import org.eclipse.jface.dialogs.IDialogConstants;
import
org.eclipse.ui.IWorkbenchPartSite
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.*
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPDataKind
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.data.DBDDataFilter
;
import
org.jkiss.dbeaver.model.data.DBDDataReceiver
;
import
org.jkiss.dbeaver.model.exec.*
;
...
...
@@ -37,11 +40,12 @@ import org.jkiss.dbeaver.model.sql.SQLQuery;
import
org.jkiss.dbeaver.model.sql.SQLQueryParameter
;
import
org.jkiss.dbeaver.model.sql.SQLQueryResult
;
import
org.jkiss.dbeaver.runtime.RunnableWithResult
;
import
org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob
;
import
org.jkiss.dbeaver.runtime.jobs.DataSourceJob
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.UIIcon
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob
;
import
org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorResponse
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.ArrayList
;
...
...
@@ -162,20 +166,13 @@ public class SQLQueryJob extends DataSourceJob
log
.
error
(
lastError
);
}
boolean
isQueue
=
queryNum
<
queries
.
size
()
-
1
;
ExecutionQueueError
Job
errorJob
=
new
ExecutionQueueErrorJob
(
ExecutionQueueError
Response
response
=
ExecutionQueueErrorJob
.
showError
(
isQueue
?
"SQL script execution"
:
"SQL query execution"
,
lastError
,
isQueue
);
errorJob
.
schedule
();
try
{
errorJob
.
join
();
}
catch
(
InterruptedException
e
)
{
log
.
error
(
e
);
}
boolean
stopScript
=
false
;
switch
(
errorJob
.
getResponse
()
)
{
switch
(
response
)
{
case
STOP:
// just stop execution
stopScript
=
true
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/tools/transfer/database/DatabaseTransferConsumer.java
浏览文件 @
5b6d7b42
...
...
@@ -18,8 +18,8 @@
package
org.jkiss.dbeaver.tools.transfer.database
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.data.DBDValueHandler
;
...
...
@@ -30,11 +30,12 @@ import org.jkiss.dbeaver.model.sql.SQLDataSource;
import
org.jkiss.dbeaver.model.struct.*
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSCatalog
;
import
org.jkiss.dbeaver.model.struct.rdb.DBSSchema
;
import
org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob
;
import
org.jkiss.dbeaver.tools.transfer.IDataTransferConsumer
;
import
org.jkiss.dbeaver.tools.transfer.IDataTransferProcessor
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorJob
;
import
org.jkiss.dbeaver.ui.dialogs.exec.ExecutionQueueErrorResponse
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.*
;
...
...
@@ -143,19 +144,11 @@ public class DatabaseTransferConsumer implements IDataTransferConsumer<DatabaseC
}
catch
(
Throwable
e
)
{
log
.
error
(
"Error inserting row"
,
e
);
if
(!
ignoreErrors
)
{
ExecutionQueueError
Job
errorJob
=
new
ExecutionQueueErrorJob
(
ExecutionQueueError
Response
response
=
ExecutionQueueErrorJob
.
showError
(
DBUtils
.
getObjectFullName
(
containerMapping
.
getTarget
())
+
" data load"
,
e
,
true
);
errorJob
.
schedule
();
try
{
errorJob
.
join
();
}
catch
(
InterruptedException
e1
)
{
// ignore
throw
new
DBCException
(
"Transfer interrupted"
,
e
);
}
switch
(
errorJob
.
getResponse
())
{
switch
(
response
)
{
case
STOP:
// just stop execution
throw
new
DBCException
(
"Can't insert row"
,
e
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/exec/ExecutionQueueErrorJob.java
浏览文件 @
5b6d7b42
...
...
@@ -68,4 +68,16 @@ public class ExecutionQueueErrorJob extends AbstractUIJob {
{
return
response
;
}
public
static
ExecutionQueueErrorResponse
showError
(
String
task
,
Throwable
error
,
boolean
queue
)
{
ExecutionQueueErrorJob
errorJob
=
new
ExecutionQueueErrorJob
(
task
,
error
,
queue
);
errorJob
.
schedule
();
try
{
errorJob
.
join
();
}
catch
(
InterruptedException
e1
)
{
log
.
error
(
e1
);
}
return
errorJob
.
getResponse
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录