This commit is contained in:
Looly 2021-06-29 23:02:52 +08:00
parent fbd67b0d17
commit 8caa7f890e
4 changed files with 86 additions and 0 deletions

View File

@ -28,6 +28,7 @@
* 【core 】 修复BeanCopier中setFieldNameEditor失效问题pr#349@Gitee
* 【core 】 修复ArrayUtil.indexOfSub查找bugissue#1683@Github
* 【core 】 修复Node的权重比较空指针问题issue#1681@Github
* 【core 】 修复UrlQuery传入无参数路径解析问题issue#1688@Github
-------------------------------------------------------------------------------------------------------------

View File

@ -173,8 +173,17 @@ public class UrlQuery {
}
}
if(i - pos == len){
// 没有任何参数符号
if(queryStr.startsWith("http") || queryStr.contains("/")){
// 可能为url路径忽略之
return this;
}
}
// 处理结尾
addParam(name, queryStr.substring(pos, i), charset);
return this;
}

View File

@ -0,0 +1,67 @@
package cn.hutool.core.bean;
import cn.hutool.core.annotation.Alias;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.map.MapUtil;
import lombok.Data;
import org.junit.Assert;
import org.junit.Test;
import java.io.Serializable;
/**
* https://github.com/dromara/hutool/issues/1687
*/
public class Issue1687Test {
@Test
public void toBeanTest(){
final SysUserFb sysUserFb = new SysUserFb();
sysUserFb.setDepId("123");
sysUserFb.setCustomerId("456");
final SysUser sysUser = BeanUtil.toBean(sysUserFb, SysUser.class);
// 别名错位导致找不到字段
Assert.assertNull(sysUser.getDepart());
Assert.assertEquals(new Long(456L), sysUser.getOrgId());
}
@Test
public void toBeanTest2(){
final SysUserFb sysUserFb = new SysUserFb();
sysUserFb.setDepId("123");
sysUserFb.setCustomerId("456");
// 补救别名错位
final CopyOptions copyOptions = CopyOptions.create().setFieldMapping(
MapUtil.builder("depart", "depId").build()
);
final SysUser sysUser = BeanUtil.toBean(sysUserFb, SysUser.class, copyOptions);
Assert.assertEquals(new Long(123L), sysUser.getDepart());
Assert.assertEquals(new Long(456L), sysUser.getOrgId());
}
@Data
static class SysUserFb implements Serializable {
private static final long serialVersionUID = 1L;
@Alias("depart")
private String depId;
@Alias("orgId")
private String customerId;
}
@Data
static class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
@Alias("depId")
private Long depart;
private Long orgId;
}
}

View File

@ -1,5 +1,6 @@
package cn.hutool.core.net;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import org.junit.Assert;
@ -34,4 +35,12 @@ public class UrlQueryTest {
UrlQuery parse = q.parse(requestUrl, Charset.defaultCharset());
Assert.assertEquals("=d52i5837i4ed=o39-ap9e19s5--=72e54*ll0lodl-f338868d2", parse.toString());
}
@Test
public void parseTest3(){
// issue#1688@Github
String u = "https://www.baidu.com/proxy";
final UrlQuery query = UrlQuery.of(u, Charset.defaultCharset());
Assert.assertTrue(MapUtil.isEmpty(query.getQueryMap()));
}
}