ikvmnet / ikvm

A Java Virtual Machine and Bytecode-to-IL Converter for .NET
Other
1.28k stars 121 forks source link

Awt in 8.9.1 #559

Open merco opened 4 months ago

merco commented 4 months ago

Hi. I get this error: any ideas?

immagine

wasabii commented 4 months ago

Nopo. But I'm pretty confident this isnt our problem. Pretty confident.

Does it work on real Java 8

merco commented 4 months ago

Yes. It does. What kind of tests can I do ?

wasabii commented 4 months ago

Any chance of putting together a test case of some kind?

merco commented 4 months ago

Something like this?

wasabii commented 4 months ago

I don't see this using IKVM Reference or any of the recommended ways of using IKVM from a .NET project. Just a few assemblies added as references. And some files copied by hand?

Without knowing how those assemblies were produced.... whether there were warnings during their production, etc....

GeorgeS2019 commented 4 months ago

@merco

try look at this https://github.com/lemonlion/PlantUmlIkvmTest/issues/1#issue-2218024809

the challenge I have is not to download all the other OS when I only need windows for ikvm and other referenced

merco commented 4 months ago

@GeorgeS2019 I can't see your link on discord

merco commented 4 months ago

@wasabii this is the ikvm project with the jar but I can't see errors during build

GeorgeS2019 commented 4 months ago

See this if it helps and also this AWT console project output svg and image etc.

https://github.com/lemonlion/PlantUmlIkvmTest/blob/main/PlantUmlIkvm/PlantUmlIkvm.csproj

wasabii commented 4 months ago

At this point, there isn't going to be much I can do. Somebody is going to need to dig into the actual contents of this "buildvu-svg.jar" file, which appears to be some example project downloaded from somewhere, figure out what it is and how it works, and whether it is or is not passing an out of range value to some API. This isn't something I'm going to spend my time doing.

merco commented 4 months ago

@GeorgeS2019 thanks I've added that references but nothing....

Message (System.Exception)  "(y + height) is outside of Raster" string

    org.jpedal.render.output.SVGImageUtilities.generateClipAlphaMap(float[][], java.awt.geom.Area, int, int, double, double) in SVGImageUtilities.java
    org.jpedal.render.output.SVGImageUtilities.applyTransformToImage(float, int, java.awt.image.BufferedImage, string, org.jpedal.objects.GraphicsState, int, int, float, float, float, bool) in SVGImageUtilities.java
    org.jpedal.render.output.OutputDisplay.processImage(java.awt.image.BufferedImage, org.jpedal.objects.GraphicsState, string) in OutputDisplay.java
    org.jpedal.render.output.OutputDisplay.drawImage(int, java.awt.image.BufferedImage, org.jpedal.objects.GraphicsState, bool, string, int) in OutputDisplay.java
    org.jpedal.parser.FormFlattener.drawForm(org.jpedal.objects.raw.PdfObject, org.jpedal.objects.raw.FormObject, org.jpedal.parser.PdfStreamDecoder, java.awt.geom.Area, bool, float[], float, float, byte[], org.jpedal.objects.GraphicsState) in FormFlattener.java
    org.jpedal.parser.FormFlattener.drawFlattenedForm(org.jpedal.parser.PdfStreamDecoder, org.jpedal.objects.raw.FormObject, bool, org.jpedal.objects.raw.PdfObject) in FormFlattener.java
    org.jpedal.objects.acroforms.AcroRenderer.processFieldValue(org.jpedal.parser.PdfStreamDecoder, java.util.List, java.util.Map, org.jpedal.objects.raw.FormObject, bool) in AcroRenderer.java
    org.jpedal.objects.acroforms.AcroRenderer.createComponents(org.jpedal.parser.PdfStreamDecoder, java.util.List, java.util.List, int, org.jpedal.objects.raw.FormObject[]) in AcroRenderer.java
    org.jpedal.objects.acroforms.AcroRenderer.createAndStoreFormComponents(org.jpedal.parser.PdfStreamDecoder, java.util.List, java.util.List, int) in AcroRenderer.java
JacobIDR commented 4 months ago

Hi, I'm a Developer for the BuildVu-SVG library that is having issues here.

The issues occurring are known OpenJDK 8 bugs: https://bugs.openjdk.org/browse/JDK-8048782 https://bugs.openjdk.org/browse/JDK-8076170 https://bugs.openjdk.org/browse/JDK-8076170 The fixes for these unfortunately are not being backported into OpenJDK8.

The reason these issues are not present for this library in regular OpenJDK 8 is because we have work arounds that are used when the java.vm.name system property begins with OpenJDK and the java.vm.version begins with 1.8.0. These workarounds do not trigger in this instance as the vm.name is IKVM.

GeorgeS2019 commented 4 months ago

https://www.idrsolutions.com/buildvu/

wasabii commented 3 months ago

@JacobIDR My understanding is that this is the incorrect System property to check, as it refers to the name of the VM, not the name of tshow he runtime. Which leaves out, for instance, all the other open source VMs, and IBM J9, etc. Think it also fails on Oracle since they Java HotSpot(TM) 64-Bit Server VM

Essentially it will only contain OpenJDK when using open Hotspot.

java.runtime.name should be OpenJDK Runtime Environment for those VMs using OpenJDK as their BCL.