Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4755588

AccessControlException in Transformer

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 1.4.2
    • 1.4.1
    • xml



        Name: gm110360 Date: 09/30/2002


        FULL PRODUCT VERSION :
        java version "1.4.0"
        Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
        Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

        FULL OPERATING SYSTEM VERSION :
        Microsoft Windows XP [Version 5.1.2600]

        A DESCRIPTION OF THE PROBLEM :
        When use Transformer.transform method in Applet to
        transform a DOMSource into a StreamResult then I get
        AccessControlException:

        java.security.AccessControlException: access denied
        (java.util.PropertyPermission user.dir read)

        Here the stack trace:

        java.security.AccessControlException: access denied
        (java.util.PropertyPermission user.dir read)

        at
        java.security.AccessControlContext.checkPermission
        (AccessControlContext.java:270)

        at java.security.AccessController.checkPermission
        (AccessController.java:401)

        at java.lang.SecurityManager.checkPermission
        (SecurityManager.java:542)

        at java.lang.SecurityManager.checkPropertyAccess
        (SecurityManager.java:1291)

        at java.lang.System.getProperty(System.java:572)

        at org.apache.xml.utils.TreeWalker.<init>
        (TreeWalker.java:149)

        at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.<init>
        (DOM2DTM.java:1608)

        at org.apache.xml.dtm.ref.DTMManagerDefault.getDTM
        (DTMManagerDefault.java:189)

        at
        org.apache.xalan.transformer.TransformerImpl.transform
        (TransformerImpl.java:630)

        at
        org.apache.xalan.transformer.TransformerImpl.transform
        (TransformerImpl.java:1088)

        at
        org.apache.xalan.transformer.TransformerImpl.transform
        (TransformerImpl.java:1066)

        at com.alarit.xmleditor.XMLEditor.doTransform
        (XMLEditor.java:1835)

        at com.alarit.xmleditor.XMLEditor.access$22
        (XMLEditor.java:39)

        at com.alarit.xmleditor.XMLEditor$49.actionPerformed
        (XMLEditor.java:1049)

        at javax.swing.AbstractButton.fireActionPerformed
        (AbstractButton.java:1767)

        at
        javax.swing.AbstractButton$ForwardActionEvents.actionPerform
        ed(AbstractButton.java:1820)

        at
        javax.swing.DefaultButtonModel.fireActionPerformed
        (DefaultButtonModel.java:419)

        at javax.swing.DefaultButtonModel.setPressed
        (DefaultButtonModel.java:257)

        at javax.swing.AbstractButton.doClick
        (AbstractButton.java:289)

        at javax.swing.plaf.basic.BasicMenuItemUI.doClick
        (BasicMenuItemUI.java:1092)

        at
        javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mou
        seReleased(BasicMenuItemUI.java:932)

        at java.awt.Component.processMouseEvent
        (Component.java:5021)

        at java.awt.Component.processEvent
        (Component.java:4818)

        at java.awt.Container.processEvent
        (Container.java:1380)

        at java.awt.Component.dispatchEventImpl
        (Component.java:3526)

        at java.awt.Container.dispatchEventImpl
        (Container.java:1437)

        at java.awt.Component.dispatchEvent
        (Component.java:3367)

        at java.awt.LightweightDispatcher.retargetMouseEvent
        (Container.java:3214)

        at java.awt.LightweightDispatcher.processMouseEvent
        (Container.java:2929)

        at java.awt.LightweightDispatcher.dispatchEvent
        (Container.java:2859)

        at java.awt.Container.dispatchEventImpl
        (Container.java:1423)

        at java.awt.Window.dispatchEventImpl
        (Window.java:1566)

        at java.awt.Component.dispatchEvent
        (Component.java:3367)

        at java.awt.EventQueue.dispatchEvent
        (EventQueue.java:445)

        at
        java.awt.EventDispatchThread.pumpOneEventForHierarchy
        (EventDispatchThread.java:190)

        at
        java.awt.EventDispatchThread.pumpEventsForHierarchy
        (EventDispatchThread.java:144)

        at java.awt.EventDispatchThread.pumpEvents
        (EventDispatchThread.java:138)

        at java.awt.EventDispatchThread.pumpEvents
        (EventDispatchThread.java:130)

        at java.awt.EventDispatchThread.run
        (EventDispatchThread.java:98)



        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        Try this code in some JApplet:

        TransformerFactory tFactory = TransformerFactory.newInstance
        ();
        Transformer transformer = tFactory.newTransformer();
        DOMSource source = new DOMSource(document);
        StringWriter strWrite = new StringWriter();
        transformer.transform(source, new StreamResult(strWrite));

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        In java console you can see AccessControlException.
        And transformation doesn't work.




        ERROR MESSAGES/STACK TRACES THAT OCCUR :
        java.security.AccessControlException: access denied
        (java.util.PropertyPermission user.dir read)

        at java.security.AccessControlContext.checkPermission
        (AccessControlContext.java:270)

        at java.security.AccessController.checkPermission
        (AccessController.java:401)

        at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)

        at java.lang.SecurityManager.checkPropertyAccess
        (SecurityManager.java:1291)

        at java.lang.System.getProperty(System.java:572)

        at org.apache.xml.utils.TreeWalker.<init>(TreeWalker.java:149)

        at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.<init>(DOM2DTM.java:1608)

        at org.apache.xml.dtm.ref.DTMManagerDefault.getDTM
        (DTMManagerDefault.java:189)

        at org.apache.xalan.transformer.TransformerImpl.transform
        (TransformerImpl.java:630)

        at org.apache.xalan.transformer.TransformerImpl.transform
        (TransformerImpl.java:1088)

        at org.apache.xalan.transformer.TransformerImpl.transform
        (TransformerImpl.java:1066)

        at com.alarit.xmleditor.XMLEditor.doTransform(XMLEditor.java:1835)

        at com.alarit.xmleditor.XMLEditor.access$22(XMLEditor.java:39)

        at com.alarit.xmleditor.XMLEditor$49.actionPerformed
        (XMLEditor.java:1049)

        at javax.swing.AbstractButton.fireActionPerformed
        (AbstractButton.java:1767)

        at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed
        (AbstractButton.java:1820)

        at javax.swing.DefaultButtonModel.fireActionPerformed
        (DefaultButtonModel.java:419)

        at javax.swing.DefaultButtonModel.setPressed
        (DefaultButtonModel.java:257)

        at javax.swing.AbstractButton.doClick(AbstractButton.java:289)

        at javax.swing.plaf.basic.BasicMenuItemUI.doClick
        (BasicMenuItemUI.java:1092)

        at
        javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased
        (BasicMenuItemUI.java:932)

        at java.awt.Component.processMouseEvent(Component.java:5021)

        at java.awt.Component.processEvent(Component.java:4818)

        at java.awt.Container.processEvent(Container.java:1380)

        at java.awt.Component.dispatchEventImpl(Component.java:3526)

        at java.awt.Container.dispatchEventImpl(Container.java:1437)

        at java.awt.Component.dispatchEvent(Component.java:3367)

        at java.awt.LightweightDispatcher.retargetMouseEvent
        (Container.java:3214)

        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2929)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2859)

        at java.awt.Container.dispatchEventImpl(Container.java:1423)

        at java.awt.Window.dispatchEventImpl(Window.java:1566)

        at java.awt.Component.dispatchEvent(Component.java:3367)

        at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)

        at java.awt.EventDispatchThread.pumpOneEventForHierarchy
        (EventDispatchThread.java:190)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy
        (EventDispatchThread.java:144)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)


        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        In any place in applet this doesn't work:

        TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer = tFactory.newTransformer();
        DOMSource source = new DOMSource(document);
        StringWriter strWrite = new StringWriter();
        transformer.transform(source, new StreamResult(strWrite));

        ---------- END SOURCE ----------

        CUSTOMER WORKAROUND :
        remove
           System.getProperty("user.dir")
        string from
           org.apache.xml.utils.TreeWalker class
        and recompile it.
        (Review ID: 164791)
        ======================================================================

              ayadavsunw Arun Yadav (Inactive)
              gmanwanisunw Girish Manwani (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: