Compare commits

..

2 Commits

3 changed files with 26 additions and 29 deletions

View File

@@ -5,12 +5,12 @@ product:
- https://talend.poolparty.biz/coretaxonomy/23
---
# TPS-3447
# TPS-4124
| Info | Value |
| ---------------- | ---------------- |
| Patch Name | Patch\_20191010_TPS-3447\_v1-7.2.1 |
| Release Date | 2019-10-10 |
| Patch Name | Patch\_20200615\_TPS-4124\_v1-7.2.1 |
| Release Date | 2020-06-15 |
| Target Version | 20190620\_1446-V7.2.1 |
| Product affected | Talend Studio |
@@ -24,7 +24,7 @@ This is a self-contained patch.
This patch contains the following fixes:
- TPS-3447 [7.2.1] tftpfilelist throws array index out of bounds exception (TDI-42969)
- TPS-4124 [7.2.1] ClassCastException with tLibraryLoad's Dynamics Libs in Java 11 (TDI-44305)
## Prerequisites
@@ -32,7 +32,6 @@ Consider the following requirements for your system:
- Talend Studio 7.2.1 must be installed.
## Installation
### Installing the patch using Software update
@@ -63,4 +62,5 @@ Backup the Affected files list below. Uninstall the patch by restore the backup
## Affected files for this patch
The following files are installed by this patch:
- {Talend\_Studio\_path}/plugins/org.talend.designer.components.localprovider\_7.2.1.20190614\_0309/components/tFTPFileList/tFTPFileList\_begin.javajet
- {Talend\_Studio\_path}/plugins/org.talend.designer.components.localprovider\_7.2.1.20190614\_0309/components/tLibraryLoad/tLibraryLoad\_begin.javajet

View File

@@ -433,8 +433,8 @@ if (sftp) {// *** sftp *** //
<%}%>
String remotedir_<%=cid %> = (<%=remotedir%>).replaceAll("\\\\","/");
ftp_<%=cid %>.chdir(remotedir_<%=cid %>);
com.enterprisedt.net.ftp.FTPFile[] fileList_<%=cid %> = ftp_<%=cid %>.dirDetails(null);
String[] arrayWithNames_<%=cid %> = ftp_<%=cid %>.dir(null, false);
String[] fileList_<%=cid %> = ftp_<%=cid %>.dir(null, true);
String[] fileListwithNames_<%=cid %> = ftp_<%=cid %>.dir(null, false);
<%
if (("true").equals(useExistingConn)) {
if(!moveToCurrentDir){
@@ -445,22 +445,17 @@ if (sftp) {// *** sftp *** //
}
%>
List<String> fileListTemp_<%=cid %> = new java.util.ArrayList<String>();
List<String> fileListTempWithNames_<%=cid %> = new java.util.ArrayList<String>();
List<String> fileListTempWithNames_<%=cid %> = new java.util.ArrayList<String>();
for (String filemask_<%=cid %> : maskList_<%=cid %>) {
java.util.regex.Pattern fileNamePattern_<%=cid %> = java.util.regex.Pattern.compile(filemask_<%=cid %>.replaceAll("\\.", "\\\\.").replaceAll("\\*", ".*"));
java.util.Set<String> setWithNames_<%=cid %> = new java.util.HashSet<>(java.util.Arrays.asList(arrayWithNames_<%=cid %>));
for (com.enterprisedt.net.ftp.FTPFile ftpFile : fileList_<%=cid %>){
String filemaskTemp_<%=cid%> = "";
String filemaskTempName_<%=cid%> = "";
if (setWithNames_<%=cid %>.contains(ftpFile.getName())){
filemaskTemp_<%=cid%> = ftpFile.getRaw();
filemaskTempName_<%=cid%> = ftpFile.getName();
if (fileNamePattern_<%=cid %>.matcher(filemaskTempName_<%=cid %>).matches()) {
fileListTemp_<%=cid %>.add(filemaskTemp_<%=cid %>);
fileListTempWithNames_<%=cid%>.add(filemaskTempName_<%=cid%>);
}
for (int i_<%=cid%> = 0; i_<%=cid%> < fileList_<%=cid%>.length; i_<%=cid%>++){
String filemaskTemp_<%=cid%> = fileList_<%=cid%>[i_<%=cid%>];
String filemaskTempName_<%=cid%> = fileListwithNames_<%=cid%>[i_<%=cid%>];
if (fileNamePattern_<%=cid %>.matcher(filemaskTempName_<%=cid %>).matches()) {
fileListTemp_<%=cid %>.add(filemaskTemp_<%=cid %>);
fileListTempWithNames_<%=cid%>.add(fileListwithNames_<%=cid%>[i_<%=cid%>]);
}
}
}

View File

@@ -17,17 +17,19 @@
<% if(hotLibs!=null&&hotLibs.size() > 0){%>
java.net.URLClassLoader sysloader_<%=cid %> = (java.net.URLClassLoader) ClassLoader.getSystemClassLoader();
java.lang.reflect.Method method_<%=cid %> = java.net.URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { java.net.URL.class });
method_<%=cid %>.setAccessible(true);
String[] libPaths_<%=cid %> = new String[] { <% for(Map<String, String> item : hotLibs) {%> <%=item.get("LIBPATH") %>, <%}%> };
String[] libPaths_<%=cid %> = new String[] { <% for(Map<String, String> item : hotLibs){%> <%=item.get("LIBPATH") %>, <%}%> };
for(String lib_<%=cid %>:libPaths_<%=cid %> ){
java.util.List<java.net.URL> libURL_<%=cid %> = new java.util.ArrayList<>();
for(String lib_<%=cid %>:libPaths_<%=cid %>) {
String separator_<%=cid %> = System.getProperty("path.separator");
String[] jarFiles_<%=cid %> = lib_<%=cid %>.split(separator_<%=cid %>);
for(String jarFile_<%=cid %>:jarFiles_<%=cid %>){
method_<%=cid %>.invoke(sysloader_<%=cid %>, new Object[] { new java.io.File(jarFile_<%=cid %>).toURL() });
for(String jarFile_<%=cid %> : jarFiles_<%=cid %>) {
libURL_<%=cid %>.add( new java.io.File(jarFile_<%=cid %>).toURI().toURL() );
}
}
java.net.URL[] libURLArray_<%=cid %> = libURL_<%=cid %>.toArray(new java.net.URL[] {});
ClassLoader threadClassLoader_<%=cid %> = Thread.currentThread().getContextClassLoader();
java.net.URLClassLoader newthreadClassLoader_<%=cid %> = new java.net.URLClassLoader(libURLArray_<%=cid %>, threadClassLoader_<%=cid %>);
Thread.currentThread().setContextClassLoader(newthreadClassLoader_<%=cid %>);
<%}%>