`
tedeyang
  • 浏览: 328345 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

遇到JDK的bug(6226081) URI.relative()

阅读更多



在 URI类中有个relative方法可以用来将uri相对化。今天开发时发现了问题,它返回的相对链接并不是我想象的那种结果——不具有正确的层次关系.


QUOTE:

relativize

public URI
 relativize
(URI
 uri)
根据此 URI 将给定 URI 相对化。

根据此 URI 将给定的 URI 相对化按以下方式计算:

  1. 如果此 URI 或给定 URI 是不透明的,或者如果两个 URI 的方案和授权组成部分不相同,或者如果此 URI 的路径不是给定 URI 的路径前缀,则返回给定的 URI。

  2. 否则,使用从给定 URI 获取的查询和片段组成部分,以及通过把此 URI 的路径从给定 URL 的路径开头处移除而得到的路径组成部分,构造新的相对分层 URL。

 

参数:
uri - 要根据此 URI 进行相对化的 URI
返回:
得到的 URI
抛出:
NullPointerException - 如果 uri 为 null

在官网找到了这个buglist http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6226081 ,症状在这个bug里描述得很清楚,我就不多说了.

我的测试用例如下:


QUOTE:
package cn.tohot.webdown;

import java.net.URI;

import junit.framework.TestCase;

public class LinkReplaceTest extends TestCase {
 public void testLink() throws Exception {
  URI i = new URI("http://localhost:8080/abc ");
  URI i2 = new URI("http://localhost:8080/manager ");
  assertEquals("manager", i.relativize(i2).toString());
  
   i = new URI("/abc/");
   i2 = new URI("/manager");
  assertEquals("../manager", i.relativize(i2));
  
  assertEquals(true, i.resolve(i.relativize(i2)).equals(i2));
 }
}

2005年的bug,还没有解决掉,唉.!!!!!只好自己写一个了.

 

【2008-7】

0
0
分享到:
评论

相关推荐

    bcprov-jdk16-143.jar和bcprov-jdk15-135.jar

    解决no such provider: BC 问题所需的JAR 在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加...bcprov-jdk16-143.jar提供加密,解密,生成密钥对等方法

    JDK1.8.0.221 .zip

    JDK 1.8.0.221是Oracle公司发布的一个重要版本,它是Java 8系列的更新,主要提供了性能优化、安全性增强以及bug修复。 在Java 8中,引入了许多重要的新特性,这些特性极大地提升了开发效率和代码质量。其中最著名的...

    国密依赖包bcprov-jdk16-1.46.jar

    《国密依赖包bcprov-jdk16-1.46.jar详解》 在Java开发中,加密技术是保障信息安全的重要手段。国密(国家商用密码算法)是中国自主研发的一系列密码算法,包括SM2、SM3和SM4等,它们在金融、政务等领域有着广泛的...

    bcprov-jdk16-146.jar和bcprov-jdk15-146.jar

    标题中的"bcprov-jdk16-146.jar"和"bcprov-jdk15-146.jar"是两个版本的Bouncy Castle提供者的Java档案(JAR)文件,用于加密和数字签名功能。Bouncy Castle是一个开源的Java加密库,它扩展了Java Cryptography ...

    bcprov-jdk16-1.46.jar

    标题中的"bcprov-jdk16-1.46.jar"是一个Java的库文件,它属于Bouncy Castle项目,提供了一套广泛使用的加密算法和安全服务。Bouncy Castle是Java平台上的一个开源加密库,提供了对多种加密标准的支持,如RSA、AES、...

    bcprov-jdk16-143.jar

    bcprov-jdk16-143.jar提供加密,解密,生成密钥对等方法

    jdk1.6.0_191.linux.x64.tar.gz

    解压后使用方法:(不执行下面两步,运行java -version会报下面的错误,解压命令:tar xvzf jdk1.6.0_191.linux.x64.tar.gz) # Error occurred during initialization of VM # java/lang/NoClassDefFoundError: java...

    微信小程序解压包(bcprov-jdk16-143.jar,bcprov-jdk15-135.jar).rar

    解决no such provider: BC 问题所需的JAR 在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加 security.provider.7=org.bouncy...jdk15-135.jar的jar

    jdk1.8.0.181.tar.gz

    这里的"1.8"表示主版本和次版本,代表Java 8,而"0_181"是该版本的更新次数,意味着这是对Java 8的第181次更新,通常包含性能优化、bug修复和新功能。 2. **JDK 1.8的重要性** Java 8是Java历史上的一个里程碑,...

    bcprov-jdk15-135.jar

    解决no such provider: BC 问题所需的JAR 在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加 ...在\jre\lib\ext中添加bcprov-jdk15-135.jar的jar包

    bcprov-jdk14-160.jar

    bcprov-jdk14-160.jar用于rsa非对称加密jar包,bcprov-jdk14-160.jar用于rsa非对称加密jar包,

    jdk1.8.0_162.tar.gz

    JDK 1.8.0_162作为该版本的一个更新,可能包含了一些性能优化、安全修复和bug修复,确保了Java开发者能使用到稳定可靠的开发环境。 ### 安装与配置 在Linux系统中,解压"jdk1.8.0_162.tar.gz"后,通常会将其安装在...

    bcprov-jdk15-145.jar

    java中对pdf文件操作,若要加密,需要这个包。 注意bcprov有许多版本,如bcprov-jdk16-145.jar, 请确认你的iText包的版本,本包适用于iText-2.0.1.jar版

    logback-cfca-jdk1.6-3.1.0.0.jar

    logback-cfca-jdk1.6-3.1.0.0.jar

    jdk1.8.0-331.tar.gz 安装包

    **Java JDK 1.8.0_331 安装与使用详解** Java Development Kit (JDK) 是Oracle公司发布的用于开发Java应用程序的工具集,它包含了Java编译器、Java运行时环境(JRE)、调试器以及其他必要的工具。在本篇中,我们将...

    slf4j-jdk14-1.7.23.jar

    slf4j-jdk14-1.7.23.jar

    jdk1.6.0_45.tar.gz

    JDK1.6_linux_免安装版,解压到相应的路径下,配置环境变量即可使用.用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和...

    java的jdk7/jdk8通用tools.jar

    java的jdk7/jdk8通用tools.jar,解决maven项目打包或者启动报错时缺少启动jar包的问题。

    bcprov-jdk15-133.jar

    bcprov-jdk15-133.jar bcprov-jdk15-133.jar

Global site tag (gtag.js) - Google Analytics