Commit Graph
775 Commits
Author SHA1 Message Date
Noah Levitt abda8a01fb HER-1963 Unvisited hosts being written twice into H3-generated hosts-report.txt
* HostsReport.java
    write() - remove obsolete code described by this no longer correct comment - "StatisticsTracker doesn't know of zero-completion hosts; so supplement report with those entries from host cache" - StatisticsTracker does know of zero-completion hosts
2011-11-02 13:01:40 -07:00
Noah Levitt dff143b301 HER-1964 record whois server ip address in warc
* FetchWhois.java
    fetch() - record server ip address in CrawlURI attributes list
* CoreAttributeConstants.java
    new string constant A_WHOIS_SERVER_IP, key for whois server ip address CrawlURI attribute
* WARCWriterProcessor.java
    writeWhoisRecords() - include warc header WARC-IP-Address
2011-11-01 16:57:22 -07:00
Noah Levitt 48434a6293 Merge branch 'master' of github.com:internetarchive/heritrix3 2011-11-01 16:56:43 -07:00
Noah Levitt 450a4c44c4 * CrawlURI.java markPrerequisite() - call setPrerequisite(true) on the prerequisite CrawlURI 2011-10-28 10:03:14 -07:00
Noah Levitt 264d3c6f5f * CrawlURI.java
markPrerequisite() - call setPrerequisite(true) on the prerequisite CrawlURI
2011-10-28 09:55:55 -07:00
Noah Levitt 995133dc40 Fix for HER-1962 NPE from missing sheet
* SheetOverlaysManager.java
    getOverlayMap(String) - return null if sheet missing instead of triggering npe
* KeyedProperties.java
    get(String) - check for null return value from getOverlayMap() and log warning
2011-10-27 10:40:30 -07:00
Noah Levitt 9b418bbb76 * LICENSE.txt
revert previous commit - we still distribute jars and licenses in the binary distribution (duh)
2011-10-21 23:10:25 -07:00
Noah Levitt 239f616c17 * **/.gitignore
dummy files to make git keep these directories which are expected by unit tests
2011-10-21 22:40:44 -07:00
Noah Levitt 23028ccab1 * dist/LICENSE.txt
remove clause about lib/ directory, which doesn't apply to h3 (XXX replace with something about maven downloading dependencies?)
2011-10-21 22:39:22 -07:00
Noah Levitt e8cdfcd82f * README.txt
symlink to dist/README.txt just to have one in the root of the project
2011-10-21 15:56:33 -07:00
Noah Levitt 31edae9753 * .classpath
source jar for commons-cli
2011-10-21 15:43:21 -07:00
nlevitt 5735839252 Post 3.1.0
* **/pom.xml
   switch version to "3.1.1-SNAPSHOT"
2011-10-21 19:00:37 +00:00
nlevitt 8c99fc947c Prep for 3.1.0 release
* **/pom.xml
    bump version-id to "3.1.0"
* README.txt
    refer to exactly 3.1.0 release notes
2011-10-21 17:08:04 +00:00
nlevitt e8d4ec73c7 * bin/heritrix
when starting in background, make better effort to write pid to $HERITRIX_HOME/heritrix.pid on successful start, plus this change:
     -    echo -n "`date` Starting heritrix"
     +    echo -n "`date` Heritrix starting (pid $HERITRIX_PID)"
2011-10-21 16:54:40 +00:00
nlevitt e9a96ebc12 * profile-crawler-beans.cxml
commented-out ReschedulingProcessor
2011-10-21 01:20:32 +00:00
nlevitt db049be78d * logging.properties
revert unintentional changes
2011-10-21 00:52:55 +00:00
nlevitt d96e086eeb * logging.properties
fix typo
2011-10-21 00:48:20 +00:00
nlevitt 32680b8f73 Fix for HER-1960 kryo buffer can hog memory, lead to oome (bug report, patch from Kenji)
* KryoBinding.java
    wrap ObjectBuffers with WeakReference so that can be garbage collected if necessary (when recreated they'll be back at the default size of 16k)
2011-10-20 02:21:54 +00:00
nlevitt 351a89c5a9 Fix java.lang.IllegalArgumentException from CharBuffer.allocate() in GenericReplayCharSequence.decode()
Reported by Kenji who says, "My guess is that root cause is Recorder.calcRecommendedCharBufferSize():
    return Math.min(inStream.getRecordedBufferLength()/2,(int)inStream.getSize());
    URL above returns HTML larger than 5GB (infinite smileys!! what the heck), and (int)intStream.getSize() became negative."
* Recorder.java
    -        return Math.min(inStream.getRecordedBufferLength()/2,(int)inStream.getSize());
    +        return (int) Math.min(inStream.getRecordedBufferLength()/2, inStream.getSize());
2011-10-13 15:47:02 +00:00
nlevitt 9fb7b0f5ae Fix for HER-1958 race condition on frontier inactive queues
* WorkQueueFrontier.java
    activateInactiveQueue(), deactivateQueue() - synchronize around updates of inactiveQueuesByPrecedence and highestPrecedenceWaiting
2011-10-13 01:47:25 +00:00
nlevitt 189a557af8 Tweak of last checkin
* Heritrix.java
    instanceMain() - move logging of java vendor/version ahead of version check, since the information could be particularly helpful when version check doesn't pass
2011-10-12 18:32:14 +00:00
nlevitt 61240573b3 * Heritrix.java
instanceMain() - log java vendor, version at startup
2011-10-12 18:20:27 +00:00
nlevitt a09c8e69b8 * Recorder.java
remove TODOs that have already been done
2011-10-12 17:52:45 +00:00
nlevitt 73e6d21fd2 * profile-crawler-beans.cxml
fix small typo
2011-10-12 17:49:34 +00:00
nlevitt 270faa30c8 Remove empty java package directories. 2011-10-12 17:46:44 +00:00
nlevitt 10b3686ba8 Fix race condition which can happen with multiple concurrent "launch"es - can end up with duplicate ToePools like before r7268, probably other problems
* CrawlJob.java
    launch() - synchronize this method - sort of a blunt fix but probably safest and shouldn't affect performance
2011-10-07 23:18:43 +00:00
nlevitt 19e94f07d1 Fix race condition encountered by Travis and Adam where two ToeThread pools are created, one on "launch" and one on "unpause"
* CrawlController.java
    requestCrawlResume() - do not create ToePool (creation here appeared to be inherited cruft), paused crawl must already have toe pool
2011-10-07 01:54:29 +00:00
nlevitt b4e6f43052 Unset script engine variables after scripts complete, allowing memory to be freed up sooner - see also r7252
* ScriptResource.java, ActionDirectory.java, ScriptedDecideRule.java
2011-10-06 18:01:01 +00:00
nlevitt b898d55cea Certain invalid "Crawl-delay" values, e.g. "/", in robots.txt cause split() to return empty string, resulting in ArrayIndexOutOfBoundsException - reported by John Lekashman
* Robotstxt.java
    initializeFromReader() - catch ArrayIndexOutOfBoundsException and ignore -- matches existing handling of other invalid crawl-delay values (catch NumberFormatException and ignore)
2011-10-06 17:20:13 +00:00
nlevitt a76f9818f9 Fix HER-1955 Some annoying interaction between new creation of latest link and disk full java bean
* DiskSpaceMonitor.java
    checkAvailableSpace() - really do ignore non-existent paths, as comment and log message claim is done
2011-09-30 20:07:15 +00:00
nlevitt c5de0048d1 "Fix" for HER-1951 ExtractorJS produces many false positives
* UriUtils.java
    isLikelyFalsePositive() - check for unusual characters, likely mimetypes, and a couple of other common traps
* UriUtilsTest.java
    add some tests for this code
2011-09-30 00:48:00 +00:00
nlevitt a577f1eb0b * PathSharingContext.java
start() - restore this override to call initLaunchDir() (how did I miss that), then super.start()
2011-09-29 23:12:26 +00:00
nlevitt 1390024902 * BdbModuleTest.java
testDoCheckpoint() - call BdbModule.destroy() in addition to stop() to close resources
2011-09-29 21:37:34 +00:00
nlevitt e88d1d9df7 CrawlController FINISHED doesn't guarantee we're ready for shutdown, so add new boolean and event for that purpose.
Elaboration: CrawlJob needs all beans to receive FINISHED event before teardown. Can't easily guarantee CrawlJob receives the event last. Actually, spring provides a way, org.springframework.core.Ordered, but to make a bean receive events last, *every other bean* must implement Ordered. So this way is simpler.
* CrawlController.java
    new member variable isStopComplete and event StopCompleteEvent 
* CrawlJob.java
    rely on cc.isStopComplete() or StopCompleteEvent to indicate ready for teardown
2011-09-29 17:22:34 +00:00
nlevitt de9975ee23 * CrawlJob.java
instantiateContainer() - do not call teardown() on exception from ac.refresh() - can throw IllegalStateException
    teardown() - put all uses of variable cc inside not-null check
2011-09-29 16:09:44 +00:00
nlevitt 747fbc0a0f Fix for HER-1954 bdb closed at crawl finish instead of teardown -- refactor crawl finish and teardown
* PathSharingContext.java
    start(), doStart(), stop(), doStop() - remove these overloaded methods, because the spring bug they were working around seems to be fixed, not seeing any problems with cyclical dependencies - might be this one https://jira.springsource.org/browse/SPR-7266
    doClose() - remove because superclass version seems to work fine (this method generally wasn't being called anyway, though it would be now with other changes in this checkin)
* CrawlJob.java
    refactor teardown to call close() on the ApplicationContext, which calls destroy() on any beans that implement DisposableBean - this is now the way to have beans do stuff at teardown
* CrawlController.java
    send FINISHED crawl state event after calling appCtx.stop() so that isFinished() can indicate ready-ness for teardown
* BdbModule.java
    move close() to teardown, i.e. implementation of DisposableBean.destroy(); remove shutdown hook and rely on teardown; related tweaks
* WorkQueueFrontier.java, CrawlerLoggerModule.java, BdbUriUniqFilter.java
    move close() to teardown
* CrawlMapper.java, AbstractFrontier.java, PreloadedUriPrecedencePolicy.java, FetchWhois.java, FetchHTTP.java, PersistLogProcessor.java, WriterPoolProcessor.java
    add comments about cleanup that maybe should wait until teardown
* UriUniqFilter.java
    remove incorrect(?) comment
2011-09-29 00:39:55 +00:00
nlevitt de856f10a6 Fix possible memory leak (encountered in h1, see r7255)
* ToeThread.java
    run() - set local variable curi=null when finished with it, because the jvm seems to be holding on to it even after the containing block is finished
2011-09-28 00:22:53 +00:00
nlevitt f704ca5bc7 Fix HER-1953 all api xml elements are camelcase except sizeTotalsReport fields
* CrawledBytesHistotable.java
    camelcase notModified, dupByHash, notModifiedCount, dupByHashCount, novelCount
* CrawlJob.java
    sizeTotalsReportData() - camelcase totalCount
2011-09-28 00:19:44 +00:00
nlevitt 6adc3c285f * Heritrix.java
usage()
        -        out.print("Your arguments were: "+StringUtils.join(args, ' '));
        +        out.println("Your arguments were: "+StringUtils.join(args, ' '));
2011-09-27 04:08:58 +00:00
nlevitt f242522efc Fix for HER-1950 URIAuthorityBasedQueueAssignmentPolicy KeyedProperties shadows superclass QueueAssignmentPolicy KeyedProperties, breaking sheet overlay of properties defined in superclass
* URIAuthorityBasedQueueAssignmentPolicy.java
    remove field kp, accessor getKeyedProperties(); instead inherit these from superclass QueueAssignmentPolicy
2011-09-20 23:52:59 +00:00
nlevitt 54aca17757 Removing very old abandoned line of development, package org.archive.extractor 2011-09-14 21:34:26 +00:00
nlevitt 12411395a8 * ScriptedProcessor.java
innerProcess() - unset engine variable "curi" after script completes, allowing its memory to be freed up sooner
2011-09-14 02:30:02 +00:00
nlevitt 4eef2d9902 Revert change in r7240 - different return type makes recovery from checkpoints from before the change fail
* CrawlController.java
    getState() - return Object
2011-09-13 00:48:06 +00:00
nlevitt 5a4e72d902 Couple of synchronizations for HER-1943 WorkQueue: inconsistent synchronization using fields active, lastCost, peekItem, wakeTime
* WorkQueue.java
    considerActive(), unpeek() - make synchronized
2011-09-12 22:49:32 +00:00
nlevitt 48b0ddfb03 Fix for HER-1942 CheckpointService: inconsistent synchronization around use of isRunning. Doubtful if isRunning thing is a real problem, but it looks like a good idea to synchronize this method anyway, in case there are concurrent calls to it.
* CheckpointService.java
    setRecoveryCheckpointByName() - mark synchronized
2011-09-12 22:00:54 +00:00
nlevitt 5934e10073 Fix for HER-1939 ScriptedDecideRule: field sharedEngine non-transient and non-serializable.
* ScriptedDecideRule.java
    make field sharedEngine transient
2011-09-12 21:48:27 +00:00
nlevitt f20b3eee30 Fix HER-1935 Many calls to File.mkdirs() and other file/dir methods don't check the return value. Also fix bug where pointless empty directories were created in scratch dir.
* BasicProfileTest.java, SelfTestBase.java, CrawlControllerTest.java, PrecedenceLoader.java, MigrateH1to3Tool.java, CrawlerLoggerModule.java, StatisticsTracker.java, CheckpointUtils.java, BdbUriUniqFilter.java, ARCWriterProcessorTest.java, WARCWriterProcessorTest.java, PersistProcessor.java, WriterPoolProcessor.java, PrefixFinderTest.java, StoredQueueTest.java, FileUtilsTest.java, ObjectIdentityBdbManualCacheTest.java, ObjectIdentityBdbCacheTest.java, ObjectPlusFilesOutputStream.java, TestUtils.java, TmpDirTestCase.java, Engine.java
    Replace calls to File.mkdirs() with FileUtils.ensureWriteableDirectory(dir). In these cases the calls were either already in a spot where the possible IOException would be handled appropriately, or the line was trivially moved into such a block.
* ActionDirectory.java, Engine.java
    replace calls to File.mkdirs() with FileUtils.ensureWriteableDirectory(dir), and throw IllegalStateException on failure
* BdbModule.java
    setup() - replace call to File.mkdirs() with FileUtils.ensureWriteableDirectory(dir) and add "throws IOException" - conveniently the place where this method is called was already in a try block that catches IOException
* Checkpoint.java
    generateFrom() - replace call to File.mkdirs() with FileUtils.ensureWriteableDirectory(dir) and add "throws IOException"
* CheckpointService.java
    move call to Checkpoint.generateFrom() inside existing try block since it now can throw IOException
* Recorder.java
    ensure(File) - replace call to File.mkdirs() with FileUtils.ensureWriteableDirectory(dir), and throw IllegalStateException on failure
    new Recorder(File,String,int,int) - call ensure() on the correct object, the containing directory; and remove redundant call to ensure()
2011-09-12 20:12:10 +00:00
nlevitt f7cc187b09 * ANVLRecord.java
remove accidentally committed test code
2011-09-12 18:22:55 +00:00
nlevitt d2306fced6 Fix for HER-1934 ANVLRecord: clone() method does not call super.clone()
* ANVLRecord.java
    clone() - return (ANVLRecord) super.clone() - this does the right thing
2011-09-12 18:21:21 +00:00
nlevitt 0a28717500 Fix for HER-1922 ThreadLocalHttpConnectionManager: possible memory leak due to non-static inner class.
* ThreadLocalHttpConnectionManager.java
    make nested class ConnectionInfo static so it doesn't reference instance of containing class
2011-09-12 17:53:25 +00:00