When I upgraded to 3.8 beta from 3.7 I had to adjust the below. I have code that assigns the font, I had to change the code to not execute the below command if the font color was black, otherwise the text would be white, on a white background. if (!foreground.equals(Color.BLACK))// poi version 3.8 beta required to fix some bugs, but can't handle black foreground { ((XSSFFont) font).setColor(new XSSFColor(foreground)); }
i can confirm it in 3.8 release. i think it is the incorrect missing use of the method "correctRGB" in the 2 constructors of XSSFColor. calling this.setRgb(...) instad of ctColor.setRgb(...) would fix it.
Created attachment 29219 [details] change XSSFColor constructors to adjust black and white additionally patched org.apache.poi.xssf.model.ThemesTable as it used the constructor. this patch will change the behavior of XSSFColor !
Also bug 53274 sounds related.
It seems that this bug has been finally solved in r1694093, released in POI version 3.14. See #51222 for explanations, and in particular https://bz.apache.org/bugzilla/show_bug.cgi?id=51222#c6 for a thorough analysis. *** This bug has been marked as a duplicate of bug 51222 ***