The Error:
Reason:
java.lang.IllegalArgumentException: MALFORMED
at org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream.getNextEntry(ZipSecureFile.java:280)
at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.(ZipInputStreamZipEntrySource.java:52)
at org.apache.poi.openxml4j.opc.ZipPackage.(ZipPackage.java:100)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:295)
at com.kms.katalon.keyword.excel.ExcelKeywords.getWorkbook(ExcelKeywords.groovy:115)
at com.kms.katalon.keyword.excel.ExcelKeywords$getWorkbook.call(Unknown Source)
at Save Estimate - Upload CSV File.run(Save Estimate - Upload CSV File:61)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:144)
at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:135)
at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
at TempTestCase1692816099551.run(TempTestCase1692816099551.groovy:25)
This error just began being thrown as of Monday 8/21/2023 it never happened before.
What I have tried:
I have added the ExcelKeywords.jar and ExcelKeywords-sources.jar sources to Project > Settings > Library Management > External Libraries but it keeps throwing the same MALFORMED error and I dont know why. THis happens on my Windows 10 machine and my colleagues machine but on a Windows 10 virtual remote desktop it runs the exact same code and no error.
Katalon Support Team also could not replicate the issue on Mac or Windows machines.
Myself and my team are blocked and do not know how to proceed.
Any and all help greatly appreciated.
My code:
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testng.keyword.TestNGBuiltinKeywords as TestNGKW
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows
import internal.GlobalVariable as GlobalVariable
import org.openqa.selenium.Keys as Keys
import java.text.SimpleDateFormat as SimpleDateFormat
import org.codehaus.groovy.scriptom.ActiveXObject as ActiveXObject
import java.io.File as File
import java.io.IOException as IOException
import com.kms.katalon.keyword.excel.ExcelKeywords as ExcelKeywords
import java.util.Random as Random
import org.apache.poi.ss.usermodel.*
import org.apache.poi.xssf.usermodel.XSSFWorkbook
import java.io.FileInputStream
import java.io.FileOutputStream
def generateRandomNumber() {
Random random = new Random()
int randomNumber = random.nextInt(90000000) + 10000000
return randomNumber
}
def eightDigitAcctNumber = generateRandomNumber()
def accountNumber = eightDigitAcctNumber
println('Generated Account Number Is â + accountNumber)
String accountId = accountNumber.toString()
GlobalVariable.AccountId = accountId
println('Generated Account Number Is Set To AccountId as : â + accountId)
println('AccountId is Set As GlobalVariable.AccountId as : â + GlobalVariable.AccountId)
String excelFilePath = âC:/Temp/Katalon_Data_Files/Supernova Test CSV file_Chris_Birthday_Account_Number.xlsxâ
String sheetName = âSheet1â
String textToWrite = GlobalVariable.AccountId.toString()
println('Value of string 'textToWrite is : â + textToWrite)
workbook01 = ExcelKeywords.getWorkbook(excelFilePath)
sheet01 = ExcelKeywords.getExcelSheet(workbook01, sheetName)
for (int rowIndex = 1; rowIndex < 8; rowIndex++) {
println('rowIndex Number is: â + rowIndex)
println('workbook01 value is: ' + workbook01)
println('sheet01 value is: ' + sheet01)
ExcelKeywords.setValueToCellByIndex(sheet01, rowIndex, 0, textToWrite)
println('BEGIN UPDATE EXCEL SPREADSHEET WITH GLOBAL VARIABLE ACCOUNT ID for CELL Number: ' + rowIndex)
}
ExcelKeywords.saveWorkbook(excelFilePath, workbook01)