[ 
https://issues.apache.org/jira/browse/SIS-499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17178943#comment-17178943
 ] 

Martin Desruisseaux commented on SIS-499:
-----------------------------------------

I'm not familar with the Eclipse platform. But if the later error is related to 
the _"XXX is not an ImageIO SPI class"_ error, then it is normal. There is two 
classes that can be used for loading services in Java:
 * {{java.util.ServiceLoader}}
 * {{javax.imageio.spi.IIOServiceProvider}}

The former is the general-purpose class that everyone should use. The second 
is, in theory, reserved to the Image I/O package. However because that second 
class provides more functionality than the former, it was tempting to use it 
even for non-imaging services. Indeed, Apache SIS did that in older versions 
(years ago), and some other libraries did that too. But when Jigsaw arrived, it 
had major impact on the way modules declare services. The 
{{java.util.ServiceLoader}} class has been updated accordingly. I don't know if 
the {{IIOServiceProvider}} class has been updated too, but anyway Oracle 
decided that starting with JDK 9 everyone should use 
{{java.util.ServiceLoader}}. Consequently theĀ _"XXX is not an ImageIO SPI 
class"_ error message has been added in JDK 9 for blocking any attempt to use 
{{IIOServiceProvider}} for non-imaging services.

The fix is to replace all use of {{IIOServiceProvider}} by 
{{java.util.ServiceLoader}}. It seems to me that we have done that in SIS a few 
years ago. So if this error is still happening, then:
 * Either we forgot to do the replacement somewhere in SIS.
 * Either the error happens in another library which is still using 
{{javax.imageio.spi.IIOServiceProvider}}.

The stack trace should answer the question of which library is still using 
{{IIOServiceProvider}}.

> CommonCRS.WGS84.geographic() fails to initialize with JDK 11.0.8
> ----------------------------------------------------------------
>
>                 Key: SIS-499
>                 URL: https://issues.apache.org/jira/browse/SIS-499
>             Project: Spatial Information Systems
>          Issue Type: Bug
>          Components: Build process
>    Affects Versions: 1.0
>            Reporter: Roland
>            Assignee: Martin Desruisseaux
>            Priority: Major
>         Attachments: Test.zip, pom.Failure.xml
>
>
> We have in the constructor of a class the following code:
> {{CoordinateReferenceSystem targetCRS = CommonCRS.WGS84.geographic();}}
> When we run the Maven build with Java 1.8.0_252 the build succeeds. Running 
> with OpenJDK 11.0.8 it fails with
> java.util.ServiceConfigurationError: 
> org.opengis.referencing.datum.DatumFactory: 
> org.apache.sis.referencing.factory.GeodeticObjectFactory Unable to get public 
> no-arg constructor
>  at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:581)
>  at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:672)
>  at 
> java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1232)
>  at 
> java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264)
>  at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)
>  at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)
>  at 
> org.apache.sis.internal.system.DefaultFactories.forClass(DefaultFactories.java:94)
>  at 
> org.apache.sis.internal.system.DefaultFactories.forBuildin(DefaultFactories.java:136)
>  at 
> org.apache.sis.referencing.factory.sql.EPSGFactory.factory(EPSGFactory.java:291)
>  at 
> org.apache.sis.referencing.factory.sql.EPSGFactory.<init>(EPSGFactory.java:278)
>  at 
> org.apache.sis.referencing.AuthorityFactories.EPSG(AuthorityFactories.java:122)
>  at org.apache.sis.referencing.CommonCRS.factory(CommonCRS.java:1815)
>  at org.apache.sis.referencing.CommonCRS.geographic(CommonCRS.java:635)
>  at 
> at.weberhofer.webcommons_geo.converter.PointConverter.<init>(PointConverter.java:39)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to