On Wed, May 20, 2009 at 6:00 AM, rabatown <[email protected]> wrote:
>
> Eventually, this was happened due to cell in Excel file that must be empty.
> ...
> The problem is resolved.
>

Your last posting is a little misleading.  If your fix was entirely
related to logic/data and had nothing to do with changing the
classpath, then the root problem has not been fixed.

LinkageErrors within POI code are certainly never caused by simple
logic/data bugs in code that uses POI.   As Nick suggested this error
is usually due to multiple versions of POI on your classpath.
However, in this case it is ambiguous whether the stack trace
represents a failed linkage between POI classes or from a POI class to
the JDK.

The exact linkage of RecordFormatException line 36 varies depending on
whether your POI version is before or after 3.2:
invokespecial V
java/lang/RuntimeException.<init>(Ljava/lang/String;Ljava/lang/Throwable)
invokespecial V
org/apache/poi/util/RecordFormatException.<init>(Ljava/lang/String;Ljava/lang/Throwable)

If it is the first case (pre-3.2, failed call to chaining constructor
of RuntimeException) then your problem is caused by executing with a
pre-1.4 JRE.  The 'simple' solution is to upgrade JDK 1.4 or later
(since version 2.5.1, POI has required this).
The second case (post-3.2, incompatibility between POI versions) seems
less likely here because the call target method has always existed in
every version of util/RecordFormatException - if anything one would
expect NoClassDefFoundError.  Nonetheless, it is always a good idea to
make sure you have deployed just one version of POI.

It's probable that by fixing "cell in Excel file that must be empty"
you have avoided executing line 36 of RecordFormatException.  However,
the presence of one LinkageError suggests likelihood of many more
latent LinkageErrors.  The next one you trip over may happen doing a
completely normal logic flow.

Can you please report back when you find the root cause of this problem?

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to