MINA
  1. MINA
  2. DIRMINA-659

AccessControlException when running MINA in a Applet: RuntimePermission "modifyThread"

    Details

    • Type: Task Task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0-M4
    • Fix Version/s: 2.0.0-RC1
    • Labels:
      None
    • Environment:
      Java 5 Applet (using appletviewer)

      Description

      I'm using MINA 2.0.0-M4 within a restricted environment (an Applet in my case, could also be JNLP).

      When running the code in appletviewer, I need to add a permission for the code to be executed successfully:
      permission java.lang.RuntimePermission "modifyThread";

      If I don't add this permission, the code fails with the following stack trace:

      Exception in thread "pool-2-thread-1" java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThread)
      at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
      at java.security.AccessController.checkPermission(AccessController.java:427)
      at java.util.concurrent.ThreadPoolExecutor.shutdown(ThreadPoolExecutor.java:893)
      at org.apache.mina.core.service.SimpleIoProcessorPool.dispose(SimpleIoProcessorPool.java:230)
      at org.apache.mina.core.polling.AbstractPollingIoConnector$Connector.run(AbstractPollingIoConnector.java:512)
      at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:65)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
      at java.lang.Thread.run(Thread.java:613)

      The exception occurs when I close the SocketConnector:

      public synchronized void close()
      {
      if (connector != null)

      { connector.dispose(); connector = null; }

      }

        Activity

        Jeff Mesnil created issue -
        Hide
        Julien Vermillard added a comment -

        Apparently it's needed by :
        http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ExecutorService.html#shutdown()
        I'm no expert in applet and security what do you expect us to do ?

        Show
        Julien Vermillard added a comment - Apparently it's needed by : http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ExecutorService.html#shutdown( ) I'm no expert in applet and security what do you expect us to do ?
        Hide
        Edouard De Oliveira added a comment -

        Isn't some documentation the real solution here ?
        Maybe a special section for restricted envs like applets in the wiki
        Jeff you can also sign your applet which will give your applet an unrestricted access to the system and thus eliminate the issue.

        Show
        Edouard De Oliveira added a comment - Isn't some documentation the real solution here ? Maybe a special section for restricted envs like applets in the wiki Jeff you can also sign your applet which will give your applet an unrestricted access to the system and thus eliminate the issue.
        Edouard De Oliveira made changes -
        Field Original Value New Value
        Assignee Edouard De Oliveira [ ted_kods ]
        Hide
        Jeff Mesnil added a comment -

        +1 for documenting it.
        As long as the developer can know in advance what permissions are required by MINA to work in a sandbox, it's fine.

        iirc, when I tested MINA in an applet, it was the only permission required. It's a pity I have to sign the applet to allow MINA to shutdown properly (but it was a prototype applet and it is likely that a real applet would have to be signed anyway).

        To sum up, +1 to document the permission(s) and close this issue

        Show
        Jeff Mesnil added a comment - +1 for documenting it. As long as the developer can know in advance what permissions are required by MINA to work in a sandbox, it's fine. iirc, when I tested MINA in an applet, it was the only permission required. It's a pity I have to sign the applet to allow MINA to shutdown properly (but it was a prototype applet and it is likely that a real applet would have to be signed anyway). To sum up, +1 to document the permission(s) and close this issue
        Hide
        Edouard De Oliveira added a comment -

        Added some doc on the wiki

        Show
        Edouard De Oliveira added a comment - Added some doc on the wiki
        Edouard De Oliveira made changes -
        Issue Type Bug [ 1 ] Task [ 3 ]
        Fix Version/s 2.0.0-M7 [ 12313995 ]
        Component/s Web Site / Documentation [ 12311381 ]
        Edouard De Oliveira made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Julien Vermillard made changes -
        Fix Version/s 2.0.0-RC1 [ 12313865 ]
        Fix Version/s 2.0.0-M7 [ 12313995 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Closed Closed
        147d 11h 8m 1 Edouard De Oliveira 30/Jun/09 22:26

          People

          • Assignee:
            Edouard De Oliveira
            Reporter:
            Jeff Mesnil
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development