<AWT Dev> Bug Report (Review ID: JI-9024378) - cannot copy to the system clipboard using the mimetype = 'image/svg+xml'
Alvin Penner
penner at vaxxine.com
Sat Sep 19 16:56:39 UTC 2015
This is a duplicate of a bug report originally issued to openjdk as
JI-9024378, see message below. However, that report appears to have
gottern lost, so I am re-submitting it here. If I try to create the
mimetype 'image/svg+xml' on the clipboard, I will instead get the
mangled mimetype = 'JAVA_DATAFLAVOR:image/svg+xml; class=java.io.InputStream'.
The code for generating the mimetype is SVGCopy.java, attached here.
The code for verifying the mimetype is the Windows program
Clipview.exe, available at:
http://www.peterbuettner.de/develop/tools/clipview/index.html
Due to the fact that the mimetype has been mangled, it is not
possible to paste data of this type into Inkscape : https://inkscape.org/
My java jdk is: java version "1.6.0_16"
My system is : Microsoft Windows [Version 6.1.7601]
Thank you for your consideration
Alvin Penner
Inkscape developer : https://launchpad.net/inkscape/+topcontributors
............................................................................................................
At 07:56 AM 9/12/2015, you wrote:
>Dear Java Developer,
>
>Thank you for reporting this issue.
>
>We are evaluating this report and have assigned it a Review ID:
>JI-9024378. In the event this report is determined to be a defect or
>enhancement request, it will be referenced with a new Bug ID and
>will be listed on Bugs.java.com. For other related issues, please
>visit our Bug Database at http://bugs.java.com.
>
>We try to process all newly posted bugs in a timely manner, but make
>no promises about the amount of time in which a bug might be fixed.
>If the issue just reported could have a major impact on your
>project, consider using one of the technical support offerings
>available at Oracle Support.
>
>Regards,
>Java Community Developer Support
-------------- next part --------------
import java.awt.datatransfer.*;
import java.awt.Toolkit;
import java.io.ByteArrayInputStream;
public class SVGCopy
{
public static void main(String[] args)
{
System.out.println("This is an attempt to copy to the clipboard using mimetype 'image/svg+xml'");
Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
SVGTransferable strSVG = new SVGTransferable("<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n<svg>test</svg>");
clip.setContents(strSVG, null);
}
}
class SVGTransferable implements Transferable
{
private String str;
private DataFlavor flavSVG = null;
public SVGTransferable(String m_str)
{
str = m_str;
try
{
flavSVG = new DataFlavor("image/svg+xml");
System.out.println("created DataFlavor = " + flavSVG);
}
catch (Exception e)
{System.out.println("error creating DataFlavor : " + e);}
}
public DataFlavor[] getTransferDataFlavors()
{
return new DataFlavor[] { flavSVG };
}
public boolean isDataFlavorSupported(DataFlavor flavor)
{
return flavor.equals(flavSVG);
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException
{
if (flavor.equals(flavSVG))
return new ByteArrayInputStream(str.getBytes());
else
throw new UnsupportedFlavorException(flavor);
}
}
More information about the awt-dev
mailing list