You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Alexei Zakharov (JIRA)" <ji...@apache.org> on 2007/03/26 09:25:32 UTC
[jira] Assigned: (HARMONY-3479) [classlib][swing][netbeans]
TransferHandler.getPasteAction().actionPerformed() doesn't check if
accessClipboard is allowed
[ https://issues.apache.org/jira/browse/HARMONY-3479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexei Zakharov reassigned HARMONY-3479:
----------------------------------------
Assignee: Alexei Zakharov
> [classlib][swing][netbeans] TransferHandler.getPasteAction().actionPerformed() doesn't check if accessClipboard is allowed
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3479
> URL: https://issues.apache.org/jira/browse/HARMONY-3479
> Project: Harmony
> Issue Type: Bug
> Components: App-Oriented Bug Reports, Classlib
> Reporter: Vasily Zakharov
> Assigned To: Alexei Zakharov
> Attachments: Harmony-3479-fix.patch, Harmony-3479-make.patch, Harmony-3479-test.patch
>
>
> Consider the following test:
> import java.awt.AWTPermission;
> import java.awt.event.ActionEvent;
> import java.security.Permission;
> import javax.swing.Action;
> import javax.swing.JPanel;
> import javax.swing.TransferHandler;
> public class Test {
> private static boolean flag = false;
> public static void main(String args[]) throws Exception {
> System.setSecurityManager(new TestSecurityManager());
> Action action = TransferHandler.getPasteAction();
> ActionEvent event = new ActionEvent(new JPanel(), 0, "");
> System.out.println("Before");
> action.actionPerformed(event);
> System.out.println("After");
> System.out.println(flag ? "SUCCESS" : "FAIL");
> }
> private static class TestSecurityManager extends SecurityManager {
> public void checkPermission(Permission perm) {
> if ((perm instanceof AWTPermission)
> && "accessClipboard".equals(perm.getName())) {
> flag = true;
> new Throwable().printStackTrace();
> }
> }
> }
> }
> I inserted stack printing to see the stack of calls that leads to security check on RI.
> Output on RI:
> Before
> java.lang.Throwable
> at Test$TestSecurityManager.checkPermission(Test.java:27)
> at java.lang.SecurityManager.checkSystemClipboardAccess(Unknown Source)
> at com.sun.java.swing.SwingUtilities2.canAccessSystemClipboard(Unknown Source)
> at javax.swing.TransferHandler$TransferAction.getClipboard(Unknown Source)
> at javax.swing.TransferHandler$TransferAction.actionPerformed(Unknown Source)
> at Test.main(Test.java:17)
> java.lang.Throwable
> at Test$TestSecurityManager.checkPermission(Test.java:27)
> at java.lang.SecurityManager.checkSystemClipboardAccess(Unknown Source)
> at sun.awt.windows.WToolkit.getSystemClipboard(Unknown Source)
> at javax.swing.TransferHandler$TransferAction.getClipboard(Unknown Source)
> at javax.swing.TransferHandler$TransferAction.actionPerformed(Unknown Source)
> at Test.main(Test.java:17)
> After
> SUCCESS
> Output on Harmony:
> Before
> After
> FAIL
> The same problem also occurs for getCopyAction() and getCutAction(), probably this is the same problem.
> At first look it seems to be a Swing problem, but my guess is the actual problem really lays in the AWT layer.
> This issue was discovered while trying to run Netbeans on Harmony.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.