You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/04/20 21:47:55 UTC

svn commit: r766832 - in /cxf/branches/2.0.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/attachment/ rt/core/src/test/java/org/apache/cxf/attachment/

Author: dkulp
Date: Mon Apr 20 19:47:54 2009
New Revision: 766832

URL: http://svn.apache.org/viewvc?rev=766832&view=rev
Log:
Merged revisions 766119 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.1.x-fixes

................
  r766119 | dkulp | 2009-04-17 15:01:53 -0400 (Fri, 17 Apr 2009) | 9 lines
  
  Merged revisions 766101 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r766101 | dkulp | 2009-04-17 13:56:29 -0400 (Fri, 17 Apr 2009) | 2 lines
    
    CHange boundary to be a uuid
  ........
................

Modified:
    cxf/branches/2.0.x-fixes/   (props changed)
    cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java
    cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
    cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java
    cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 20 19:47:54 2009
@@ -1,3 +1,3 @@
-/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193,703242,703523,704303,704587,704738,704998,705153,705280-705449,705455,709357,709641,709644,710177,710184,711736,712199,712225,712275,712600,712896,713083,713410,713413,713594,713599,713808,713901,714169-714171,718622,718929,719211,719221-719223,7192
 96,719300-719301,719303,719308,719332,719356,719363,719369-719383,719650,719695,720124,723545,724403-724404,724421,724448,724451,724486-724487,724714,725367,725371,725763,725774,726045,726048,726106,726123,726745-726746,726749,726754,726756-726758,726995,727794,727797-727798,727800,731676,731684,731686-731688,731690,733587,733873,733876,733884,733891,733893,733915,735132,735136,735789,736451,736453,736456,736761,736765,736771,736827,736853,737126,737706,737714,737716,737726,737729-737730,737732,737734,737737,737861,738167,738181,738202,738206,738208,738243,738245,738588-738594,739379,739916,739920-739921,739930,740043,740190,740195,740326,740328,740959,741153-741156,741159,741163,741190,743496,743498-743499,743501-743502,743504,743512,743516,743968,744173,744181,745593,745596,745598,745600,745604-745605,745607,745639,745954,746013,746021-746022,747459,747461-747464,747466,747471,747477,747817,748248,748324,748605,748607-748608,749372,750958,750971,750973,750977,750980,750983
 -750984,750986,750988,751006,751235,751238,751943,751979,752118,752142,752162,752244,752248,752563,752615,752852-752854,752856,752916-752917,752993,757964,757966,757971,757973,758347,758404,759995-759996,760076,760154,760469,761762,761790,762395,764047-764048,764052,764058,764062,764147,764587,764892,766045
-/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191,703239,703501,704584,704997,705150,705274,705340,705446,708550,708554,709353-709354,709425,710150,712194,712198,712272,712312,712670,712893,713082,713584,713597,713804,713899,714167-714168,718281,718565,718620,718640,718665,719017,719210,719215-719218,719222,719273,719327-719354,719362,719368,719382,719649,719680,720119-720217,723338,723717-723791,724334-724371,724433-724438,724449,724481,724485,724668,724782,724795,725754,725773,725799,725839,726342,726524,726631,726637,726639,726692,726724,726992,727445,727692,727754,727792,730139,731598,731604,731615,73163
 1,731635,732320,732363,732411,732710,732773,732827,732829,733582,734666,734836,735734,736332,736343,736352,736408,736423,736491,736738,736766,736825,736852,737032,737069,737124,737237,737299,737356,737494,737498,737855,738166,738178,738201,738242,738244,739367,739799-739800,739876-739877,739922,739937,740154,740186,740197,740255,740810,740844,740886,740902,740923,741124,741152,741188,741521,741529,741879,743087,743439,743441,743446,743459,743469,743965,743967,744175,744195,744756,745214,745243,745560,745578,745586,745638,745950,746012,746019-746020,746306,746357,746373-746374,747217,747386,747406,747454,747766,748223,748305,748313,748603-748604,748768,749511,749584,749767,749771,749890,750059-750060,750591,750689,750935,751067-751110,751233,751740,751787,751828,751840,752122,752132,752136,752558,752613,752680,752728,752753,752849,752880-752881,752992,754585,755365,757859,757899,758308,759964,759966,760073,760150,760468,761759,761789,762393,763272,763495,763931,764034,764581,
 764887,766013
+/cxf/branches/2.1.x-fixes:673548,674485,674547,674551,674562,674601,674649,674764,674887,675644,675653,677048,677385,678004,678009,678559,678629,678808,678852,678891,678893,679248,679597,680435,681060,681165,681813,681816,682902,682951,683089,683290,683318,684099,684790-684793,684842,684862,684895-684918,685205,685253,686237,686283,686299,686333-686364,686765,686827,687097,687464-687465,689109,689112,689122,691316,691357,691491,691711,691715,691745,692162-692163,692468,692500,694466-694469,694472,694717,694748-694749,694870,695503,695509,695553,695555,695563,695875-695877,695940,695980,696436,696455,696721,697086,698129,701526,701634,702275,702443,702527,702582,702604,702610,702642-702643,702649,702760,702870,702873,702959,703193,703242,703523,704303,704587,704738,704998,705153,705280-705449,705455,709357,709641,709644,710177,710184,711736,712199,712225,712275,712600,712896,713083,713410,713413,713594,713599,713808,713901,714169-714171,718622,718929,719211,719221-719223,7192
 96,719300-719301,719303,719308,719332,719356,719363,719369-719383,719650,719695,720124,723545,724403-724404,724421,724448,724451,724486-724487,724714,725367,725371,725763,725774,726045,726048,726106,726123,726745-726746,726749,726754,726756-726758,726995,727794,727797-727798,727800,731676,731684,731686-731688,731690,733587,733873,733876,733884,733891,733893,733915,735132,735136,735789,736451,736453,736456,736761,736765,736771,736827,736853,737126,737706,737714,737716,737726,737729-737730,737732,737734,737737,737861,738167,738181,738202,738206,738208,738243,738245,738588-738594,739379,739916,739920-739921,739930,740043,740190,740195,740326,740328,740959,741153-741156,741159,741163,741190,743496,743498-743499,743501-743502,743504,743512,743516,743968,744173,744181,745593,745596,745598,745600,745604-745605,745607,745639,745954,746013,746021-746022,747459,747461-747464,747466,747471,747477,747817,748248,748324,748605,748607-748608,749372,750958,750971,750973,750977,750980,750983
 -750984,750986,750988,751006,751235,751238,751943,751979,752118,752142,752162,752244,752248,752563,752615,752852-752854,752856,752916-752917,752993,757964,757966,757971,757973,758347,758404,759995-759996,760076,760154,760469,761762,761790,762395,764047-764048,764052,764058,764062,764147,764587,764892,766045,766119
+/cxf/trunk:651669-686342,686344-686363,686764,686820,687096,687387,687463,688086,688102,688735,691271,691355,691488,691602,691706,691728,692116,692157,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694869,695396,695484,695537,695552,695561,695619,695684,695835,695935,695977,696094,696433,696720,697085,698128,700261,700602,701783,701830,701862,702267,702580,702602,702609,702616,702656,702957,703191,703239,703501,704584,704997,705150,705274,705340,705446,708550,708554,709353-709354,709425,710150,712194,712198,712272,712312,712670,712893,713082,713584,713597,713804,713899,714167-714168,718281,718565,718620,718640,718665,719017,719210,719215-719218,719222,719273,719327-719354,719362,719368,719382,719649,719680,720119-720217,723338,723717-723791,724334-724371,724433-724438,724449,724481,724485,724668,724782,724795,725754,725773,725799,725839,726342,726524,726631,726637,726639,726692,726724,726992,727445,727692,727754,727792,730139,731598,731604,731615,73163
 1,731635,732320,732363,732411,732710,732773,732827,732829,733582,734666,734836,735734,736332,736343,736352,736408,736423,736491,736738,736766,736825,736852,737032,737069,737124,737237,737299,737356,737494,737498,737855,738166,738178,738201,738242,738244,739367,739799-739800,739876-739877,739922,739937,740154,740186,740197,740255,740810,740844,740886,740902,740923,741124,741152,741188,741521,741529,741879,743087,743439,743441,743446,743459,743469,743965,743967,744175,744195,744756,745214,745243,745560,745578,745586,745638,745950,746012,746019-746020,746306,746357,746373-746374,747217,747386,747406,747454,747766,748223,748305,748313,748603-748604,748768,749511,749584,749767,749771,749890,750059-750060,750591,750689,750935,751067-751110,751233,751740,751787,751828,751840,752122,752132,752136,752558,752613,752680,752728,752753,752849,752880-752881,752992,754585,755365,757859,757899,758308,759964,759966,760073,760150,760468,761759,761789,762393,763272,763495,763931,764034,764581,
 764887,766013,766101
 /incubator/cxf/trunk:434594-651668

Propchange: cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java?rev=766832&r1=766831&r2=766832&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java (original)
+++ cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentDeserializer.java Mon Apr 20 19:47:54 2009
@@ -54,7 +54,7 @@
     // TODO: Is there a better way to detect boundaries in the message content?
     // It seems constricting to assume the boundary will start with ----=_Part_
     private static final Pattern INPUT_STREAM_BOUNDARY_PATTERN =
-            Pattern.compile("^--(----=_Part_\\S*)", Pattern.MULTILINE);
+            Pattern.compile("^--(\\S*)");
 
     private boolean lazyLoading = true;
 

Modified: cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java?rev=766832&r1=766831&r2=766832&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java (original)
+++ cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java Mon Apr 20 19:47:54 2009
@@ -48,8 +48,8 @@
      */
     public void writeProlog() throws IOException {
         // Create boundary for body
-        bodyBoundary = AttachmentUtil.getUniqueBoundaryValue(0);
-        
+        bodyBoundary = AttachmentUtil.getUniqueBoundaryValue();
+
         String bodyCt = (String) message.get(Message.CONTENT_TYPE);
         bodyCt = bodyCt.replaceAll("\"", "\\\"");
         

Modified: cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java?rev=766832&r1=766831&r2=766832&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java (original)
+++ cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentUtil.java Mon Apr 20 19:47:54 2009
@@ -24,6 +24,7 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URLEncoder;
+import java.util.Random;
 import java.util.UUID;
 
 import org.apache.cxf.helpers.HttpHeaderHelper;
@@ -33,6 +34,8 @@
     private static volatile int counter;
     private static final String ATT_UUID = UUID.randomUUID().toString();
     
+    private static final Random BOUND_RANDOM = new Random();
+    
     private AttachmentUtil() {
 
     }
@@ -60,12 +63,27 @@
         return URLEncoder.encode(name, "UTF-8") + "@" + URLEncoder.encode(cid, "UTF-8");
     }
 
-    public static String getUniqueBoundaryValue(int part) {
-        StringBuffer s = new StringBuffer();
-        // Unique string is ----=_Part_<part>_<hashcode>.<currentTime>
-        s.append("----=_Part_").append(part++).append("_").append(s.hashCode()).append('.').append(
-                System.currentTimeMillis());
-        return s.toString();
+    public static String getUniqueBoundaryValue() {
+        //generate a random UUID.
+        //we don't need the cryptographically secure random uuid that
+        //UUID.randomUUID() will produce.  Thus, use a faster
+        //pseudo-random thing
+        long leastSigBits = 0;
+        long mostSigBits = 0;
+        synchronized (BOUND_RANDOM) {
+            mostSigBits = BOUND_RANDOM.nextLong();
+            leastSigBits = BOUND_RANDOM.nextLong();
+        }
+        
+        mostSigBits &= 0xFFFFFFFFFFFF0FFFL;  //clear version
+        mostSigBits |= 0x0000000000004000L;  //set version
+
+        leastSigBits &= 0x3FFFFFFFFFFFFFFFL; //clear the variant
+        leastSigBits |= 0x8000000000000000L; //set to IETF variant
+        
+        UUID result = new UUID(mostSigBits, leastSigBits);
+        
+        return "uuid:" + result.toString();
     }
 
     public static String getAttchmentPartHeader(Attachment att) {
@@ -75,7 +93,11 @@
         if (att.isXOP()) {
             buffer.append("Content-Transfer-Encoding: binary\r\n");
         }
-        buffer.append("Content-ID: <" + att.getId() + ">\r\n\r\n");
+        String id = att.getId();
+        if (id.charAt(0) == '<') {
+            id = id.substring(1, id.length() - 1);
+        }
+        buffer.append("Content-ID: <" + id + ">\r\n\r\n");
         return buffer.toString();
     }
 

Modified: cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java?rev=766832&r1=766831&r2=766832&view=diff
==============================================================================
--- cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java (original)
+++ cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java Mon Apr 20 19:47:54 2009
@@ -240,6 +240,8 @@
         assertTrue(attIs.read() == 'a');
         assertTrue(attIs.read() == 'r');
         assertTrue(attIs.read() == -1);
+        
+        assertFalse(itr.hasNext());
     }
     
     @Test