小编Ray*_*Ray的帖子

OpenJDK在没有断点的processWorkerExit上中断

我在OpenJDK上运行tomcat 7.0.21

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.9) (6b20-1.9.9-0ubuntu1~10.10.2)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)
Run Code Online (Sandbox Code Playgroud)

通过Eclipse在调试模式下.

在提供任意数量的请求后,OpenJDK会定期开始:

在ThreadPoolExecutor中断

此时剩下的堆栈非常少,通常是:

堆叠位置

可能导致问题的原因很少...

任何人都对可能发生的事情有任何见解?

java openjdk tomcat breakpoints

38
推荐指数
1
解决办法
7434
查看次数

java会间歇性地不解析Linux上的符号链接

我正在尝试解决文件夹树中所有文件的规范路径,但由于某种原因它无法解决它们(并且间歇性地JVM安全代码将在FilePermission中正确解析符号链接并导致安全性错误).

ENV:

$ java -version
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
Run Code Online (Sandbox Code Playgroud)

系统中已知的符号链接是/usr/share/java/gnome-java-bridge.jar:

$ ls -l /usr/lib/jvm/java-6-openjdk/jre/lib/ext/gnome-java-bridge.jar
lrwxrwxrwx 1 root root 50 2012-02-24 13:39 /usr/lib/jvm/java-6-openjdk/jre/lib/ext/gnome-java-bridge.jar -> ../../../../../../share/java/gnome-java-bridge.jar
Run Code Online (Sandbox Code Playgroud)

以下代码应解析此已知符号链接:

String symlinkedFilePath =
    "/usr/lib/jvm/java-6-openjdk/jre/lib/ext/gnome-java-bridge.jar";

File symlinkedFile = new File(symlinkedFilePath);

System.out.println(symlinkedFile.getAbsolutePath());
System.out.println(symlinkedFile.getCanonicalPath());
Run Code Online (Sandbox Code Playgroud)

但产生:

/usr/lib/jvm/java-6-openjdk/jre/lib/ext/gnome-java-bridge.jar
/usr/lib/jvm/java-6-openjdk/jre/lib/ext/gnome-java-bridge.jar
Run Code Online (Sandbox Code Playgroud)

使用以下代码进行的进一步测试有时会返回true以进行权限检查,但有时会返回false:

String symlinkedFilePath =
    "/usr/lib/jvm/java-6-openjdk/jre/lib/ext/gnome-java-bridge.jar";

File symlinkedFile = new File(symlinkedFilePath);

FilePermission recursivePermission = new FilePermission(
    symlinkedFile.getParentFile().getParent() + "/-", "read");

FilePermission filePermission = new FilePermission(
    symlinkedFile.getAbsolutePath(), "read");

System.out.println(recursivePermission);
System.out.println(filePermission); …
Run Code Online (Sandbox Code Playgroud)

java linux permissions openjdk

12
推荐指数
1
解决办法
3465
查看次数

是否存在执行分层权限检查的算法?

我有一个代表层次结构的数据结构。

  • 文件夹
    • 文件夹
      • 文件夹
      • 文件
    • 文件
    • ETC。

权限存储在一个平面表中:

| pKey | type | bitperms |
Run Code Online (Sandbox Code Playgroud)

当执行搜索等全局操作时,我们需要在树中递归地检查权限。

检查与树结构的各个叶子内联的权限很容易。然而,考虑节点上的权限需要两种已知方法之一:

  • 获取过滤后的叶子后,对每个叶子进行后期处理以检查其父项权限
    • 费用被推迟到之后
    • 可能会发现很多最初的叶子,但处理完父母后,什么也没有留下,导致做无用的工作
  • 提前预先计算所有根(授予权限的节点),并在获取叶子时将其用作查询过滤器

    • 如果存在许多根,则可能会产生巨大的查询,从而导致处理每个叶子花费过多的时间

    是否存在任何算法可以更有效地做到这一点?也许重新组织权限数据或向层次结构添加更多信息?

    也许添加一些启发式方法来应对极端情况?

algorithm permissions computer-science computer-algebra-systems

5
推荐指数
1
解决办法
1288
查看次数

有没有办法以编程方式检索gradle中的依赖项

用例以osgi包为基准。

我想从配置的存储库中检索指定工件(当前刚刚构建的工件)的指定版本(或最新版本),以便可以在基准操作中使用jar文件(需要使用先前版本和新版本) )。

是否有任何gradle API可用于此目的?

java baseline gradle

5
推荐指数
1
解决办法
588
查看次数