{"record":{"id":"75f1e4de695b2f8b","repo":"pentaho/pentaho-kettle","slug":"jobentrymsaccessbulkload-meta-unablesave","errorCode":"JobEntryMSAccessBulkLoad.Meta.UnableSave","errorMessage":"JobEntryMSAccessBulkLoad.Meta.UnableSave","messagePattern":"JobEntryMSAccessBulkLoad\\.Meta\\.UnableSave","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/ms-access/impl/src/main/java/org/pentaho/di/job/entries/msaccessbulkload/JobEntryMSAccessBulkLoad.java","lineNumber":302,"sourceCode":"    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"include_subfolders\", include_subfolders );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"add_result_filenames\", add_result_filenames );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"is_args_from_previous\", is_args_from_previous );\n\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"limit\", limit );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"success_condition\", success_condition );\n      // save the arguments...\n      if ( source_filefolder != null ) {\n        for ( int i = 0; i < source_filefolder.length; i++ ) {\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"source_filefolder\", source_filefolder[i] );\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"source_wildcard\", source_wildcard[i] );\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"delimiter\", delimiter[i] );\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"target_Db\", target_Db[i] );\n          rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"target_table\", target_table[i] );\n        }\n      }\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"JobEntryMSAccessBulkLoad.Meta.UnableSave\", \"\"\n        + id_job, dbe.getMessage() ), dbe );\n    }\n  }\n\n  /**********************************************************\n   *\n   * @param selectedfile\n   * @param wildcard\n   * @return True if the selectedfile matches the wildcard\n   **********************************************************/\n  private boolean GetFileWildcard( String selectedfile, String wildcard ) {\n    Pattern pattern = null;\n    boolean getIt = true;\n\n    if ( !Utils.isEmpty( wildcard ) ) {\n      pattern = Pattern.compile( wildcard );\n      // First see if the file matches the regular expression!\n      if ( pattern != null ) {","sourceCodeStart":284,"sourceCodeEnd":320,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/ms-access/impl/src/main/java/org/pentaho/di/job/entries/msaccessbulkload/JobEntryMSAccessBulkLoad.java#L284-L320","documentation":"KettleException thrown by JobEntryMSAccessBulkLoad.saveRep when saving the entry's per-file attributes (delimiter, target_Db, target_table, etc.) to the Pentaho repository fails with a KettleDatabaseException. The message embeds the id_job. The job entry's configuration is not persisted.","triggerScenarios":"saveRep(Repository, IMetaStore, ObjectId id_job, ...) catching KettleDatabaseException: repository DB unreachable, transaction/lock conflict, read-only repository, attribute value too long for column, or constraint violation on r_jobentry_attribute.","commonSituations":"Repository DB down or connection pool exhausted while saving the job; two users saving the same job concurrently; read-only repository credentials; oversized field values exceeding column widths.","solutions":["Check repository database connectivity and retry the save.","Verify the repository user has write permissions on the repository tables.","Coordinate with other users — concurrent saves of the same job can conflict; reload and re-save.","Shorten or review attribute values (db/table/delimiter strings) if a column-length constraint is reported in the wrapped exception."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { entry.saveRep( rep, metaStore, id_job ); } catch ( KettleException e ) { logError( \"Repository save failed for job \" + id_job + \": \" + e.getCause(), e ); /* retry after connectivity check */ }","preventionTips":["Use repository credentials with write access","Coordinate saves of shared jobs to avoid conflicts","Keep attribute values within column limits","Back up the repository before bulk job edits"],"tags":["kettle","repository","database-write","job-entry","persistence"],"backgroundTag":"database-write-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}