mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Fix: Crash in barcode ASN reading when the file type isn't supported (#5261)
* Fixes a random crash in the barcode ASN reading so it doesn't try to access a not created temp dir * Don't parse the barcodes twice, store the result instead
This commit is contained in:
		@@ -90,6 +90,9 @@ class BarcodeReader:
 | 
			
		||||
        """
 | 
			
		||||
        asn = None
 | 
			
		||||
 | 
			
		||||
        if not self.supported_mime_type:
 | 
			
		||||
            return None
 | 
			
		||||
 | 
			
		||||
        # Ensure the barcodes have been read
 | 
			
		||||
        self.detect()
 | 
			
		||||
 | 
			
		||||
@@ -215,7 +218,7 @@ class BarcodeReader:
 | 
			
		||||
        # This file is really borked, allow the consumption to continue
 | 
			
		||||
        # but it may fail further on
 | 
			
		||||
        except Exception as e:  # pragma: no cover
 | 
			
		||||
            logger.warning(
 | 
			
		||||
            logger.exception(
 | 
			
		||||
                f"Exception during barcode scanning: {e}",
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -152,10 +152,13 @@ def consume_file(
 | 
			
		||||
                return "File successfully split"
 | 
			
		||||
 | 
			
		||||
            # try reading the ASN from barcode
 | 
			
		||||
            if settings.CONSUMER_ENABLE_ASN_BARCODE and reader.asn is not None:
 | 
			
		||||
            if (
 | 
			
		||||
                settings.CONSUMER_ENABLE_ASN_BARCODE
 | 
			
		||||
                and (located_asn := reader.asn) is not None
 | 
			
		||||
            ):
 | 
			
		||||
                # Note this will take precedence over an API provided ASN
 | 
			
		||||
                # But it's from a physical barcode, so that's good
 | 
			
		||||
                overrides.asn = reader.asn
 | 
			
		||||
                overrides.asn = located_asn
 | 
			
		||||
                logger.info(f"Found ASN in barcode: {overrides.asn}")
 | 
			
		||||
 | 
			
		||||
    template_overrides = Consumer().get_workflow_overrides(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user