private void emergencyWriteJobTracker( Result res ) { JobEntryResult jerFinalResult = new JobEntryResult( res, this.getLogChannelId(), BaseMessages.getString( PKG, "Job.Comment.JobFinished" ), null, null, 0, null ); JobTracker finalTrack = new JobTracker( this.getJobMeta(), jerFinalResult ); // jobTracker is up to date too. this.jobTracker.addJobTracker( finalTrack ); }
@Test // PDI-11389 Number of job trackers should be limited by KETTLE_MAX_JOB_TRACKER_SIZE public void testAddJobTracker() throws Exception { final String old = System.getProperty( Const.KETTLE_MAX_JOB_TRACKER_SIZE ); final Integer maxTestSize = 30; try { System.setProperty( Const.KETTLE_MAX_JOB_TRACKER_SIZE, maxTestSize.toString() ); JobMeta jobMeta = mock( JobMeta.class ); JobTracker jobTracker = new JobTracker( jobMeta ); for ( int n = 0; n < maxTestSize * 2; n++ ) { jobTracker.addJobTracker( mock( JobTracker.class ) ); } assertTrue( "More JobTrackers than allowed were added", jobTracker.getTotalNumberOfItems() <= maxTestSize ); } finally { if ( old == null ) { System.clearProperty( Const.KETTLE_MAX_JOB_TRACKER_SIZE ); } else { System.setProperty( Const.KETTLE_MAX_JOB_TRACKER_SIZE, old ); } } }
@Override public Exception call() throws Exception { Exception exception = null; try { for ( int i = 0; i < cycles; i++ ) { int id = idGenerator.getAndIncrement(); JobEntryResult result = new JobEntryResult(); result.setJobEntryName( String.format( resultNameTemplate, id ) ); result.setJobEntryNr( id ); JobTracker child = new JobTracker( mockJobMeta( "child-" + id ), result ); tracker.addJobTracker( child ); } } catch ( Exception e ) { exception = e; } return exception; } }
@Test public void findJobTracker_EntryNameNotFound() { JobTracker jobTracker = createTracker(); for ( int i = 0; i < 3; i++ ) { jobTracker.addJobTracker( createTracker( Integer.toString( i ), 1 ) ); } JobEntryCopy copy = createEntryCopy( "not match" ); assertNull( jobTracker.findJobTracker( copy ) ); }
@Test public void findJobTracker_EntryNameIsNull() { JobTracker jobTracker = createTracker(); jobTracker.addJobTracker( createTracker() ); JobEntryCopy copy = createEntryCopy( null ); assertNull( jobTracker.findJobTracker( copy ) ); }
@Test public void findJobTracker_EntryNameFound() { JobTracker jobTracker = createTracker(); JobTracker[] children = new JobTracker[] { createTracker( "0", 1 ), createTracker( "1", 1 ), createTracker( "2", 1 ) }; for ( JobTracker child : children ) { jobTracker.addJobTracker( child ); } JobEntryCopy copy = createEntryCopy( "1" ); assertEquals( children[1], jobTracker.findJobTracker( copy ) ); }
new JobEntryResult( null, null, BaseMessages.getString( PKG, "Job.Comment.JobStarted" ), reason, jobEntryCopy .getName(), jobEntryCopy.getNr(), environmentSubstitute( jobEntryCopy.getEntry().getFilename() ) ); jobTracker.addJobTracker( new JobTracker( jobMeta, jerBefore ) ); "Job.Comment.JobFinished" ), null, jobEntryCopy.getName(), jobEntryCopy.getNr(), environmentSubstitute( jobEntryCopy.getEntry().getFilename() ) ); jobTracker.addJobTracker( new JobTracker( jobMeta, jerAfter ) ); synchronized ( jobEntryResults ) { jobEntryResults.add( jerAfter );
new JobEntryResult( null, null, BaseMessages.getString( PKG, "Job.Comment.JobStarted" ), BaseMessages .getString( PKG, "Job.Reason.Started" ), null, 0, null ); jobTracker.addJobTracker( new JobTracker( jobMeta, jerStart ) ); jobTracker.addJobTracker( new JobTracker( jobMeta, jerEnd ) ); log.logMinimal( BaseMessages.getString( PKG, "Job.Comment.JobFinished" ) );
parentJob.getJobTracker().addJobTracker( job.getJobTracker() );