[Bug 61421] org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Rule M2.4 exception

2017-09-26 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=61421

Dominik Stadler  changed:

   What|Removed |Added

 Resolution|--- |WONTFIX
 Status|NEW |RESOLVED

--- Comment #2 from Dominik Stadler  ---
I don't think using the existing parts for creating new XWFPDocument instances
like you try to do here will work, probably better to immediately retrieve the
necessary information from the part and not create many instances of
XWPFDocument here.

If you still cannot get it to work when not doing this copying, then please
reopen this issue and attach a real self-sufficient unit-test, your example
relies on some classes that are not included, so it cannot be reproduced
easily.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org



[Bug 61421] org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Rule M2.4 exception

2017-08-15 Thread bugzilla
https://bz.apache.org/bugzilla/show_bug.cgi?id=61421

Alex  changed:

   What|Removed |Added

 OS||All

--- Comment #1 from Alex  ---
Code that caused the drop

XWPFDocument docx = new XWPFDocument(new FileInputStream("D:\\curs.docx"));
ArrayList topic = new ArrayList<>();

int i = 0;
for(XWPFParagraph paragraph : docx.getParagraphs()){
byte sid = paragraph.getStyleID() != null ? (byte)
paragraph.getStyleID().charAt(0) : 0;
if (sid >= 49 && sid <=52 ){
if (paragraph.getText().length() > 0) {
System.out.println(paragraph.getStyleID() + ":" +
paragraph.getText());
Segment segment = new Segment(paragraph.getText(),
Integer.valueOf(paragraph.getStyleID().charAt(0)));
segment.doc = new XWPFDocument(docx.getPackage());
segment.from = i;
if(topic.size() > 0){
topic.get(topic.size() - 1).to = i - 1;
}
topic.add(segment);

}
}
i++;
}

for(Segment segment : topic){
i = 0;
for(XWPFParagraph paragraph : docx.getParagraphs()) {
if(!(i >= segment.from && i <=segment.to)){
int pPos = segment.doc.getPosOfParagraph(paragraph);
segment.doc.removeBodyElement(pPos);
}
i++;
}
segment.doc.write(new FileOutputStream(new File("D:\\test\\" +
segment.title + ".docx")));
segment.doc.close();
}

-- 
You are receiving this mail because:
You are the assignee for the bug.
-
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org