Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
502e0add
F
Flowable Engine
项目概览
开发团队
/
Flowable Engine
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Flowable Engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
502e0add
编写于
10月 26, 2010
作者:
F
frederikheremans
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ACT-241 consistent closing of inputstreams
上级
70e50b36
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
132 addition
and
47 deletion
+132
-47
modules/activiti-cycle/src/main/java/org/activiti/cycle/Content.java
...iviti-cycle/src/main/java/org/activiti/cycle/Content.java
+7
-4
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/ParameterizedHtmlFormTemplateAction.java
...iviti/cycle/impl/ParameterizedHtmlFormTemplateAction.java
+6
-1
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/conf/CycleDbSqlSessionFactory.java
...rg/activiti/cycle/impl/conf/CycleDbSqlSessionFactory.java
+7
-2
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/demo/DemoConnector.java
...org/activiti/cycle/impl/connector/demo/DemoConnector.java
+5
-1
modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineBuilder.java
...c/main/java/org/activiti/engine/ProcessEngineBuilder.java
+3
-0
modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngines.java
...ine/src/main/java/org/activiti/engine/ProcessEngines.java
+6
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/ant/DeployBarTask.java
...main/java/org/activiti/engine/impl/ant/DeployBarTask.java
+2
-1
modules/activiti-engine/src/main/java/org/activiti/engine/impl/ant/LaunchThread.java
.../main/java/org/activiti/engine/impl/ant/LaunchThread.java
+5
-1
modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSessionFactory.java
...java/org/activiti/engine/impl/db/DbSqlSessionFactory.java
+7
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/test/ActivitiInternalTestCase.java
...g/activiti/engine/impl/test/ActivitiInternalTestCase.java
+3
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/util/IoUtil.java
...e/src/main/java/org/activiti/engine/impl/util/IoUtil.java
+29
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/util/LogUtil.java
.../src/main/java/org/activiti/engine/impl/util/LogUtil.java
+3
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/SerializableType.java
...a/org/activiti/engine/impl/variable/SerializableType.java
+7
-1
modules/activiti-spring/src/test/java/org/activiti/spring/test/SpringAutoDeployTest.java
...t/java/org/activiti/spring/test/SpringAutoDeployTest.java
+2
-3
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/cycle/ContentGet.java
...src/main/java/org/activiti/rest/api/cycle/ContentGet.java
+6
-2
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/process/ProcessDefinitionFormGet.java
...g/activiti/rest/api/process/ProcessDefinitionFormGet.java
+9
-6
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/repository/DeploymentResourceGet.java
...g/activiti/rest/api/repository/DeploymentResourceGet.java
+3
-0
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/task/TaskFormGet.java
...src/main/java/org/activiti/rest/api/task/TaskFormGet.java
+8
-8
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/util/ActivitiStreamingWebScript.java
...va/org/activiti/rest/util/ActivitiStreamingWebScript.java
+14
-9
未找到文件。
modules/activiti-cycle/src/main/java/org/activiti/cycle/Content.java
浏览文件 @
502e0add
...
...
@@ -5,6 +5,8 @@ import java.io.ByteArrayOutputStream;
import
java.io.IOException
;
import
java.io.InputStream
;
import
org.activiti.engine.impl.util.IoUtil
;
/**
* This class encapsulates real content (text, images, ...).
*
...
...
@@ -36,13 +38,14 @@ public class Content {
}
byteStream
.
write
(
buf
,
0
,
len
);
}
inputStream
.
close
();
byteStream
.
close
();
return
byteStream
.
toByteArray
();
}
catch
(
IOException
ex
)
{
throw
new
RepositoryException
(
"Couldn't load from InputStream of content, check nested exception."
,
ex
);
}
throw
new
RepositoryException
(
"Couldn't load from InputStream of content, check nested exception."
,
ex
);
}
finally
{
// Close inputstream. Closing of ByteArrayOutputStream not nessecairy, does nothing
IoUtil
.
closeSilently
(
inputStream
);
}
}
public
byte
[]
asByteArray
()
{
...
...
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/ParameterizedHtmlFormTemplateAction.java
浏览文件 @
502e0add
...
...
@@ -5,6 +5,7 @@ import java.io.InputStream;
import
java.io.InputStreamReader
;
import
org.activiti.cycle.RepositoryException
;
import
org.activiti.engine.impl.util.IoUtil
;
/**
* Base class for all actions requiring parameters (see
...
...
@@ -31,13 +32,15 @@ public abstract class ParameterizedHtmlFormTemplateAction extends ParameterizedA
return
"/"
+
this
.
getClass
().
getName
().
replace
(
"."
,
"/"
)
+
".html"
;
}
public
String
getFormAsHtml
()
{
InputStream
is
=
null
;
try
{
String
resourceName
=
getFormResourceName
();
if
(
resourceName
==
null
)
{
return
null
;
}
InputStream
is
=
this
.
getClass
().
getResourceAsStream
(
resourceName
);
is
=
this
.
getClass
().
getResourceAsStream
(
resourceName
);
if
(
is
==
null
)
{
throw
new
RepositoryException
(
"HTML form for action "
+
this
.
getClass
()
+
" from template '"
+
getFormResourceName
()
+
"' doesn't exist in classpath"
);
}
...
...
@@ -53,6 +56,8 @@ public abstract class ParameterizedHtmlFormTemplateAction extends ParameterizedA
}
catch
(
Exception
ex
)
{
throw
new
RepositoryException
(
"Exception while creating HTML form for action "
+
this
.
getClass
()
+
" from form template '"
+
getFormResourceName
()
+
"'"
,
ex
);
}
finally
{
IoUtil
.
closeSilently
(
is
);
}
}
...
...
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/conf/CycleDbSqlSessionFactory.java
浏览文件 @
502e0add
...
...
@@ -38,9 +38,10 @@ public class CycleDbSqlSessionFactory extends DbSqlSessionFactory {
@Override
protected
SqlSessionFactory
createSessionFactory
(
DataSource
dataSource
,
TransactionFactory
transactionFactory
)
{
InputStream
inputStream
=
null
;
try
{
ClassLoader
classLoader
=
Thread
.
currentThread
().
getContextClassLoader
();
InputStream
inputStream
=
classLoader
.
getResourceAsStream
(
"org/activiti/db/cycle/ibatis/activiti.ibatis.mem.conf.xml"
);
inputStream
=
classLoader
.
getResourceAsStream
(
"org/activiti/db/cycle/ibatis/activiti.ibatis.mem.conf.xml"
);
// update the jdbc parameters to the configured ones...
Environment
environment
=
new
Environment
(
"default"
,
transactionFactory
,
dataSource
);
...
...
@@ -55,6 +56,8 @@ public class CycleDbSqlSessionFactory extends DbSqlSessionFactory {
}
catch
(
Exception
e
)
{
throw
new
ActivitiException
(
"Error while building ibatis SqlSessionFactory: "
+
e
.
getMessage
(),
e
);
}
finally
{
IoUtil
.
closeSilently
(
inputStream
);
}
}
...
...
@@ -71,11 +74,12 @@ public class CycleDbSqlSessionFactory extends DbSqlSessionFactory {
public
static
void
executeSchemaResource
(
String
operation
,
String
databaseName
,
SqlSessionFactory
sqlSessionFactory
)
{
SqlSession
sqlSession
=
sqlSessionFactory
.
openSession
();
boolean
success
=
false
;
InputStream
inputStream
=
null
;
try
{
Connection
connection
=
sqlSession
.
getConnection
();
ClassLoader
classLoader
=
Thread
.
currentThread
().
getContextClassLoader
();
String
resource
=
"org/activiti/db/cycle/"
+
operation
+
"/activiti."
+
databaseName
+
"."
+
operation
+
".sql"
;
InputStream
inputStream
=
classLoader
.
getResourceAsStream
(
resource
);
inputStream
=
classLoader
.
getResourceAsStream
(
resource
);
if
(
inputStream
==
null
)
{
throw
new
ActivitiException
(
"resource '"
+
resource
+
"' is not available for creating the schema"
);
}
...
...
@@ -111,6 +115,7 @@ public class CycleDbSqlSessionFactory extends DbSqlSessionFactory {
throw
new
ActivitiException
(
"couldn't create db schema"
,
e
);
}
finally
{
IoUtil
.
closeSilently
(
inputStream
);
if
(
success
)
{
sqlSession
.
commit
(
true
);
}
else
{
...
...
modules/activiti-cycle/src/main/java/org/activiti/cycle/impl/connector/demo/DemoConnector.java
浏览文件 @
502e0add
...
...
@@ -21,6 +21,7 @@ import org.activiti.cycle.impl.RepositoryArtifactImpl;
import
org.activiti.cycle.impl.RepositoryFolderImpl
;
import
org.activiti.cycle.impl.RepositoryNodeCollectionImpl
;
import
org.activiti.cycle.impl.connector.AbstractRepositoryConnector
;
import
org.activiti.engine.impl.util.IoUtil
;
public
class
DemoConnector
extends
AbstractRepositoryConnector
<
DemoConnectorConfiguration
>
{
...
...
@@ -147,12 +148,13 @@ public class DemoConnector extends AbstractRepositoryConnector<DemoConnectorConf
private
Content
createContent
(
String
contentSourceUrl
)
{
Content
result
=
new
Content
();
InputStream
in
=
null
;
try
{
ByteArrayOutputStream
byteStream
=
new
ByteArrayOutputStream
();
// read locally instead of internet
// InputStream in = new URL(contentSourceUrl).openStream();
InputStream
in
=
DemoConnector
.
class
.
getResourceAsStream
(
contentSourceUrl
);
in
=
DemoConnector
.
class
.
getResourceAsStream
(
contentSourceUrl
);
if
(
in
==
null
)
{
throw
new
RuntimeException
(
"resource '"
+
contentSourceUrl
+
"' not found in classpath"
);
}
...
...
@@ -169,6 +171,8 @@ public class DemoConnector extends AbstractRepositoryConnector<DemoConnectorConf
result
.
setValue
(
byteStream
.
toByteArray
());
}
catch
(
Exception
ex
)
{
throw
new
RepositoryException
(
"couldn't create content from URL "
+
contentSourceUrl
,
ex
);
}
finally
{
IoUtil
.
closeSilently
(
in
);
}
return
result
;
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineBuilder.java
浏览文件 @
502e0add
...
...
@@ -17,6 +17,7 @@ import java.io.InputStream;
import
java.util.Properties
;
import
org.activiti.engine.impl.cfg.ProcessEngineConfiguration
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.engine.impl.util.ReflectUtil
;
/**
...
...
@@ -245,6 +246,8 @@ public class ProcessEngineBuilder {
properties
.
load
(
inputStream
);
}
catch
(
IOException
e
)
{
throw
new
ActivitiException
(
"problem while reading activiti configuration properties "
+
e
.
getMessage
(),
e
);
}
finally
{
IoUtil
.
closeSilently
(
inputStream
);
}
configureFromProperties
(
properties
);
return
this
;
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngines.java
浏览文件 @
502e0add
...
...
@@ -28,6 +28,7 @@ import java.util.logging.Logger;
import
org.activiti.engine.impl.ProcessEngineImpl
;
import
org.activiti.engine.impl.ProcessEngineInfoImpl
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.engine.impl.util.ReflectUtil
;
...
...
@@ -142,9 +143,10 @@ public abstract class ProcessEngines {
return
sw
.
toString
();
}
private
static
ProcessEngine
buildProcessEngine
(
URL
resource
)
{
private
static
ProcessEngine
buildProcessEngine
(
URL
resource
)
{
InputStream
inputStream
=
null
;
try
{
InputStream
inputStream
=
resource
.
openStream
();
inputStream
=
resource
.
openStream
();
ProcessEngine
processEngine
=
new
ProcessEngineBuilder
()
.
configureFromPropertiesInputStream
(
inputStream
)
.
buildProcessEngine
();
...
...
@@ -152,6 +154,8 @@ public abstract class ProcessEngines {
}
catch
(
IOException
e
)
{
throw
new
ActivitiException
(
"couldn't open resource stream: "
+
e
.
getMessage
(),
e
);
}
finally
{
IoUtil
.
closeSilently
(
inputStream
);
}
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/ant/DeployBarTask.java
浏览文件 @
502e0add
...
...
@@ -24,6 +24,7 @@ import org.activiti.engine.ProcessEngine;
import
org.activiti.engine.ProcessEngineInfo
;
import
org.activiti.engine.ProcessEngines
;
import
org.activiti.engine.RepositoryService
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.engine.impl.util.LogUtil
;
import
org.apache.tools.ant.BuildException
;
import
org.apache.tools.ant.DirectoryScanner
;
...
...
@@ -103,7 +104,7 @@ public class DeployBarTask extends Task {
.
addZipInputStream
(
new
ZipInputStream
(
inputStream
))
.
deploy
();
}
finally
{
inputStream
.
close
(
);
IoUtil
.
closeSilently
(
inputStream
);
}
}
catch
(
Exception
e
)
{
throw
new
BuildException
(
"couldn't deploy bar "
+
path
+
": "
+
e
.
getMessage
(),
e
);
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/ant/LaunchThread.java
浏览文件 @
502e0add
...
...
@@ -17,6 +17,7 @@ import java.io.File;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.apache.tools.ant.BuildException
;
import
org.apache.tools.ant.Task
;
...
...
@@ -71,10 +72,11 @@ public class LaunchThread extends Thread {
.
redirectErrorStream
(
true
)
.
directory
(
dir
);
InputStream
consoleStream
=
null
;
try
{
Process
process
=
processBuilder
.
start
();
InputStream
consoleStream
=
process
.
getInputStream
();
consoleStream
=
process
.
getInputStream
();
BufferedReader
consoleReader
=
new
BufferedReader
(
new
InputStreamReader
(
consoleStream
));
String
consoleLine
=
""
;
while
(
(
consoleLine
!=
null
)
...
...
@@ -90,6 +92,8 @@ public class LaunchThread extends Thread {
}
}
catch
(
Exception
e
)
{
throw
new
BuildException
(
"couldn't launch "
+
cmdString
(
cmd
),
e
);
}
finally
{
IoUtil
.
closeSilently
(
consoleStream
);
}
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSessionFactory.java
浏览文件 @
502e0add
...
...
@@ -132,9 +132,10 @@ public class DbSqlSessionFactory implements SessionFactory, ProcessEngineConfigu
}
protected
SqlSessionFactory
createSessionFactory
(
DataSource
dataSource
,
TransactionFactory
transactionFactory
)
{
InputStream
inputStream
=
null
;
try
{
InputStream
inputStream
=
ReflectUtil
.
getResourceAsStream
(
"org/activiti/db/ibatis/activiti.ibatis.mem.conf.xml"
);
inputStream
=
ReflectUtil
.
getResourceAsStream
(
"org/activiti/db/ibatis/activiti.ibatis.mem.conf.xml"
);
// update the jdbc parameters to the configured ones...
Environment
environment
=
new
Environment
(
"default"
,
transactionFactory
,
dataSource
);
...
...
@@ -149,6 +150,8 @@ public class DbSqlSessionFactory implements SessionFactory, ProcessEngineConfigu
}
catch
(
Exception
e
)
{
throw
new
ActivitiException
(
"Error while building ibatis SqlSessionFactory: "
+
e
.
getMessage
(),
e
);
}
finally
{
IoUtil
.
closeSilently
(
inputStream
);
}
}
...
...
@@ -257,10 +260,11 @@ public class DbSqlSessionFactory implements SessionFactory, ProcessEngineConfigu
public
static
void
executeSchemaResource
(
String
operation
,
String
databaseName
,
SqlSessionFactory
sqlSessionFactory
)
{
SqlSession
sqlSession
=
sqlSessionFactory
.
openSession
();
boolean
success
=
false
;
InputStream
inputStream
=
null
;
try
{
Connection
connection
=
sqlSession
.
getConnection
();
String
resource
=
"org/activiti/db/"
+
operation
+
"/activiti."
+
databaseName
+
"."
+
operation
+
".sql"
;
InputStream
inputStream
=
ReflectUtil
.
getResourceAsStream
(
resource
);
inputStream
=
ReflectUtil
.
getResourceAsStream
(
resource
);
if
(
inputStream
==
null
)
{
throw
new
ActivitiException
(
"resource '"
+
resource
+
"' is not available for creating the schema"
);
}
...
...
@@ -296,6 +300,7 @@ public class DbSqlSessionFactory implements SessionFactory, ProcessEngineConfigu
throw
new
ActivitiException
(
"couldn't create or drop db schema"
,
e
);
}
finally
{
IoUtil
.
closeSilently
(
inputStream
);
if
(
success
)
{
sqlSession
.
commit
(
true
);
}
else
{
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/test/ActivitiInternalTestCase.java
浏览文件 @
502e0add
...
...
@@ -38,6 +38,7 @@ import org.activiti.engine.impl.ProcessEngineImpl;
import
org.activiti.engine.impl.cfg.ProcessEngineConfiguration
;
import
org.activiti.engine.impl.jobexecutor.JobExecutor
;
import
org.activiti.engine.impl.util.ClockUtil
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.engine.impl.util.ReflectUtil
;
import
org.activiti.engine.impl.util.LogUtil.ThreadLogMode
;
import
org.activiti.engine.runtime.ProcessInstance
;
...
...
@@ -94,6 +95,8 @@ public class ActivitiInternalTestCase extends PvmTestCase {
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"couldn't instantiate process engine initializer "
+
properties
+
": "
+
e
,
e
);
}
finally
{
IoUtil
.
closeSilently
(
initializersInputStream
);
}
}
return
new
DefaultProcessEngineInitializer
();
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/util/IoUtil.java
浏览文件 @
502e0add
...
...
@@ -13,13 +13,16 @@
package
org.activiti.engine.impl.util
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
org.activiti.engine.ActivitiException
;
/**
* @author Tom Baeyens
* @author Frederik Heremans
*/
public
class
IoUtil
{
...
...
@@ -38,5 +41,31 @@ public class IoUtil {
return
outputStream
.
toByteArray
();
}
/**
* Closes the given stream. The same as calling {@link InputStream#close()}, but
* errors while closing are silently ignored.
*/
public
static
void
closeSilently
(
InputStream
inputStream
)
{
try
{
if
(
inputStream
!=
null
)
{
inputStream
.
close
();
}
}
catch
(
IOException
ignore
)
{
// Exception is silently ignored
}
}
/**
* Closes the given stream. The same as calling {@link OutputStream#close()}, but
* errors while closing are silently ignored.
*/
public
static
void
closeSilently
(
OutputStream
outputStream
)
{
try
{
if
(
outputStream
!=
null
)
{
outputStream
.
close
();
}
}
catch
(
IOException
ignore
)
{
// Exception is silently ignored
}
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/util/LogUtil.java
浏览文件 @
502e0add
...
...
@@ -51,8 +51,7 @@ public class LogUtil {
}
public
static
void
readJavaUtilLoggingConfigFromClasspath
()
{
ClassLoader
classLoader
=
Thread
.
currentThread
().
getContextClassLoader
();
InputStream
inputStream
=
classLoader
.
getResourceAsStream
(
"logging.properties"
);
InputStream
inputStream
=
ReflectUtil
.
getResourceAsStream
(
"logging.properties"
);
try
{
if
(
inputStream
!=
null
)
{
LogManager
.
getLogManager
().
readConfiguration
(
inputStream
);
...
...
@@ -61,11 +60,11 @@ public class LogUtil {
if
((
redirectCommons
!=
null
)
&&
(!
redirectCommons
.
equalsIgnoreCase
(
"false"
)))
{
System
.
setProperty
(
"org.apache.commons.logging.Log"
,
"org.apache.commons.logging.impl.Jdk14Logger"
);
}
inputStream
.
close
();
}
}
catch
(
Exception
e
)
{
throw
new
PvmException
(
"couldn't initialize logging properly"
,
e
);
}
finally
{
IoUtil
.
closeSilently
(
inputStream
);
}
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/SerializableType.java
浏览文件 @
502e0add
...
...
@@ -21,6 +21,7 @@ import java.io.Serializable;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.runtime.VariableInstanceEntity
;
import
org.activiti.engine.impl.util.IoUtil
;
/**
* @author Tom Baeyens
...
...
@@ -57,6 +58,8 @@ public class SerializableType extends ByteArrayType {
}
catch
(
Exception
e
)
{
throw
new
ActivitiException
(
"coudn't deserialize object in variable '"
+
valueFields
.
getName
()+
"'"
,
e
);
}
finally
{
IoUtil
.
closeSilently
(
bais
);
}
return
deserializedObject
;
}
...
...
@@ -72,11 +75,14 @@ public class SerializableType extends ByteArrayType {
return
null
;
}
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
ObjectOutputStream
ois
=
null
;
try
{
ObjectOutputStream
ois
=
new
ObjectOutputStream
(
baos
);
ois
=
new
ObjectOutputStream
(
baos
);
ois
.
writeObject
(
value
);
}
catch
(
Exception
e
)
{
throw
new
ActivitiException
(
"coudn't deserialize value '"
+
value
+
"' in variable '"
+
valueFields
.
getName
()+
"'"
,
e
);
}
finally
{
IoUtil
.
closeSilently
(
ois
);
}
return
baos
.
toByteArray
();
}
...
...
modules/activiti-spring/src/test/java/org/activiti/spring/test/SpringAutoDeployTest.java
浏览文件 @
502e0add
...
...
@@ -26,6 +26,7 @@ import java.util.List;
import
java.util.Set
;
import
org.activiti.engine.RepositoryService
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.engine.impl.test.PvmTestCase
;
import
org.activiti.engine.repository.Deployment
;
import
org.activiti.engine.repository.DeploymentQuery
;
...
...
@@ -120,9 +121,7 @@ public class SpringAutoDeployTest extends PvmTestCase {
inputStream
=
new
BufferedInputStream
(
new
FileInputStream
(
getFile
(
filePath
)));
inputStream
.
read
(
buffer
);
}
finally
{
if
(
inputStream
!=
null
)
{
inputStream
.
close
();
}
IoUtil
.
closeSilently
(
inputStream
);
}
return
new
String
(
buffer
);
}
...
...
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/cycle/ContentGet.java
浏览文件 @
502e0add
...
...
@@ -25,6 +25,7 @@ import org.activiti.cycle.CycleService;
import
org.activiti.cycle.RepositoryArtifact
;
import
org.activiti.cycle.impl.CycleServiceImpl
;
import
org.activiti.cycle.impl.transform.TransformationException
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.rest.util.ActivitiRequest
;
import
org.activiti.rest.util.ActivitiStreamingWebScript
;
import
org.springframework.extensions.webscripts.WebScriptResponse
;
...
...
@@ -85,15 +86,18 @@ public class ContentGet extends ActivitiStreamingWebScript {
}
}
InputStream
contentInputStream
=
null
;
try
{
streamResponse
(
res
,
this
.
cycleService
.
getContent
(
artifact
.
getConnectorId
(),
artifact
.
getNodeId
(),
contentRepresentation
.
getId
()).
asInputStream
()
,
new
Date
(
0
),
contentInputStream
=
this
.
cycleService
.
getContent
(
artifact
.
getConnectorId
(),
artifact
.
getNodeId
(),
contentRepresentation
.
getId
()).
asInputStream
();
streamResponse
(
res
,
contentInputStream
,
new
Date
(
0
),
// TODO: what is a good way to determine the etag? Using a fake one...
"W/\"647-1281077702000\""
,
attach
,
attachmentFileName
,
contentType
);
}
catch
(
TransformationException
e
)
{
streamResponse
(
res
,
new
ByteArrayInputStream
(
e
.
getRenderContent
().
getBytes
()),
new
Date
(
0
),
// TODO: what is a good way to determine the etag? Using a fake one...
"W/\"647-1281077702000\""
,
false
,
null
,
CycleDefaultMimeType
.
HTML
.
getContentType
());
}
finally
{
IoUtil
.
closeSilently
(
contentInputStream
);
}
...
...
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/process/ProcessDefinitionFormGet.java
浏览文件 @
502e0add
package
org.activiti.rest.api.process
;
import
org.activiti.rest.util.ActivitiRequest
;
import
org.activiti.rest.util.ActivitiStreamingWebScript
;
import
org.activiti.rest.util.ActivitiWebScript
;
import
org.springframework.extensions.webscripts.*
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.Date
;
import
java.util.Map
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.rest.util.ActivitiRequest
;
import
org.activiti.rest.util.ActivitiStreamingWebScript
;
import
org.springframework.extensions.webscripts.Status
;
import
org.springframework.extensions.webscripts.WebScriptException
;
import
org.springframework.extensions.webscripts.WebScriptResponse
;
/**
* Returns a process definition's form.
...
...
@@ -42,6 +43,8 @@ public class ProcessDefinitionFormGet extends ActivitiStreamingWebScript
streamResponse
(
res
,
is
,
new
Date
(
0
),
null
,
true
,
processDefinitionId
,
mimeType
);
}
catch
(
IOException
e
)
{
throw
new
WebScriptException
(
Status
.
STATUS_INTERNAL_SERVER_ERROR
,
"The form for process definition '"
+
processDefinitionId
+
"' failed to render."
);
}
finally
{
IoUtil
.
closeSilently
(
is
);
}
}
else
if
(
form
!=
null
)
{
...
...
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/repository/DeploymentResourceGet.java
浏览文件 @
502e0add
...
...
@@ -13,6 +13,7 @@
package
org.activiti.rest.api.repository
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.rest.util.ActivitiRequest
;
import
org.activiti.rest.util.ActivitiStreamingWebScript
;
import
org.springframework.extensions.webscripts.*
;
...
...
@@ -39,6 +40,8 @@ public class DeploymentResourceGet extends ActivitiStreamingWebScript {
streamResponse
(
res
,
resource
,
new
Date
(
0
),
null
,
true
,
resourceName
,
getMimeType
(
resource
));
}
catch
(
IOException
e
)
{
throw
new
WebScriptException
(
Status
.
STATUS_INTERNAL_SERVER_ERROR
,
"The resource with name '"
+
resourceName
+
"' for deployment with id '"
+
deploymentId
+
"' could not be streamed: "
+
e
.
getMessage
());
}
finally
{
IoUtil
.
closeSilently
(
resource
);
}
}
else
{
...
...
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/api/task/TaskFormGet.java
浏览文件 @
502e0add
package
org.activiti.rest.api.task
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.Date
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.rest.util.ActivitiRequest
;
import
org.activiti.rest.util.ActivitiStreamingWebScript
;
import
org.activiti.rest.util.ActivitiWebScript
;
import
org.springframework.extensions.webscripts.Cache
;
import
org.springframework.extensions.webscripts.Status
;
import
org.springframework.extensions.webscripts.WebScriptException
;
import
org.springframework.extensions.webscripts.WebScriptResponse
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.Date
;
import
java.util.Map
;
/**
* Returns a task's form.
*
...
...
@@ -45,6 +43,8 @@ public class TaskFormGet extends ActivitiStreamingWebScript
streamResponse
(
res
,
is
,
new
Date
(
0
),
null
,
true
,
taskId
,
mimeType
);
}
catch
(
IOException
e
)
{
throw
new
WebScriptException
(
Status
.
STATUS_INTERNAL_SERVER_ERROR
,
"The form for task '"
+
taskId
+
"' failed to render."
);
}
finally
{
IoUtil
.
closeSilently
(
is
);
}
}
else
if
(
form
!=
null
){
...
...
modules/activiti-webapp-rest/src/main/java/org/activiti/rest/util/ActivitiStreamingWebScript.java
浏览文件 @
502e0add
...
...
@@ -12,21 +12,26 @@
*/
package
org.activiti.rest.util
;
import
eu.medsea.mimeutil.MimeType
;
import
eu.medsea.mimeutil.MimeUtil
;
import
org.activiti.engine.*
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.SocketException
;
import
java.util.Date
;
import
org.activiti.engine.FormService
;
import
org.activiti.engine.IdentityService
;
import
org.activiti.engine.ManagementService
;
import
org.activiti.engine.ProcessEngine
;
import
org.activiti.engine.ProcessEngineInfo
;
import
org.activiti.engine.ProcessEngines
;
import
org.activiti.engine.RepositoryService
;
import
org.activiti.engine.RuntimeService
;
import
org.activiti.engine.TaskService
;
import
org.activiti.rest.Config
;
import
org.springframework.extensions.webscripts.AbstractWebScript
;
import
org.springframework.extensions.webscripts.Cache
;
import
org.springframework.extensions.webscripts.WebScriptRequest
;
import
org.springframework.extensions.webscripts.WebScriptResponse
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.SocketException
;
import
java.util.Collection
;
import
java.util.Date
;
/**
* Helper class that wrapps the webscript request to perform methods upon it.
*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录