{"record":{"id":"27f0ccf076d24ca8","repo":"pentaho/pentaho-kettle","slug":"error-0006-exceptionexecutingtalenjob","errorCode":"ERROR_0006_ExceptionExecutingTalenJob","errorMessage":"JobEntryTalendJobExec.ERROR_0006_ExceptionExecutingTalenJob","messagePattern":"JobEntryTalendJobExec\\.ERROR_0006_ExceptionExecutingTalenJob","errorType":"error_code","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/talendjobexec/JobEntryTalendJobExec.java","lineNumber":214,"sourceCode":"\n        classLoaderCache.put( file.toString(), classLoader );\n      }\n\n      Class<?> clazz = classLoader.loadClass( environmentSubstitute( getClassName() ) );\n      Object jobObject = clazz.newInstance();\n      Method runJob = clazz.getMethod( \"runJobInTOS\", String[].class );\n\n      // TODO: consider passing something of some sort in this next method:\n      // variables, arguments...\n      //\n      int returnCode = (Integer) runJob.invoke( jobObject, (Object) new String[] {} );\n\n      result.setExitStatus( returnCode );\n      result.setResult( true );\n      result.setNrErrors( 0 );\n\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"JobEntryTalendJobExec.ERROR_0006_ExceptionExecutingTalenJob\" ), e );\n    }\n\n    return result;\n  }\n\n  private URL[] prepareJarFiles( FileObject zipFile ) throws Exception {\n\n    // zip:file:///tmp/foo.zip\n    FileInputList fileList = FileInputList.createFileList( parentJobMeta.getBowl(), this,\n        new String[] { \"zip:\" + zipFile.toString(), },\n      new String[] { \".*\\\\.jar$\", }, // Include mask: only jar files\n      new String[] { \".*classpath\\\\.jar$\", }, // Exclude mask: only jar files\n      new String[] { \"Y\", }, // File required\n      new boolean[] { true, } ); // Search sub-directories\n\n    List<URL> files = new ArrayList<URL>();\n","sourceCodeStart":196,"sourceCodeEnd":232,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/talendjobexec/JobEntryTalendJobExec.java#L196-L232","documentation":"Thrown by JobEntryTalendJobExec.executeTalenJob (invoked from execute) when any Exception occurs while launching the external Talend job process. It wraps the underlying exception, so the root cause (class not found, process failure, IO error) is attached. The job entry result is never produced when this fires.","triggerScenarios":"Executing a Talend job entry whose generated Java classes/jars are missing from the classpath, the extracted build files were deleted, or the child process cannot be launched/awaited (IOException, ClassNotFoundException, InterruptedException).","commonSituations":"Talend job built with a different JVM version than Pentaho; the job's export directory moved or cleaned up between design and execution; wrong filename/class_name configured on the entry; file system permission problems in the temp/extract directory.","solutions":["Read the wrapped cause exception to identify the actual launch failure","Verify the configured filename points to the correct Talend job build and the class_name matches the generated class","Rebuild/export the Talend job with a compatible Java version and re-deploy its files","Check file permissions and disk space in the directory where the Talend job is extracted/run"],"exampleFix":"// before\njobExec.setFilename( \"/old/path/MyJob\" );\n// after\nFile f = new File( \"/new/path/MyJob/MyJob.jar\" );\nif ( f.exists() ) jobExec.setFilename( \"/new/path/MyJob\" );","handlingStrategy":"try-catch","validationCode":"if ( !new File( jobExec.getFilename(), \"build.xml\" ).exists() && !new File( jobExec.getFilename() + \".jar\" ).exists() ) { throw new IllegalStateException( \"Talend job build not found: \" + jobExec.getFilename() ); }","typeGuard":null,"tryCatchPattern":"try { Result r = jobExec.execute( result, nr ); } catch ( KettleException e ) { log.error( \"Talend job execution failed\", e.getCause() ); result.setNrErrors( 1 ); }","preventionTips":["Deploy the Talend job build alongside the Kettle job","Match JVM versions between Talend build and Pentaho runtime","Validate filename/class_name settings after moving deployments","Check temp/extract directory permissions"],"tags":["kettle","talend","process-execution"],"backgroundTag":"missing-dependency","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"}