Bug 57411 - Received Error java.lang.ExceptionInInitializerError in OSGI
Summary: Received Error java.lang.ExceptionInInitializerError in OSGI
Status: RESOLVED WORKSFORME
Alias: None
Product: POI
Classification: Unclassified
Component: SXSSF (show other bugs)
Version: 3.11-FINAL
Hardware: All All
: P2 normal (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords: APIBug
Depends on:
Blocks:
 
Reported: 2015-01-02 15:21 UTC by Amit Lodha
Modified: 2015-07-24 12:25 UTC (History)
1 user (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Amit Lodha 2015-01-02 15:21:06 UTC
hi,
i working on OSGI and added apache poi lib in bundle.
 i am getting below error 

java.lang.ExceptionInInitializerError
	at org.apache.poi.openxml4j.opc.internal.unmarshallers.PackagePropertiesUnmarshaller.<clinit>(PackagePropertiesUnmarshaller.java:49)
	at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:154)
	at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141)
	at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:37)
	at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:65)
	at org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:337)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.newPackage(XSSFWorkbook.java:347)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:180)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:172)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:143)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:118)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:79)
.
..
...
Caused by: java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
	at org.dom4j.DocumentFactory.getInstance(DocumentFactory.java:97)
	at org.dom4j.tree.AbstractNode.<clinit>(AbstractNode.java:39)
	... 127 more
Comment 1 Dominik Stadler 2015-01-02 17:55:03 UTC
Sounds like you end up with two copies of the dom4j jar somehow and OSGi mixes them up. 

Can you try with POI 3.11 where we have removed the dependency on dom4j?
Comment 2 Nick Burch 2015-01-03 00:51:30 UTC
How did you produce the OSGi bundle?

From the look of it though, you're supplying an invalid Dom4j package

I'd suggest re-trying with 3.11 final, we have simplified the xml dependencies there with the move to java 6
Comment 3 Amit Lodha 2015-01-03 06:07:23 UTC
Thanks. i tried with 3.11 but it is giving me following error 

javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;: java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;


I am using java version 1.7.0_72

also i tried using dependency 
		<dependency>
			<groupId>javax.xml.stream</groupId>
			<artifactId>stax-api</artifactId>
			<version>1.0</version>
		</dependency>

and

		<dependency>
			<groupId>javax.xml.stream</groupId>
			<artifactId>stax-api</artifactId>
			<version>1.0.2</version>
		</dependency>
Comment 4 Dominik Stadler 2015-01-03 10:53:12 UTC
This now indicates mismatch/outdated XML parser interfaces/implementations, see e.g. http://stackoverflow.com/questions/26866398/nosuchmethoderror-in-main-thread-while-reading-xlsx-using-apache-poi/27754033#27754033 for some details, usually this happens if you include an old version of xml-apis or xerces in your project.
Comment 5 Amit Lodha 2015-01-03 16:21:15 UTC
hi,
i haven't include any lib  other than this 2

		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.11</version>
		</dependency>

		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>3.11</version>
		</dependency>


i am not sure why it is throwing error of method not found exception.
i am using  java version 7
Comment 6 Amit Lodha 2015-01-06 07:42:54 UTC
also i am getting error 
 javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;: java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory; 


when i add 

	<dependency>
			<groupId>xml-apis</groupId>
			<artifactId>xml-apis</artifactId>
			<version>1.3.04</version>
		</dependency>

to my pom.xml
Comment 7 Amit Lodha 2015-01-06 07:44:42 UTC
java.lang.NoSuchMethodError: javax.xml.stream.XMLEventFactory.newFactory()Ljavax/xml/stream/XMLEventFactory;
	at org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.<clinit>(PackagePropertiesMarshaller.java:45)
	at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:161)
	at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141)
	at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:37)
	at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:65)
	at org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:337)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.newPackage(XSSFWorkbook.java:410)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:217)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:216)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:185)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:160)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:135)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:96)
Comment 8 Dominik Stadler 2015-01-09 12:44:02 UTC
I think you are now hit by one of the things described at http://poi.apache.org/faq.html#faq-N1017E, please try those suggestions and let us know if it helped.
Comment 9 Amit Lodha 2015-01-09 13:41:22 UTC
can you please let me know what is exact jar that poi library  are required.

currently i had got below exception

	org/xml/sax/SAXException: java.lang.NoClassDefFoundError: org/xml/sax/SAXException

My Pom.xml

<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.11</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>3.11</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>ooxml-security</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>ooxml-schemas</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlbeans</groupId>
			<artifactId>xmlbeans</artifactId>
			<version>2.4.0</version>
		</dependency>


with Embed Transitivity as false
Comment 10 Nick Burch 2015-01-09 13:47:41 UTC
All dependencies are listed on the website:
http://poi.apache.org/overview.html#components

I'd suggest you upgrade to XMLBeans 2.6. 

org.xml.sax is provided by a Java 6+ JVM, see http://docs.oracle.com/javase/6/docs/api/org/xml/sax/package-summary.html . Make sure your OSGi container isn't somehow excluding that bit of the JVM
Comment 11 Dominik Stadler 2015-07-24 12:25:28 UTC
I don't think we can do much here, it seems to be a problem with the usage of multiple versions of some jars and incorrect XML libraries from some JVM versions...