| 
														
															@@ -576,7 +576,15 @@ Utilization of max. archive size: {csize_max:.0%} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         metadata = ArchiveItem(metadata) 
														 | 
														
														 | 
														
															         metadata = ArchiveItem(metadata) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         data = self.key.pack_and_authenticate_metadata(metadata.as_dict(), context=b'archive') 
														 | 
														
														 | 
														
															         data = self.key.pack_and_authenticate_metadata(metadata.as_dict(), context=b'archive') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.id = self.key.id_hash(data) 
														 | 
														
														 | 
														
															         self.id = self.key.id_hash(data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        self.cache.add_chunk(self.id, data, self.stats) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        try: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            self.cache.add_chunk(self.id, data, self.stats) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        except IntegrityError as err: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            err_msg = str(err) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # hack to avoid changing the RPC protocol by introducing new (more specific) exception class 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if 'More than allowed put data' in err_msg: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                raise Error('%s - archive too big (issue #1473)!' % err_msg) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                raise 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         while self.repository.async_response(wait=True) is not None: 
														 | 
														
														 | 
														
															         while self.repository.async_response(wait=True) is not None: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             pass 
														 | 
														
														 | 
														
															             pass 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.manifest.archives[name] = (self.id, metadata.time) 
														 | 
														
														 | 
														
															         self.manifest.archives[name] = (self.id, metadata.time) 
														 |