I don't think this is ever intended behavior for org.apache.poi.xwpf.usermodel.XWPFRun; B.setFontSize(A.getFontSize()); // setFontSize(-1) == +32767 B.setTextPosition(A.getTextPosition()); //similar
I tried to reproduce this with the following unit-test, this works for me, not sure what exactly fails for you here. If this is still a problem for you, then please reopen this bug and attach a complete unit-test which reproduces the problem. assertEquals(-1, run.getFontSize()); run.setFontSize(10); assertEquals(10, run.getFontSize()); run.setFontSize(Short.MAX_VALUE-1); assertEquals(Short.MAX_VALUE-1, run.getFontSize()); run.setFontSize(Short.MAX_VALUE); assertEquals(Short.MAX_VALUE, run.getFontSize()); run.setFontSize(Short.MAX_VALUE+1); assertEquals(Short.MAX_VALUE+1, run.getFontSize()); run.setFontSize(Integer.MAX_VALUE-1); assertEquals(Integer.MAX_VALUE-1, run.getFontSize()); run.setFontSize(Integer.MAX_VALUE); assertEquals(Integer.MAX_VALUE, run.getFontSize()); run.setFontSize(-1); assertEquals(-1, run.getFontSize()); assertEquals(-1, run.getTextPosition()); run.setTextPosition(10); assertEquals(10, run.getTextPosition()); run.setTextPosition(Short.MAX_VALUE-1); assertEquals(Short.MAX_VALUE-1, run.getTextPosition()); run.setTextPosition(Short.MAX_VALUE); assertEquals(Short.MAX_VALUE, run.getTextPosition()); run.setTextPosition(Short.MAX_VALUE+1); assertEquals(Short.MAX_VALUE+1, run.getTextPosition()); run.setTextPosition(Short.MAX_VALUE+1); assertEquals(Short.MAX_VALUE+1, run.getTextPosition()); run.setTextPosition(Integer.MAX_VALUE-1); assertEquals(Integer.MAX_VALUE-1, run.getTextPosition()); run.setTextPosition(Integer.MAX_VALUE); assertEquals(Integer.MAX_VALUE, run.getTextPosition()); run.setTextPosition(-1); assertEquals(-1, run.getTextPosition());
I also added a unit-test in r1737018