Oracle JDK 8 moves to LittleCMS as well (they used a Kodak CMS prior to
that)
ref on the update: http://bugs.java.com/view_bug.do?bug_id=8056122
and looks like it was updated in 8u40:
http://www.oracle.com/technetwork/java/javase/2col/8u40-bugfixes-2423829.html
- so if it worked for Ben on 8u40 it's maybe tied to the version?  (8u40
updated to 2.6 - I think Oracle Java 8 moved entirely to LittleCMS)


I've run into an issue like this previously in a different context (reading
in JPEG files with nonstandard ICC profiles), and have typically used the
imageio plugin here:
https://github.com/haraldk/TwelveMonkeys/blob/master/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageReader.java

which patches the ICC profile dynamically to avoid this error.   Might not
be as relevant here, but at first glance it looks at least (the ICC profile
header error)

On Sun, Apr 12, 2015 at 3:03 AM, Andrea Aime <andrea.a...@geo-solutions.it>
wrote:

> On Sat, Apr 11, 2015 at 10:13 PM, Ben Caradoc-Davies <b...@transient.nz>
> wrote:
>
>>
>>  care to venture a guess on how common it is to have this one installed?
>>>
>>
>> Andrea, 100% for openjdk on Debian and Ubuntu.
>>
>> liblcms2-2 is a mandatory dependency of openjdk7 on Debian and Ubuntu.
>> The only question is which version of liblcms2-2 you have. The consequence
>> is that the build will fail on with openjdk7 on Debian jessie or later or
>> on Ubuntu utopic or later.
>>
>
> Right, managed to reproduce on my Linux mint using openjdk7 as well.
> Apparently it's a bug in lcms itself, or so think the Ubuntu maintainers:
> https://bugs.launchpad.net/ubuntu/+source/openjdk-7/+bug/913434
>
> I've installed debug symbols and sources in my machine, the issue is
> happening because we get a CMMException in this method:
>
> static byte[] getData(long profileID, int tagSignature) {
>     int tagSize;
>     byte[] tagData;
>
>         try {
>             PCMM mdl = CMSManager.getModule();
>
>             /* get the number of bytes needed for this tag */
>             tagSize = mdl.getTagSize(profileID, tagSignature);
>
>             tagData = new byte[tagSize]; /* get an array for the tag */
>
>             /* get the tag's data */
>             mdl.getTagData(profileID, tagSignature, tagData);
>         } catch(CMMException c) {
>             tagData = null;
>         }
>
>         return tagData;
>     }
>
> which returns null, which in turn cases the NPE.
>
> The CMMException exception states:
>
> java.awt.color.CMMException: ICC Profile header not found
> at sun.java2d.cmm.lcms.LCMS.getTagData(Native Method)
> at java.awt.color.ICC_Profile.getData(ICC_Profile.java:1375)
> at java.awt.color.ICC_Profile.getData(ICC_Profile.java:1358)
> at java.awt.color.ICC_Profile.getNumComponents(ICC_Profile.java:1460)
> at sun.java2d.cmm.lcms.LCMSTransform.<init>(LCMSTransform.java:96)
> at sun.java2d.cmm.lcms.LCMS.createTransform(LCMS.java:66)
> at java.awt.color.ICC_ColorSpace.toCIEXYZ(ICC_ColorSpace.java:354)
> at
> it.geosolutions.jaiext.colorconvert.ColorConvertOpImage.<init>(ColorConvertOpImage.java:328)
> at
> it.geosolutions.jaiext.colorconvert.ColorConvertCRIF.create(ColorConvertCRIF.java:66)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
> at
> javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
> at
> it.geosolutions.jaiext.ConcurrentOperationRegistry.invokeFactory(ConcurrentOperationRegistry.java:565)
> at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
> at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819)
> at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867)
> at javax.media.jai.RenderedOp.getColorModel(RenderedOp.java:2242)
> at org.geotools.image.ImageWorker.isColorSpaceRGB(ImageWorker.java:1186)
> at org.geotools.image.ImageWorker.forceColorSpaceRGB(ImageWorker.java:1821)
> at org.geotools.image.ImageWorkerTest.testYCbCr(ImageWorkerTest.java:946)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
>
> The arguments are:
> * profileId: 139972054401696
> * tagSignature: 1751474532
>
> As you can see we're failing indeed in a native method.
>
> Not sure what to make of this, maybe we should just try to detect openjdk7
> and disable the test?
> However, on Travis it builds fine, they claim to be running Ubuntu 12.04
> LTS (maybe the issue
> is new, affects only 14.04 series).
>
> Cheers
> Andrea
>
> --
> ==
> GeoServer Professional Services from the experts! Visit
> http://goo.gl/NWWaa2 for more information.
> ==
>
> Ing. Andrea Aime
> @geowolf
> Technical Lead
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054  Massarosa (LU)
> Italy
> phone: +39 0584 962313
> fax: +39 0584 1660272
> mob: +39  339 8844549
>
> http://www.geo-solutions.it
> http://twitter.com/geosolutions_it
>
> *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
>
> Le informazioni contenute in questo messaggio di posta elettronica e/o
> nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
> loro utilizzo è consentito esclusivamente al destinatario del messaggio,
> per le finalità indicate nel messaggio stesso. Qualora riceviate questo
> messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
> darcene notizia via e-mail e di procedere alla distruzione del messaggio
> stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
> divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
> utilizzarlo per finalità diverse, costituisce comportamento contrario ai
> principi dettati dal D.Lgs. 196/2003.
>
>
>
> The information in this message and/or attachments, is intended solely for
> the attention and use of the named addressee(s) and may be confidential or
> proprietary in nature or covered by the provisions of privacy act
> (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
> Code).Any use not in accord with its purpose, any disclosure, reproduction,
> copying, distribution, or either dissemination, either whole or partial, is
> strictly forbidden except previous formal approval of the named
> addressee(s). If you are not the intended recipient, please contact
> immediately the sender by telephone, fax or e-mail and delete the
> information in this message that has been received in error. The sender
> does not give any warranty or accept liability as the content, accuracy or
> completeness of sent messages and accepts no responsibility  for changes
> made after they were sent or for other risks which arise as a result of
> e-mail transmission, viruses, etc.
>
> -------------------------------------------------------
>
>
> ------------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live
> exercises
> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
> event?utm_
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
> _______________________________________________
> GeoTools-Devel mailing list
> GeoTools-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>
>
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to