Giter Club home page Giter Club logo

esb-connector-file's Introduction

File EI Connector

The File Connector allows you to connect to different file systems and perform various operations with the file systems. The file connector uses the apache commons VFS I/O functionalities to execute operations.

Compatibility

Connector version Supported WSO2 ESB/EI version
4.0.0 EI 7.1.0
3.0.3 EI 6.5.0, EI 6.4.0, EI 6.6.0, EI 7.0.x
3.0.2 EI 6.5.0, EI 6.4.0, EI 6.6.0, EI 7.0.x
3.0.1 EI 6.5.0, EI 6.4.0, EI 6.6.0, EI 7.0.x
3.0.0 EI 6.5.0, EI 6.4.0, EI 6.6.0, EI 7.0.x
2.0.23 EI 6.5.0, EI 6.4.0, EI 6.6.0, EI 7.0.x
2.0.22 EI 6.5.0, EI 6.4.0, EI 6.6.0, EI 7.0.x
2.0.21 EI 6.5.0, EI 6.4.0
2.0.20 EI 6.5.0, EI 6.4.0
2.0.19 EI 6.5.0, EI 6.4.0
2.0.18 EI 6.5.0, EI 6.4.0
2.0.17 EI 6.5.0, EI 6.4.0
2.0.16 EI 6.5.0, EI 6.4.0
2.0.15 EI 6.5.0, EI 6.4.0
2.0.14 EI 6.5.0, EI 6.4.0
2.0.13 EI 6.4.0, EI 6.1.1, ESB 5.0.0
2.0.12 EI 6.4.0, EI 6.1.1, ESB 5.0.0
2.0.11 EI 6.1.1, ESB 5.0.0
2.0.10 EI 6.1.1, ESB 5.0.0, ESB 4.9.0
2.0.9 EI 6.3.0, ESB 6.2.1
2.0.8 ESB 6.2.1,ESB 6.1.1
2.0.7 ESB 6.1.1,ESB 5.0.0
2.0.6 ESB 5.0.0, ESB 4.9.0
2.0.5 ESB 5.0.0, ESB 4.9.0,ESB 4.8.1
2.0.4 ESB 4.9.0,ESB 4.8.1
2.0.3 ESB 4.9.0,ESB 4.8.1
2.0.2 ESB 4.9.0,ESB 4.8.1
2.0.1 ESB 4.9.0, ESB 4.8.1
2.0.0 ESB 4.8.1
1.0.0 ESB 4.8.1

Documentation

Please refer to documentation here.

Building from the source

Follow the steps given below to build the File connector from the source code.

  1. Get a clone or download the source from Github.
  2. Run the following Maven command from the esb-connector-file directory: mvn clean install.
  3. The ZIP file with the File connector is created in the esb-connector-file/target directory.

How you can contribute

As an open source project, WSO2 extensions welcome contributions from the community. Check the issue tracker for open issues that interest you. We look forward to receiving your contributions.

esb-connector-file's People

Contributors

abeykoon avatar ayodhyamanewa avatar biruntha avatar chanikag avatar dakshika avatar dinuish94 avatar dulanjalidilmi avatar gdlmadushanka avatar hariss63 avatar kanapriya avatar keerthu avatar keets avatar kesavany avatar maheshika avatar malakaganga avatar malakasilva avatar mbouchar avatar nirothipan avatar nirthika avatar praveennadarajah avatar rosensilva avatar sachithkay avatar sajiniekavindya avatar samgnaniah avatar sanojpunchihewa avatar shakila avatar sybernix avatar tharinduwijewardane avatar vives avatar yashothara avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esb-connector-file's Issues

Writing Binary Files Adds Base64 Encoded Input at the End of File

Description:
If the incoming binary file content sent as base64 encoded string that is created with file write operation, the encoded string is seen at the end of the file.

Steps to reproduce:
<file.init>
lfc
LOCAL
/root
Cluster
</file.init>
<file.write>
lfc
/sub-folder/test.pdf
{$ctx:fileContent}
Overwrite
Automatic
UTF-8
</file.write>

[Doc] [3.0.0] Update file connector copy operation

Description:
With file connector 3.0.0 release, 2 new parameters are introduced for copy operation

If the user wants to use private key for SFTP connection following 2 parameters can be used.
sftpIdentities - Location of the private key
sftpIdentityPassphrase - Passphrase of the private key
Eg :
<sftpIdentities>File path of the private key</sftpIdentities> <sftpIdentityPassphrase>passphrase of the private key</sftpIdentityPassphrase>

Related Issues:
wso2/product-ei#5174

WSO2 EI7 Error connector after redeploying CAR

Description:
When second API call is made, connector fails at initialising phase. Exception is not visible.

Affected Product Version:

EI 7.1.x
MI 1.2.x

Steps to reproduce:

  1. Make a working scenario using File connector.
    
  2. Burn the logic into a CAR application, and create a simple createDirectory process.
    
  3. As per the code, init will be done at the first message only. For other messages it will not get called.
    
  4. Redeploy the same CApp.
    
  5. When doing the same invoke and create a new directory again, the console show the next errror
    

Caused by: java.lang.ClassCastException: org.wso2.carbon.connector.connection.FileSystemHandler cannot be cast to org.wso2.carbon.connector.connection.FileSystemHandler

Issue.log

Cannot read csv files

Description:
When file connector is configured to read CSV files using contentType = text/csv, it returns the binary payload. When the contentType changed to text/plain it returns the CSV content.

Suggested Labels:

Suggested Assignees:

Affected Product Version:
File Connector 2.0.21

OS, DB, other environment details and versions:

Steps to reproduce:
Related Issues:

Fileconnector.copy is extremely inefficient in large folder structures

Description:
Fileconnector.copy is extremely inefficinent when a file shall be copied from the top of a large folder structure.
When only one file shall be copied, but this file sits on the top or a large folder structure (ie c:) the whole folder structure and each file is being processed. Also for each subfolder of the source the destination file handle is resolved. When transfering a local file to an FTP server this leads to a great many of connections being opened without need.
Reproduction steps:

  • install a local filezilla fileserver
  • create a proxy copying one file from a large filesystem or folder root (ie. c:, ~) to the ftp server:
    <fileconnector.copy> <source>c:/</source> <filePattern>test\.xml</filePattern> <destination>ftp://tester:tester@localhost:21</destination> </fileconnector.copy>
  • open filezilla server console to see the connections being opened

possible solution:

  • do not resolve destination file unless the file matches the file pattern
  • add a parameter allowing to define wheter fileconnector.copy shall recourse into directories or not

Suggested Labels:
improvement, efficiency

Suggested Assignees:

Affected Product Version:
fileconnector-2.0.13 on EI 6.4

OS, DB, other environment details and versions:
Windows, but should also be the same on other OSes

Steps to reproduce:
see above

Related Issues:

Add property to ignore setting last modified timestamp

Description:
In certain scenarios such as windows (sftp), there are cases where setting the last modified timestamp leads to errors. Therefore. needs to way to stop setting this timestamp when needed.

Example:

true

Suggested Labels:

Suggested Assignees:

Affected Product Version:

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

Cannot copy file on same SFTP Server (Fileconnector 2.0.21)

Description:
Try to copy files from one folder on SFTP server to another folder on the same SFTP server fails.

Steps to reproduce:

<fileconnector.copy>
  <source>{$ctx:sourcePath}</source>
  <destination>{$ctx:destinationPath}</destination>
  <filePattern>{$ctx:fileRegex}</filePattern>
</fileconnector.copy>
  • sourcePath and destinationPath are on the same SFTP server, but different folders
    Executing the above code leads to the following stack trace:
[2020-07-29 12:25:31,107] [-1234] [] [PassThroughMessageProcessor-61] ERROR {org.wso2.carbon.connector.FileCopy} -  Error occurred while copying a file. Could not copy "sftp://user:***@ftp-secure.example.com/from/20200729-110700.zip" to "sftp://user:***@ftp-secure.example.com/_archive/20200729-110700.zip".
org.apache.commons.vfs2.FileSystemException: Could not copy "sftp://user:***@ftp-secure.example.com/from/uic-counter/20200729-110700.zip" to "sftp://user:***@ftp-secure.example.com/_archive/20200729-110700.zip".
	at org.apache.commons.vfs2.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:294)
	at org.wso2.carbon.connector.FileCopy.copy(FileCopy.java:196)
	at org.wso2.carbon.connector.FileCopy.copyFile(FileCopy.java:117)
	at org.wso2.carbon.connector.FileCopy.connect(FileCopy.java:59)
	at org.wso2.carbon.connector.core.AbstractConnector.mediate(AbstractConnector.java:32)
	at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:94)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
	at org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:104)
	at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:148)
	at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:84)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
	at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
	at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
	at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
	at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
	at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:224)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
	at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:443)
	at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:179)
	at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.commons.vfs2.FileSystemException: Could not connect to SFTP server at "sftp://user:***@ftp-secure.example.com/".
	at org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getChannel(SftpFileSystem.java:127)
	at org.apache.commons.vfs2.provider.sftp.SftpFileObject.doGetInputStream(SftpFileObject.java:469)
	at org.apache.commons.vfs2.provider.AbstractFileObject.getInputStream(AbstractFileObject.java:1119)
	at org.apache.commons.vfs2.provider.DefaultFileContent.getInputStream(DefaultFileContent.java:349)
	at org.apache.commons.vfs2.provider.DefaultFileContent.write(DefaultFileContent.java:734)
	at org.apache.commons.vfs2.provider.DefaultFileContent.write(DefaultFileContent.java:720)
	at org.apache.commons.vfs2.provider.DefaultFileContent.write(DefaultFileContent.java:691)
	at org.apache.commons.vfs2.provider.DefaultFileContent.write(DefaultFileContent.java:707)
	at org.apache.commons.vfs2.FileUtil.copyContent(FileUtil.java:78)
	at org.apache.commons.vfs2.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:289)
	... 27 more
Caused by: com.jcraft.jsch.JSchException: channel is not opened.
	at com.jcraft.jsch.Channel.sendChannelOpen(Channel.java:768)
	at com.jcraft.jsch.Channel.connect(Channel.java:151)
	at com.jcraft.jsch.Channel.connect(Channel.java:145)
	at org.apache.commons.vfs2.provider.sftp.SftpFileSystem.getChannel(SftpFileSystem.java:101)
	... 36 more
  • using another filesystem (FTP, FILE) as target does not show the problem
  • found on WSO2 EI 6.4.0 WUM level 1585759234543

Retry feature for file connector mediator

Description:
Requesting a retry feature for file connector mediator(inside integration studio) as what is available in Inbound Endpoint (retry on failure)

Affected Product Version: 6.6.0

Steps to reproduce: No retry feature for the file connector mediator

support for control encoding

Description:

please, add support for possibility to set control encoding for ftpClient (for method isFileExist and etc).
See info - https://issues.apache.org/jira/browse/VFS-302 -i.e. set optional call for client.setControlEncoding("utf-8") before client.createConnection()

This support is useful for situation when the file pathes in ftp server are not ascii (for example - consist cyrillic and other symbols)

Suggested Labels:

Suggested Assignees:

Affected Product Version:

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

[Improvement] Unable to use relative paths to access files

Description:
It's convenient for the user if files can be accessed by providing relative paths as well

Suggested Labels:

Suggested Assignees:

Affected Product Version:

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

Improvements for file connector 4.x series

Description:

Could you please check the possibility of implementing following features at File connector 4.x series.

1 Two sftpIdentities parameters can configure for both Source and Destination in file connector 3.0.4 and 3.0.5 for following operations. Its better if we can support this feature from file connector 4.x series also.

filecopy
filemove
splitFile
fileunzip
filearchievs
mergeFiles
  1. Provide Secure vault support for file connector 4.x series

Affected Product Version:
File connector 4.x

Support reading the compressed file

Description:
I'm having trouble trying to read a compressed file without decompressing it.
When I configure the file path tar:gz:file://C:/tmp/output.tar.gz!/output.tar!/output/confusion_matrix.json, the File Connector always adds the file:// prefix to my file path and this is what causes the problem

Caused by: org.apache.commons.vfs2.FileSystemException: Share name missing from UNC file name "file://tar:gz:file://C:/tmp/output.tar.gz!/output.tar!/output/confusion_matrix.json".
	at org.apache.commons.vfs2.provider.local.WindowsFileNameParser.extractUNCPrefix(WindowsFileNameParser.java:124) ~[commons-vfs2_2.2.0.wso2v9.jar:?]
	at org.apache.commons.vfs2.provider.local.WindowsFileNameParser.extractWindowsRootPrefix(WindowsFileNameParser.java:71) ~[commons-vfs2_2.2.0.wso2v9.jar:?]
	at org.apache.commons.vfs2.provider.local.WindowsFileNameParser.extractRootPrefix(WindowsFileNameParser.java:32) ~[commons-vfs2_2.2.0.wso2v9.jar:?]
	at org.apache.commons.vfs2.provider.local.LocalFileNameParser.parseUri(LocalFileNameParser.java:75) ~[commons-vfs2_2.2.0.wso2v9.jar:?]
	at org.apache.commons.vfs2.provider.AbstractFileProvider.parseUri(AbstractFileProvider.java:179) ~[commons-vfs2_2.2.0.wso2v9.jar:?]
	at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:75) ~[commons-vfs2_2.2.0.wso2v9.jar:?]
	... 35 more

It will work if don't append the file:// prefix to the File/Directory Path: configuration.
Because this feature is already supported by the Apache VFS, I think it should be enhanced in the next release.

Suggested Labels:
Improvement

Affected Product Version:
v4.0.8

Steps to reproduce:
Set the File/Directory Path: configuration in the following format: tar:gz:// arch-file-uri[! absolute-path]

Ex: tar:gz:file://C:/tmp/output.tar.gz!/output.tar!/output/confusion_matrix.json

Absolute Paths Not Working With Sftp

Description:
File writes are not available from the Root directory. Even tho if we provide the absolute path, the user's home directory is being used as the root directory and it is attempting to create a folder with the name (C:/). We also tried the <userDirIsRoot>false</userDirIsRoot> and still, we observed the same behaviour.

Suggested Labels:

Suggested Assignees:

Affected Product Version:

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

Update file connector sftpIdentities parameter and Passphrase parameter

Description:
As per the current wso2 file connector implementation, it is only supported for one sftpIdentities parameter and sftpIdentityPassphrase to specify the location of the private key and Passphrase of the private key for either source or the destination.
It is required to improve the file connector to specify the location of the private key and Passphrase for both the source server and the destination server.

Related Issues:
#123

Drive letter not present when searching on windows machines

Description:
When searching for files on a windows machine the drive letter is not contained in the search results

Suggested Labels:

Suggested Assignees:

Affected Product Version:
2.0.10, 2.0.12

OS, DB, other environment details and versions:
WSO2EI 6.2.0, Windows 10, Java 8_131

Steps to reproduce:

  • search for files on windows ie:
<fileconnector.search>
  <source>c:/temp</source>
  <filePattern>.*\.zip</filePattern>
  <recursiveSearch>false</recursiveSearch>
  <setUserDirIsRoot>false</setUserDirIsRoot>
</fileconnector.search>
  • the search returns the following:
<ns:result xmlns:ns="http://org.wso2.esbconnectors.FileConnector">
  <ns:file>/temp/file1.zip</ns:file>
  <ns:file>/temp/file2.zip</ns:file>
  <ns:file>/temp/file3.zip</ns:file>
</ns:result>
  • as one can see the drive letter is missing in the results

Related Issues:

Fix fileconnector.readSpecifiedLines not working issue

Description:
Currently, fileconnector.readSpecifiedLines function is not working properly. The reason for this issue is readSpecifiedLines.xml file uses start and end variable to devide lines. But when it comes to ReadSpecifiedLines.java file, it uses from and to variable values. That is why current function always gives whole content of the specified file.

Goals:
Fix fileconnector.readSpecifiedLines not working issue

Approach:
Add new constant variabless to FileConstants.java file and update ReadSpecifiedLines.java according to new constant variables.

Print an incorrect source file path DEBUG log at read operation in file connector 4.0.5

Description:
After enabling the debug log for file connector 4.0.5(org.wso2.carbon.connector.operations), source file name is getting duplicated at the following log line.

[2021-07-26 15:43:59,527] DEBUG {org.wso2.carbon.connector.operations.ReadFile} - FileConnector:read - preparing to read file content file:///opt/wso2/Desktop/test.txt/test.txt of Content-type :

Please note that, this debug log is not affecting to the functiinality of the file connector read operation.

Suggested Labels:
File connector 4.0.5

Installing file connector Version >=4.0.0 fails for WSO2 ESB 6.6.0

Description:
Installing file connector Version >=4.0.0 fails for WSO2 ESB 6.6.0
Only < 4.0.0 works but I need the SFTP functions, so I need version >=4.0.0

Affected Product Version:
File connector version >= 4.0.0 and WSO2 ESB 6.6.0

OS, DB, other environment details and versions:
Ubuntu Server - 4.1.12-124.37.1.el7uek.x86_64 #2 SMP

Steps to reproduce:
Installing File Connector with usual procedure from WSO2 web application (add new connector, choose the zipfile, then Activate)

TID: [-1234] [] [2021-06-14 15:06:47,290] INFO {org.apache.synapse.config.xml.SynapseImportFactory} - Successfully created Synapse Import: file
TID: [-1234] [] [2021-06-14 15:06:47,634] ERROR {org.apache.synapse.config.xml.ClassMediatorFactory} - Error in instantiating class : org.wso2.carbon.connector.operations.FileConfig java.lang.NoClassDefFoundError: org/wso2/carbon/connector/core/connection/Connection
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.apache.synapse.config.xml.ClassMediatorFactory.createSpecificMediator(ClassMediatorFactory.java:110)
at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:96)
at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
at org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:46)
at org.apache.synapse.config.xml.TemplateMediatorFactory.createSpecificMediator(TemplateMediatorFactory.java:62)
at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:96)
at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
at org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:191)
at org.apache.synapse.libraries.model.LibraryArtifact.loadComponentsInto(LibraryArtifact.java:100)
at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:144)
at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:129)
at org.apache.synapse.libraries.util.LibDeployerUtils.loadLibArtifacts(LibDeployerUtils.java:340)
at org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.addImport(MediationLibraryAdminService.java:100)
at org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.addImport(MediationLibraryAdminService.java:126)
at org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.updateStatus(MediationLibraryAdminService.java:442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:170)
at org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:82)
at org.wso2.carbon.core.transports.local.CarbonLocalTransportSender.finalizeSendWithToAddress(CarbonLocalTransportSender.java:45)
at org.apache.axis2.transport.local.LocalTransportSender.invoke(LocalTransportSender.java:77)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
at org.wso2.carbon.mediation.library.stub.MediationLibraryAdminServiceStub.updateStatus(MediationLibraryAdminServiceStub.java:559)
at org.wso2.carbon.mediation.library.ui.LibraryAdminClient.updateStatus(LibraryAdminClient.java:114)
at org.apache.jsp.mediation_005flibrary.import_005flib_jsp._jspService(import_005flib_jsp.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:207)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:580)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:516)
at org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:37)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.include(ContextPathServletAdaptor.java:369)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:900)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:496)
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tiles.jsp.context.JspUtil.doInclude(JspUtil.java:87)
at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:88)
at org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:82)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:465)
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:140)
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:117)
at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
at org.apache.jsp.admin.layout.template_jsp._jspx_meth_tiles_005finsertAttribute_005f7(template_jsp.java:780)
at org.apache.jsp.admin.layout.template_jsp._jspService(template_jsp.java:443)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:207)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:30)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.forward(ContextPathServletAdaptor.java:362)
at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198)
at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:185)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:419)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:370)
at org.wso2.carbon.ui.action.ActionHelper.render(ActionHelper.java:52)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:101)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.ui.filters.cache.URLBasedCachePreventionFilter.doFilter(URLBasedCachePreventionFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:146)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: Class Not found : org.wso2.carbon.connector.core.connection.Connection
at org.apache.axis2.deployment.DeploymentClassLoader.findClass(DeploymentClassLoader.java:95)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at org.apache.axis2.deployment.DeploymentClassLoader.loadClass(DeploymentClassLoader.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
... 160 more

TID: [-1234] [] [2021-06-14 15:06:47,639] ERROR {org.wso2.carbon.mediation.library.service.MediationLibraryAdminService} - Unable to update status for : {org.wso2.carbon.connector}file :: Template configuration : null cannot be builtfor Synapse Library artifact : init org.apache.synapse.deployers.SynapseArtifactDeploymentException: Template configuration : null cannot be builtfor Synapse Library artifact : init
at org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:196)
at org.apache.synapse.libraries.model.LibraryArtifact.loadComponentsInto(LibraryArtifact.java:100)
at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:144)
at org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:129)
at org.apache.synapse.libraries.util.LibDeployerUtils.loadLibArtifacts(LibDeployerUtils.java:340)
at org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.addImport(MediationLibraryAdminService.java:100)
at org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.addImport(MediationLibraryAdminService.java:126)
at org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.updateStatus(MediationLibraryAdminService.java:442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:170)
at org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:82)
at org.wso2.carbon.core.transports.local.CarbonLocalTransportSender.finalizeSendWithToAddress(CarbonLocalTransportSender.java:45)
at org.apache.axis2.transport.local.LocalTransportSender.invoke(LocalTransportSender.java:77)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
at org.wso2.carbon.mediation.library.stub.MediationLibraryAdminServiceStub.updateStatus(MediationLibraryAdminServiceStub.java:559)
at org.wso2.carbon.mediation.library.ui.LibraryAdminClient.updateStatus(LibraryAdminClient.java:114)
at org.apache.jsp.mediation_005flibrary.import_005flib_jsp._jspService(import_005flib_jsp.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:207)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:580)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:516)
at org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:37)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.include(ContextPathServletAdaptor.java:369)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:900)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:496)
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tiles.jsp.context.JspUtil.doInclude(JspUtil.java:87)
at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:88)
at org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:82)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:465)
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:140)
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:117)
at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
at org.apache.jsp.admin.layout.template_jsp._jspx_meth_tiles_005finsertAttribute_005f7(template_jsp.java:780)
at org.apache.jsp.admin.layout.template_jsp._jspService(template_jsp.java:443)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:207)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:30)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.forward(ContextPathServletAdaptor.java:362)
at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198)
at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:185)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:419)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:370)
at org.wso2.carbon.ui.action.ActionHelper.render(ActionHelper.java:52)
at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:101)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.ui.filters.cache.URLBasedCachePreventionFilter.doFilter(URLBasedCachePreventionFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:146)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.synapse.SynapseException: Error in instantiating class : org.wso2.carbon.connector.operations.FileConfig
at org.apache.synapse.config.xml.ClassMediatorFactory.createSpecificMediator(ClassMediatorFactory.java:114)
at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:96)
at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
at org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:46)
at org.apache.synapse.config.xml.TemplateMediatorFactory.createSpecificMediator(TemplateMediatorFactory.java:62)
at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:96)
at org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
at org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:191)
... 148 more
Caused by: java.lang.NoClassDefFoundError: org/wso2/carbon/connector/core/connection/Connection
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.apache.synapse.config.xml.ClassMediatorFactory.createSpecificMediator(ClassMediatorFactory.java:110)
... 155 more
Caused by: java.lang.ClassNotFoundException: Class Not found : org.wso2.carbon.connector.core.connection.Connection
at org.apache.axis2.deployment.DeploymentClassLoader.findClass(DeploymentClassLoader.java:95)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at org.apache.axis2.deployment.DeploymentClassLoader.loadClass(DeploymentClassLoader.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
... 160 more

File Connector Connection Handling Improvement

Description:

As per the current File connector implementation (4.X.X), the connections are not getting closed even after a long period of idle time. Also, connection pooling doesn't seem to work as expected. This raises an issue where, when we use a private key and Passphrase for the connection mechanism, and if a change has been made to either of those, the change will not take effect until the current connections are closed and a new connection is made. Since the active connections are not getting closed after an idle time, the change won't be effective. Hence, this needs to be addressed.

Affected Product Version:

FileConnector-4.X.X

java.lang.ClassCastException when using File Connector Read operation before Call mediator

Description:
When using the file connector's file:read operation to read a file and when sending that content to a backend using a call mediator, the below exception is thrown.

[2022-04-15 12:36:34,822] ERROR {TargetHandler} - Unexpected error: java.lang.Boolean cannot be cast to java.lang.String java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
	at org.apache.synapse.transport.passthru.util.TargetRequestFactory.getContentType(TargetRequestFactory.java:206)
	at org.apache.synapse.transport.passthru.util.TargetRequestFactory.create(TargetRequestFactory.java:114)
	at org.apache.synapse.transport.passthru.DeliveryAgent.submitRequest(DeliveryAgent.java:324)
	at org.apache.synapse.transport.passthru.DeliveryAgent.tryNextMessage(DeliveryAgent.java:305)
	at org.apache.synapse.transport.passthru.DeliveryAgent.connected(DeliveryAgent.java:262)
	at org.apache.synapse.transport.passthru.TargetHandler.connected(TargetHandler.java:153)
	at org.apache.synapse.transport.passthru.ClientIODispatch.onConnected(ClientIODispatch.java:65)
	at org.apache.synapse.transport.passthru.ClientIODispatch.onConnected(ClientIODispatch.java:41)
	at org.apache.http.impl.nio.reactor.AbstractIODispatch.connected(AbstractIODispatch.java:73)
	at org.apache.http.impl.nio.reactor.BaseIOReactor.sessionCreated(BaseIOReactor.java:246)
	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processNewChannels(AbstractIOReactor.java:429)
	at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:287)
	at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)
	at java.lang.Thread.run(Thread.java:748)

Suggested Labels:

Suggested Assignees:

Affected Product Version:
MI-4.0.0
File-connector-4.0.8

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

Fileconnector.copy copies files in folder including subfolders.

Description:
When using the Fileconnector.copy mediator, I have noticed that it copies both files within a specified directory that is in $source as well as all files within the subdirectories of the $source when the filepattern is specified.

Suggested Labels:
wso2,fileconnector,copy

Suggested Assignees:
None

Affected Product Version:
WSO2 EI 6.4, WSO2 EI 6.5, File Connector 2.0.1.6
OS, DB, other environment details and versions:

Steps to reproduce:
Place a file(123-321.xml) within a folder(input) that has subfolders(input/folder) containing the same file name and specify a file pattern(123-.*.xml). All files that matches the same file pattern will be pulled into your $destination folder.

Related Issues:
None

Feature Request: fileconnector.rename

Description:
Bring back possibility to rename file in place (without downloading and reuploading).
The rename function should happen in an atomic fashion, so that processes watching a folder would not begin to work on "half" renamed files.

Suggested Labels:
feature request, extension, bring back old functions

Suggested Assignees:

Affected Product Version:
2.0.13

OS, DB, other environment details and versions:
Any

Steps to reproduce:

Related Issues:

[v4.x.x] file.splitFile operation does not work as expected for larger files on SFTP server

Description:
The file connector split operation does not work with larger files when using it on the SFTP server. This scenario works fine with small data files(CSV). For larger files, we can see only a few files getting exported to the destination.

When this issue is occurring, there are no exceptions being thrown, but the thread hangs at the bufferedWriter flush method [1].
After taking the thread dump of the application, we found both the threads (t1, which sends the data to remote sftp & t2, which receives data from sftp) are in wait state forever. Below is the thread dump snapshot.

JSch session thread:

"Connect thread ftp.support.wso2.com session" #153 daemon prio=5 os_prio=31 tid=0x00007fc5073ed800 nid=0x570f in Object.wait() [0x0000700006f18000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.io.PipedInputStream.awaitSpace(PipedInputStream.java:273)
	at java.io.PipedInputStream.receive(PipedInputStream.java:231)
	- locked <0x00000007b6d4b978> (a com.jcraft.jsch.Channel$MyPipedInputStream)
	at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
	at com.jcraft.jsch.IO.put(IO.java:64)
	at com.jcraft.jsch.Channel.write(Channel.java:438)
	at com.jcraft.jsch.Session.run(Session.java:1459)
	at java.lang.Thread.run(Thread.java:748)

Application thread used to upload file data:

"PassThroughMessageProcessor-1" #150 prio=5 os_prio=31 tid=0x00007fc4fa922000 nid=0x5c07 in Object.wait() [0x0000700006d11000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.io.PipedInputStream.read(PipedInputStream.java:326)
	- locked <0x00000007b6f5aa50> (a com.jcraft.jsch.Channel$MyPipedInputStream)
	at java.io.PipedInputStream.read(PipedInputStream.java:377)
	- locked <0x00000007b6f5aa50> (a com.jcraft.jsch.Channel$MyPipedInputStream)
	at com.jcraft.jsch.ChannelSftp.fill(ChannelSftp.java:2909)
	at com.jcraft.jsch.ChannelSftp.header(ChannelSftp.java:2935)
	at com.jcraft.jsch.ChannelSftp.checkStatus(ChannelSftp.java:2473)
	at com.jcraft.jsch.ChannelSftp.access$300(ChannelSftp.java:36)
	at com.jcraft.jsch.ChannelSftp$1.flush(ChannelSftp.java:851)
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:141)
	- locked <0x00000007b778c948> (a org.apache.commons.vfs2.provider.sftp.SftpFileObject$SftpOutputStream)
	at org.apache.commons.vfs2.util.MonitorOutputStream.flush(MonitorOutputStream.java:114)
	- locked <0x00000007b778c948> (a org.apache.commons.vfs2.provider.sftp.SftpFileObject$SftpOutputStream)
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:141)
	- locked <0x00000007b778f698> (a org.apache.commons.vfs2.provider.DefaultFileContent$FileContentOutputStream)
	at org.apache.commons.vfs2.util.MonitorOutputStream.flush(MonitorOutputStream.java:114)
	- locked <0x00000007b778f698> (a org.apache.commons.vfs2.provider.DefaultFileContent$FileContentOutputStream)
	at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297)
	at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
	- locked <0x00000007b778c6a0> (a java.io.OutputStreamWriter)
	at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
	at java.io.BufferedWriter.flush(BufferedWriter.java:254)
	- locked <0x00000007b778c6a0> (a java.io.OutputStreamWriter)
	at org.wso2.carbon.connector.operations.SplitFile.splitByLines(SplitFile.java:269)
	at org.wso2.carbon.connector.operations.SplitFile.connect(SplitFile.java:158)

As per the thread dump, we concluded that this issue lies in the third-party dependency (com.jcraft:jsch:0.1.55), which we use to securely interact with an SFTP server. Also, we were able to find this exact issue has been already reported [2]. The fix suggested in [3] would help to resolve this issue.

[1] -


[2] - is/jsch#38
[3] - https://github.com/jlentini/SftpCopyDeadlock

Affected version: v4.x.x

Unable to download file using FTPS connection

Description:
File not copying from the FTP server using FTPS connection and gives below error

ERROR {org.wso2.carbon.connector.FileCopy} - Error occurred while copying a file. Could not copy "ftps://tester:**@localhost:990/testFolder/test.xml?vfs.protection=P&vfs.ssl.keystore=c:/dev/wso2/security/my-ftp-secure.jks&vfs.ssl.truststore=c:/dev/wso2/security/my-ftp-secure.jks&vfs.ssl.kspassword=changeit&vfs.ssl.keypassword=changeit&vfs.ssl.tspassword=changeit&vfs.passive=true" because it does not exist.org.apache.commons.vfs2.FileSystemException: Could not copy "ftps://ftpuser:ftpuser@localhost/privatelink/asd/?vfs.protection=P&amp;vfs.ssl.keystore=D:\wso2ei-6.4.0\repository\resources\security\wso2carbon.jks&amp;vfs.ssl.truststore=D:\wso2ei-6.4.0\repository\resources\security\client-truststore.jks&amp;vfs.ssl.kspassword=wso2carbon&amp;vfs.ssl.tspassword=wso2carbon&amp;vfs.ssl.keypassword=wso2carbon&amp;vfs.passive=true" because it does not exist. at org.apache.commons.vfs2.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:265) at org.wso2.carbon.connector.FileCopy.copy(FileCopy.java:193) at org.wso2.carbon.connector.FileCopy.copyFile(FileCopy.java:117)

Steps to reproduce:
Follow the steps provided in [1]

[1] https://medium.com/@t.d.k.malan/filezilla-wso2-ei-ftps-secure-file-transfer-using-file-connector-f7e60d058a45

Update file connector document to version 2.0.22

Description:
With file connector 2.0.22, in file create operation parameter source has changed to filePath.

Suggested Labels:

Suggested Assignees:

Affected Product Version:

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

File connector cannot access ftps locations

Description:
File connector cannot access sources or destinations through ftps protocol by specifying key store details as url parameters.
The issue occurs when using the file connector with WUM updated EI versions.

Steps to reproduce:
Use the latest file connector (version 2.0.12) with a WUM updated EI 6.4.0 pack.
Add the following proxy and invoke it.

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="file_search"
       transports="http https"
       startOnLoad="true">
   <description/>
   <target>
      <inSequence>
         <property name="props.ftp_connection_data_folder_url"
                   value="ftps://user2:[email protected]:21/in?vfs.protection=P&amp;vfs.passive=true&amp;vfs.ssl.keystore=repository/resources/security/wso2carbon.jks&amp;vfs.ssl.truststore=repository/resources/security/client-truststore.jks&amp;vfs.ssl.kspassword=wso2carbon&amp;vfs.ssl.keypassword=wso2carbon&amp;vfs.ssl.tspassword=wso2carbon"/>
         <fileconnector.search>
            <source>{$ctx:props.ftp_connection_data_folder_url}</source>
            <filePattern>.*\.txt</filePattern>
            <recursiveSearch>true</recursiveSearch>
         </fileconnector.search>
         <log level="full">
            <property name="files" value="found"/>
         </log>
         <respond/>
      </inSequence>
   </target>
</proxy>

encoding is no longer optional in FileCreate

Description:
With 2.0.10 encoding as optional in FileCreate, as of 2.0.11 it is no longer optional

Affected Product Version:
2.0.11+

OS, DB, other environment details and versions:
Any

Steps to reproduce:

  • Using fileconnection 2.0.11+
  • write normal XML message to file without providing encoding
  • parse error is thrown (trying to parse xml data as base64 (error thrown on line 103 of FileCreate.java)

2.0.10 used default encoding if encoding was not set in connector

[File connector] Getting error when taking content from a expression

Description:
We are inputting below payload to the proxy

<test> 
   <name>test</name>
</test>

from the file connector we are taking that payload and writing to a file. Using the <contentOrExpression>{//test}</contentOrExpression>
We are taking the payload in the file connector.

<file.write configKey="FILE_CONNECTION_1">
               <filePath>/testdoc/result.txt</filePath>
               <contentOrExpression>{//test}</contentOrExpression>
               <mimeType>Automatic</mimeType>
               <compress>false</compress>
               <writeMode>Overwrite</writeMode>
               <enableStreaming>false</enableStreaming>
               <appendNewLine>false</appendNewLine>
               <enableLock>false</enableLock>
               <includeResultTo>Message Body</includeResultTo>
               <updateLastModified>true</updateLastModified>
           </file.write>

But when we do like that file connector get failed to write payload to the file.
Further checking code at line [1] we are getting below error

org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl cannot be cast to java.lang.String

[1] .

String value = (String) ConnectorUtils.lookupTemplateParamater(msgCtx, paramName);

Suggested Labels:

Suggested Assignees:

Affected Product Version:

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

FileWrite problem

Description:
Write fille critical section error. When, I lock file in Write file other thead thow exemption (Failed to acquire lock for file
Another process maybe processing it). I my opninion becuse write file usning
org.wso2.carbon.connector.filelock.tryAndAcquireLock(String filePath, long expiryTime) not tryAndAcquireLock(String filePath, long expiryTime, int maxRetryTimes, int retryInterval) where is function wait for unlock file in:

lockAcquired = fileLockManager.tryAndAcquireLock(targetFilePath, Const.DEFAULT_LOCK_TIMEOUT);

public boolean tryAndAcquireLock(String filePath, long expiryTime, int maxRetryTimes, int retryInterval) {

private boolean tryAndAcquireLocal(String filePath, long expiresIn) {

Suggested Labels:

Suggested Assignees:

Affected Product Version:

OS, DB, other environment details and versions:

Steps to reproduce:

Related Issues:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.