Author: brett
Date: Tue Feb 16 05:34:01 2010
New Revision: 910400

URL: http://svn.apache.org/viewvc?rev=910400&view=rev
Log:
avoid timing issues with audit logs

Modified:
    
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/audit/src/test/java/org/apache/archiva/audit/AuditManagerTest.java

Modified: 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java?rev=910400&r1=910399&r2=910400&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
 Tue Feb 16 05:34:01 2010
@@ -126,7 +126,9 @@
     {
         try
         {
-            timestamp = createNameFormat().parse( name );
+            int index = name.lastIndexOf( '/' );
+            String ts = index > 0 ? name.substring( 0, index ) : name;
+            timestamp = createNameFormat().parse( ts );
         }
         catch ( ParseException e )
         {
@@ -211,7 +213,9 @@
 
     public String getName()
     {
-        return createNameFormat().format( timestamp );
+        // we add the resource name to the end to avoid clashes at that 
timestamp
+        // TODO: this is still not robust enough and the content model should 
be revised
+        return createNameFormat().format( timestamp ) + "/" + 
resource.substring( resource.lastIndexOf( '/' ) + 1 );
     }
 
     private static SimpleDateFormat createNameFormat()

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/audit/src/test/java/org/apache/archiva/audit/AuditManagerTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/audit/src/test/java/org/apache/archiva/audit/AuditManagerTest.java?rev=910400&r1=910399&r2=910400&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/audit/src/test/java/org/apache/archiva/audit/AuditManagerTest.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/audit/src/test/java/org/apache/archiva/audit/AuditManagerTest.java
 Tue Feb 16 05:34:01 2010
@@ -138,16 +138,16 @@
         return createTestEvent( TEST_REPO_ID, name );
     }
 
-    private static AuditEvent createTestEvent( String repositoryId, String 
name )
+    private static AuditEvent createTestEvent( String repositoryId, String t )
         throws ParseException
     {
         AuditEvent event = new AuditEvent();
-        event.setTimestamp( TIMESTAMP_FORMAT.parse( name ) );
+        event.setTimestamp( TIMESTAMP_FORMAT.parse( AUDIT_EVENT_BASE + t ) );
         event.setAction( AuditEvent.UPLOAD_FILE );
         event.setRemoteIP( TEST_IP_ADDRESS );
         event.setRepositoryId( repositoryId );
         event.setUserId( TEST_USER );
-        event.setResource( TEST_RESOURCE_BASE + "/" + name.substring( 
AUDIT_EVENT_BASE.length() ) );
+        event.setResource( TEST_RESOURCE_BASE + "/" + t );
         return event;
     }
 
@@ -197,10 +197,11 @@
         eventNames.put( TEST_REPO_ID_2, new ArrayList<String>() );
         for ( int i = 0; i < numEvents; i++ )
         {
-            String name = AUDIT_EVENT_BASE + MILLIS_FORMAT.format( i );
+            String t = MILLIS_FORMAT.format( i );
+            String name = AUDIT_EVENT_BASE + t + "/" + t;
             String repositoryId = i % 2 == 0 ? TEST_REPO_ID : TEST_REPO_ID_2;
             eventNames.get( repositoryId ).add( name );
-            events.add( createTestEvent( repositoryId, name ) );
+            events.add( createTestEvent( repositoryId, t ) );
         }
 
         metadataRepositoryControl.expectAndReturn(


Reply via email to