Skip to content

Language detection does not work when a SecurityManager is enabled #141

@ctalau

Description

@ctalau

If a SecurityManager is enabled in the JVM, the language detection does not work.

Sample code to reproduce the issue:

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

import com.github.pemistahl.lingua.api.Language;
import com.github.pemistahl.lingua.api.LanguageDetector;
import com.github.pemistahl.lingua.api.LanguageDetectorBuilder;

public class SecurityManagerApp {
  public static Language[] languages = new Language[] { Language.ENGLISH, Language.FRENCH};
  
  public static void main(String[] args) throws IOException {
    File policyFile = File.createTempFile("security", ".policy", null);
    Files.write(policyFile.toPath(), 
        "grant { permission java.security.AllPermission; }; ".getBytes());
    System.setProperty("java.security.policy", policyFile.getAbsolutePath());
    System.setSecurityManager(new SecurityManager());
    
    LanguageDetector detector = LanguageDetectorBuilder.fromLanguages(languages).build();
    System.out.println(detector.detectLanguageOf("Comment ca va\r\n"
        + "Comme ci\r\n"
        + "Comme ci\r\n"
        + "Comme ci\r\n"
        + "Comme ca").name());
  }
}

Note that in my use-case, I am creating a plugin for an application, so I cannot disable the SecurityManager of the JVM.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions