From e0c604077e768a96985f4848b756d708564b22eb Mon Sep 17 00:00:00 2001 From: Luciano Chavez Date: Mon, 21 Jan 2008 20:08:38 +0000 Subject: [PATCH] re PR libgcj/34369 (java.net.URI.relativize(URI) method returns incorrect results) 2008-01-21 Luciano Chavez PR libgcj/34369: * java/net/URI.java (relativize): Check initial segment for trailing "/". From-SVN: r131701 --- libjava/classpath/ChangeLog | 6 ++++++ libjava/classpath/java/net/URI.java | 14 ++++++++++---- libjava/classpath/lib/java/net/URI.class | Bin 16397 -> 16505 bytes 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index 4086a236cea..fbeb438713c 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -1,3 +1,9 @@ +2008-01-21 Luciano Chavez + + PR libgcj/34369: + * java/net/URI.java (relativize): Check initial segment for + trailing "/". + 2007-12-05 Thomas Fitzsimmons * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, diff --git a/libjava/classpath/java/net/URI.java b/libjava/classpath/java/net/URI.java index 43b10fc4195..4bf4db9856c 100644 --- a/libjava/classpath/java/net/URI.java +++ b/libjava/classpath/java/net/URI.java @@ -1,5 +1,5 @@ /* URI.java -- An URI class - Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005, 2006, 2008 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -968,12 +968,18 @@ public final class URI return uri; if (rawAuthority != null && !(rawAuthority.equals(uri.getRawAuthority()))) return uri; - if (!(uri.getRawPath().startsWith(rawPath))) - return uri; + String basePath = rawPath; + if (!(uri.getRawPath().equals(rawPath))) + { + if (!(basePath.endsWith("/"))) + basePath = basePath.concat("/"); + if (!(uri.getRawPath().startsWith(basePath))) + return uri; + } try { return new URI(null, null, - uri.getRawPath().substring(rawPath.length()), + uri.getRawPath().substring(basePath.length()), uri.getRawQuery(), uri.getRawFragment()); } catch (URISyntaxException e) diff --git a/libjava/classpath/lib/java/net/URI.class b/libjava/classpath/lib/java/net/URI.class index 760c952f19258892bc0fe767563b62074bb0bb86..be72cf438de14831759b0c50618920fea427f958 100644 GIT binary patch delta 2333 zcmZ8i32>EH75>is?|Iq&?0MlOVM$&#vL|F;p;8)D5}P2F2&q|oBsh>jmZI(0pdFnN zr?z?>G_l&ER!Ar51d1=TsSs)*9j%l&+S;MRbOy$0v8BbfS}aA+|0gWtn|c5J&T`MW z_nhzE`|w`6x|hQLaQ(UC07}&Q!{J_E=Uem_LTI4xtAqD!ALzubocjl zcMdtKcWrtSfu7S>;oq@igQ2NMh z_LYZ)c6AO0?(Q7wHQ)CwqyLz3U%Kxa!Twt3eVs*pfuW*JtsBDW6RHZO|C)=wZ92qO zp{6-0$scYj!kDB`wypF6in0}B($U4(N}2B^ZPCfL@|m}iGHAJpOinLOwN)BzC&YL6 z@7&cn5cp#MXM6hk2Lfwl8L}ajZmSg9?nKD6RhC+6I+B-qazv?e&9{>u&}FtNHv1045*FBnUWvGQ$c!1;AQz=nWp=vnrCpmEuKD{rUwgx zq-M!;0)$5~fk`|Jh24_43qHU)i74v@n3h!;Bi+`^*lnG`1J)~e$U2K3So3()`YZNZ zui}998pZ`rTCd}2>l}_*Z{T?u2P9DL!anebByfJS^tvEIH`?i6h?aCuBaS-oV_4Gc zf78dJ85Tbe6m6xe*e3XHSamW5Se_fC;3%SJ=##eGAbv7UpH9utR@uz;X@wKwv9S6m z2?pzJgjkmlZ@ps@OY7)E^TTql=`AgwYi56GvrlVxeYP9ex41r1WYQ|UakEo5V|g40 z9qG=lD$6FXi-rX)bI}n&nSv6O5Ju)2E{~;x1%>4Xd-MN;l`mMe>pmjx^$Q9%2g|c) zod{lYp*)+KT$EaoO`9A<@4FKQD`KhLwTy`+;95R#E$@nDr)x>5%%))%wN%#ll}AWn zO$dAD=U@v-uAGKp zp0FmoJc@d;Ud#`w2(gZ$DEBB8iWK<-GQ@Cx4v`{7&mr-k8|S z^l#CpgV>{w;XC?S82uc6BlwV>K~O)BXZ7zetB>Q9K7m(dd`-{d4Sf=q^b7b%{~p)$ zi{#O#Xo;RBpMJ?@NP}<@lzfB1l)OsCsyJaq6xk|X$gHptb1Ff3g>`K>sS*Wg9KtTO zL=ekW;4@v-nY~H9F|oNp6&6%Uy&b~jD|157gNTgrI)Z3BI&PICQ6@s4l@iQjg^a2C z&$9Kiw{f=eCTHc^SUfdak}WguRTt3;v!bRrMsoQpv{#QIEH`gjWtgwjWEQxZQS5da zHwTYbJIs(y*?H2N(_rPwjv%wm;hKc9h#T6AqLoJbD?DClwtOaLDA4Bgd|G8YQ0$Qc zgKDL@TH{Y#OtqLpC?z@QvMH&J9}za)Zgp07Yxk#70$B*6*g_0zEMX7QIRx1piX09{ zAxEH;ZPaok>NyJQI2w%{gU@q3zQl3Z%n4{`FS>aNws8`MI2reG3ckt9u#cDH5e}qc zKc``o{W!?!80QQGITJISh2xx!mw6@5a1PFKF5cukT;P0s%0(2x#T3aUl)$Bw#$}Yn z<&?vfRLNCT&DFGqYpIFrsFmw!6R$Qa>(WN@&>-z8qym>C3Z=Bt<%osNh*J4t)!2tY zRp6o^8daen#yR*^ksuGHAygGRR%#Md;`%A)brBXi7vy${uVl=WMmk5_x#@4TY~H+7 zXJ-n%{I|;Ml8ZM;d7GrX%~IYkAc-CKzJHWgXA>4;(?nfN&f{zD~%7fCXVdU{1RPonQ!}sG(eh}+bz0YIije5Bs8wsE zsuo%$zM*(f%pLL?-?3QVoW=UeA({mR)n{&%(tRGp&3Wsb7ASS6`(3B*a>vI10p|M% APXGV_ delta 2209 zcmYjSZE%#;6@Jd$dp61PCfQB0WRne$@0blq2>IB2Cl1x10uG@9X{069CBQ(UA!>_5 z6P@u7tsm2CbrQ9$mWpW9sJN*_fp*4Z2B?&2Yp0_VYhfG<)s|Liu@HOin}GhG)U~hpf}w_A;(!lCe{<+8MhOdgV}qSN_pH4uHt>Dx z|GPt9_UoyrX9z_Ranqdi(kZVk>%f#e5i2IgZMpZ8pPVM=eo7f`6WQrQcmX zicyYyseIw80`q$Iy}H~{6{aTK?yYuIjjA=f!^IRePlxNh&6X5=?St@4FsT{|@W{ZP zHd9sK-cS~&(~*PtZJbVxg3HDyL0v>wy?8!OABpv`e9leK?(x-=nC(iZPbcUHOXH-D zlJ^J*eRvQL$w%Q%$=rzyGrGKd(+U9Nf*vR{ED|tUYsw(Z+oGQZCaoCKr2Z8jf7lxhVwaY-_~nOOsWfTdU%9d~DGu4g~cm_E{N7^t41r zP$1UHY52tP@e~5qvd})+SHEn9rLZ3Jj0JfFEfPJmG_JJ!WM$+aRfy&NISM5(GmT`i z5~s0nznf>qS~kyz^`W5=BuMEb{RC3Ds(*nBy$`keSv2eYXw}bS zm3{$h^cdFZ7ty6(!guw{=+oo4N56^(^lLEsAf6TcoPHf~9mgAb0!Q_)@V0&f@5=cn zeF*RCNu1Sh;&c5LF0I#x$*Yf0ranX={To*bt)ehc_7yc!w(_Y3a-S*WC`WXuunyBI zSy^>;;nylvkj8VkL-_@Ji7ORXXTbV zLM<}K8;dAx&Nqg;5~sk*3Sy?rj$e3eug)7}>pUYW5x>4dI%5q>@&>(@5**C79$~9OgWn;C#Hp1$d7O@fR+_X)eZPE~Nz= zp=2(j3@)cUuApMBq*AV;C@-f5uBOy>uBFvnN1Ys{Te!hI+ML&2h*r6#3MzNCqEJoO zxLWaGBT`h6L^bwemnwEq9384e5aT`Mt7`;#DG!ON)JAEwpoq&;_I+UdE!j=7(sSdL z6`$XA`zI{}{%WGGtoVAQa0mRnQYLx>viK$wYk9I@J<53lYIq|y@cOR_t^2Cb%1mMF zb+puMZ|xY`0_I*M@K&VqHl*=(gm?#Xd8gb?Kg#${)bjuuc@W>=?_nkH##+7?>v#{k zh1<)+ZiSWd?g4hpS77w2N~FqeB_O7j$@VC*Hqon8D!Y}2Z>cIl8bNf{P_jFmTr^P% zrOJx>R0ZCaN4H4AzY0mqdHW<~bxqLlsz}0MUNnne=MyVWbjWA z=EqRUk7I?{t7Hq-@)PLfr_6=6yl6cwkTwEnQVmkkBQLWw7)l5Eua(VfoUd3a93>TH Y&yIrPs>!Tr&q-|&k5a9w%{|-y5AS#e?*IS*