Menu

#2411 Freeplane does not run from IntelliJ because of java.security.AccessControlException

Next Release
not-a-bug
None
normal
minor
Always
none
1.5.15
Windows
10 32-bit
2019-01-02
2016-09-17
No

I have tried to run Freeplane from IntelliJ IDEA Community 2016.2. As a result I receive java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write")

I have used the following options:

Main class: org.freeplane.launcher.Launcher

VM options: -Xmx512m "-Dorg.freeplane.basedirectory=$ProjectFileDir$freeplane/../BUILD" "-Djava.security.policy=$ProjectFileDir$freeplane_framework/eclipse/launchers/freeplane.policy" "-Dframework.home=${system_property:user.home}/.gradle/caches/modules-2/files-2.1/org.knopflerfish/framework" "-Dorg.freeplane.main.application.FreeplaneSecurityManager.disable=true"

Working directory: D:\Users\Henk\IntelliJ\freeplane_src

Use classpath of module: freeplane_framework

JRE: JDK 1.8

This is log with the java.security.AccessControlException:

"D:\Program Files\Java\jdk1.8.0_102\bin\java" -Xmx512m -Dorg.freeplane.basedirectory=$ProjectFileDir$freeplane/../BUILD -Djava.security.policy=$ProjectFileDir$freeplane_framework/eclipse/launchers/freeplane.policy -Dframework.home=${system_property:user.home}/.gradle/caches/modules-2/files-2.1/org.knopflerfish/framework -Dorg.freeplane.main.application.FreeplaneSecurityManager.disable=true -Didea.launcher.port=7534 "-Didea.launcher.bin.path=D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2016.2.4\bin" -Dfile.encoding=UTF-8 -classpath "D:\Users\Henk\IntelliJ\freeplane_src\freeplane_framework\bin;D:\Program Files\Java\jdk1.8.0_102\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\access-bridge.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\rt.jar;D:\Users\Henk\.gradle\caches\modules-2\files-2.1\org.knopflerfish\framework\7.1.2\309a2759e838b49b80d425018c3efe5541b7f1f\framework-7.1.2.jar;D:\Users\Henk\.gradle\caches\modules-2\files-2.1\junit\junit\4.11\4e031bb61df09069aeb2bffb4019e7a5034a4ee0\junit-4.11.jar;D:\Users\Henk\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-core\1.3\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2016.2.4\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.freeplane.launcher.Launcher
org.knopflerfish.framework.readonly=true
org.knopflerfish.gosg.jars=reference:file:D:\Users\Henk\IntelliJ\freeplane_src\BUILD\core/
org.freeplane.basedirectory=D:\Users\Henk\IntelliJ\freeplane_src\BUILD
org.freeplane.globalresourcedir=D:\Users\Henk\IntelliJ\freeplane_src\BUILD\resources
org.osgi.framework.storage=D:\Users\Henk\IntelliJ\freeplane_src\BUILD\fwdir
Exception in thread "main" java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1262)
    at java.lang.System.getProperties(System.java:630)
    at org.knopflerfish.framework.Main.populateSysProps(Main.java:1125)
    at org.knopflerfish.framework.Main.<init>(Main.java:163)
    at org.knopflerfish.framework.Main.main(Main.java:152)
    at org.freeplane.launcher.Launcher.run(Launcher.java:108)
    at org.freeplane.launcher.Launcher.launch(Launcher.java:73)
    at org.freeplane.launcher.Launcher.main(Launcher.java:66)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Process finished with exit code 1

Related

Discontinued Forums replaced by GitHub: IntelliJ IDEA and Gradle useful for add-on development?

Discussion

  • Dimitry Polivaev

    Have you pulled the last code from github and compiled it with gradle already?

     
  • Henk van den Akker

    Hi Dimitry,

    Since I do not have set up git for Freeplane on github I have just copied the latest version Launcher.java from github and pasted into the source of 1.5.15. That should be sufficient, right?

    I still get a java.security.AccessControlException:

    "D:\Program Files\Java\jdk1.8.0_102\bin\java" -Xmx512m -Dorg.freeplane.basedirectory=$ProjectFileDir$freeplane/../BUILD -Djava.security.policy=$ProjectFileDir$freeplane_framework/eclipse/launchers/freeplane.policy -Dframework.home=${system_property:user.home}/.gradle/caches/modules-2/files-2.1/org.knopflerfish/framework -Dorg.freeplane.main.application.FreeplaneSecurityManager.disable=true -Didea.launcher.port=7533 "-Didea.launcher.bin.path=D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2016.2.4\bin" -Dfile.encoding=UTF-8 -classpath "D:\Users\Henk\IntelliJ\freeplane_src\freeplane_framework\bin;D:\Program Files\Java\jdk1.8.0_102\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\access-bridge.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_102\jre\lib\rt.jar;D:\Users\Henk\.gradle\caches\modules-2\files-2.1\org.knopflerfish\framework\7.1.2\309a2759e838b49b80d425018c3efe5541b7f1f\framework-7.1.2.jar;D:\Users\Henk\.gradle\caches\modules-2\files-2.1\junit\junit\4.11\4e031bb61df09069aeb2bffb4019e7a5034a4ee0\junit-4.11.jar;D:\Users\Henk\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-core\1.3\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2016.2.4\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.freeplane.launcher.Launcher
    org.knopflerfish.framework.readonly=true
    org.knopflerfish.gosg.jars=reference:file:D:\Users\Henk\IntelliJ\freeplane_src\BUILD\core/
    org.freeplane.basedirectory=D:\Users\Henk\IntelliJ\freeplane_src\BUILD
    org.freeplane.globalresourcedir=D:\Users\Henk\IntelliJ\freeplane_src\BUILD\resources
    org.osgi.framework.storage=D:\Users\Henk\IntelliJ\freeplane_src\BUILD\fwdir
    Exception in thread "main" java.security.AccessControlException: access denied ("java.util.PropertyPermission" "*" "read,write")
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.security.AccessController.checkPermission(AccessController.java:884)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1262)
        at java.lang.System.getProperties(System.java:630)
        at org.knopflerfish.framework.Main.populateSysProps(Main.java:1125)
        at org.knopflerfish.framework.Main.<init>(Main.java:163)
        at org.knopflerfish.framework.Main.main(Main.java:152)
        at org.freeplane.launcher.Launcher$1.run(Launcher.java:120)
        at org.freeplane.launcher.Launcher$1.run(Launcher.java:111)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.freeplane.launcher.Launcher.run(Launcher.java:111)
        at org.freeplane.launcher.Launcher.launch(Launcher.java:82)
        at org.freeplane.launcher.Launcher.main(Launcher.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
    
    Process finished with exit code 1
    
     
    • Henk van den Akker

      Hi Dimitry,

      I repeated with completely replacing the source code with the most recent one from github and compiling it with github. I got exactly the same result in the log as when just replacing Launcher.java.

      Cheers,

      Henk

       
  • Dimitry Polivaev

    As a workaround pllease try to create policy file grantAllPermissions.policy with content

    grant {
    permission java.security.AllPermission;
    };
    

    and reference it using property java.security.policy

    "-Djava.security.policy=grantAllPermissions.policy"
    

    (using the correct path)

     

    Last edit: Dimitry Polivaev 2016-09-17
    • Henk van den Akker

      HI Dimitry,

      That worked. I also found out that the path to freeplane.policy was not correct. After I had corrected it, it still gave the same error.

      What is the consequence of granting all permissions? Could it be that an add-on is working when you test it in your IDE and that you get a permission error when you run it on a installed instance of Freeplane?

      Cheers,

      Henk

       
      • Dimitry Polivaev

        Yes, and therefore it is just a work around until I check it completely and define better policy file which works with IntelliJ

         
        • Henk van den Akker

          After some googling I have tried adding the following to freeplane.policy, but it did not solve the problem.

          grant {
          
                  permission java.util.PropertyPermission "idea.launcher.library ", "read";
          
          };
          
          grant {
          
                  permission java.util.PropertyPermission "idea.launcher.bin.path", "read";
          
          };
          
          grant {
          
                  permission java.util.PropertyPermission "idea.launcher.port", "read";
          
          };
          
           
  • Dimitry Polivaev

    Now I tried it myself and it worked flawlessly. I attached a screenshot of my debug configuration.

     
  • Dimitry Polivaev

    It looks like no change in freeplane is needed.
    Can you confirm it?
    Can I close this bug report?

     
  • Dimitry Polivaev

    To get there I performed following steps:

    1. gradle build
    2. import gradle project into intellilj
    3. Do not configure any OSGI framework for it, if asked by IntelliJ
    4. Create a new launcher of the type JAR Application with BUILD/freeplanelauncher.jar as application jar.
    5. Debug and enjoy
     
    • Henk van den Akker

      HI Dimitry,

      I tested it: it works fine. Is there any difference between launching it from freeplane_framework\build\classes\main\org\freeplane\launcher\Launcher.class or BUILD\freeplanelauncher.jar? I do not see any difference in the logging.

      You can close the bug report.

      Cheers,

      Henk

       
  • Henk van den Akker

    • status: new --> not-a-bug
     
  • Dimitry Polivaev

    Now there is a new launch configuration for IntelliJ which makes possible to compile and debug Freeplane directly under IntelliJ, check https://www.freeplane.org/wiki/index.php/IDE_setup#IntelliJ