Bug 46945

Summary: Eclipse won't comple BiffViewer
Product: POI Reporter: Axel Rose <axel.roeslein>
Component: HSSFAssignee: POI Developers List <dev>
Severity: normal    
Priority: P2    
Version: 3.5-dev   
Target Milestone: ---   
Hardware: All   
OS: All   

Description Axel Rose 2009-03-31 07:41:13 UTC
Eclipse complains about 70 ambiguous types and refuses to compile BiffViewer.

$ svn status -v src/java/org/apache/poi/hssf/dev/BiffViewer.java
           760389   722401 josh         src/java/org/apache/poi/hssf/dev/BiffViewer.java

example error message

line #111
The type AreaFormatRecord is ambiguous

suggested solutions by Eclipse:
either explicetely import 'org.apache.poi.hssf.record.AreaFormatRecord'
or 'org.apache.poi.hssf.record.chart.AreaFormatRecord'

I fear that taking the Eclipse warning off results in unreliable execution.
Comment 1 Nick Burch 2009-03-31 07:45:26 UTC
Eclipse compiles all of poi just fine for me

I suspect you've got two versions of poi on your eclipse path or something like that, and it's getting confused between the old and new versions. You'll need to just have one, consistent copy of poi
Comment 2 Axel Rose 2009-03-31 08:26:35 UTC
I cannot get around this.

POI is the only project open in Eclipse.
My .classpath looks like this:

        <classpathentry kind="src" path="build/ooxml-xsds/srcgen"/>
        <classpathentry kind="src" path="src/contrib/poi-ruby/java"/>
        <classpathentry kind="src" path="src/contrib/src"/>
        <classpathentry kind="src" path="src/examples/src"/>
        <classpathentry kind="src" path="src/java"/>
        <classpathentry kind="src" path="src/ooxml/interfaces-jdk15"/>
        <classpathentry kind="src" path="src/ooxml/java"/>
        <classpathentry kind="src" path="src/ooxml/testcases"/>
        <classpathentry kind="src" path="src/scratchpad/examples/src"/>
        <classpathentry kind="src" path="src/scratchpad/src"/>
        <classpathentry kind="src" path="src/scratchpad/testcases"/>
        <classpathentry kind="src" path="src/testcases"/>
        <classpathentry kind="lib" path="lib/commons-logging-1.1.jar"/>
        <classpathentry kind="lib" path="lib/junit-3.8.1.jar"/>
        <classpathentry kind="lib" path="lib/log4j-1.2.13.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/dom4j-1.6.1.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/jsr173_1.0_api.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/ooxml-schemas-1.0.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/ooxml-schemas.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/openxml4j-1.0-beta.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/xmlbeans-2.3.0.jar"/>
        <classpathentry kind="lib" path="src/contrib/poi-ruby/poi-2.0-final-20040126.jar"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
        <classpathentry kind="output" path="src/java"/>

This is what Eclipse sets up when importing a fresh svn tree.

OTOH I agree with Eclipse about the error.
BiffViewer uses
import org.apache.poi.hssf.record.*;

and references the type "AreaFormatRecord"

So I guess the import must be more explicit. AreaFormatRecord can be used
from anywhere within org.apache.poi.hssf.record, currently two places.
Comment 3 David Fisher 2009-03-31 08:49:23 UTC
Try taking out this:


That is another copy of poi. A very old one.

If Ruby support is important for you we should start a discussion on the poi dev email list. As it looks like the Ruby contribution we have is missing necessary glue.

Comment 4 Axel Rose 2009-03-31 09:27:11 UTC
Thanks, resolved by removing the jar used by poi-ruby