Bug 62010

Summary: Attempting to password protect excel file without writing to disk, getting Rule M2.4 exception
Product: POI Reporter: Jacob <jacob.bigelow>
Component: XSSFAssignee: POI Developers List <dev>
Status: RESOLVED WORKSFORME    
Severity: critical CC: jacob.bigelow
Priority: P2    
Version: 3.17-FINAL   
Target Milestone: ---   
Hardware: PC   
OS: All   
Bug Depends on:    
Bug Blocks: 64861    
Attachments: Class to read template excel sheet, modify and encrypt it and return encypted excel sheet as byte array.

Description Jacob 2018-01-17 15:59:50 UTC
Created attachment 35682 [details]
Class to read template excel sheet, modify and encrypt it and return encypted excel sheet as byte array.

Trying to encrypt excel workbook with password and send byte array to an emailer class that mails the file. Cannot figure out how to do this without writing a file to some location.

While attempting to work around saving a file somewhere I encountered this error:

Exception in thread "main" java.lang.Exception: org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Rule M2.4 exception : this error should NEVER happen! If you can provide the triggering file, then please raise a bug at https://bz.apache.org/bugzilla/enter_bug.cgi?product=POI and attach the file that triggers it, thanks!
	at excelTesting.ExcelEncryption.doReport(ExcelEncryption.java:308)
	at excelTesting.ExcelEncryption.main(ExcelEncryption.java:317)

Attached is the class that is getting the error.
Comment 1 Andreas Beeker 2021-01-07 22:51:47 UTC
3 years later it's probably too late, but you need to close the stream which you've got from "OutputStream os = enc.getDataStream(fs)"