Commit Graph
785 Commits
Author SHA1 Message Date
Travis Wellman e90fc2965b Sort script engines alphabetically so that they appear consistently.
Note that the name of the engine may be different than the name of the language
it parses. A good example is the Rhino script engine that parses javascript.
2012-01-26 00:37:19 -08:00
Noah Levitt a652a9afd0 * profile-crawler-beans.cxml
commented-out default value for new CandidatesProcessor settings processErrorOutlinks
2012-01-20 11:30:24 -08:00
Noah Levitt 4e05c89156 Merge branch 'master' of github.com:internetarchive/heritrix3 2012-01-19 13:41:14 -08:00
Noah Levitt 803f9ca979 HER-1984 save script state - implement by adding a map to the application context for arbitrary use, and make sure the app context is available in all scripting environments
* PathSharingContext.java
    new member variable ConcurrentHashMap data and accessor getData()
* ScriptedProcessor.java, ScriptedDecideRule.java
    make appCtx available to scripts; also remove unused member sharedMap
* ActionDirectory.java
    formatting fix
2012-01-19 13:31:57 -08:00
gojomo 20502f54d5 add processErrorOutlinks setting to CandidatesProcessor
default false is old behavior, skip candidates-handling of outlinks from response codes <200 and >=400
if true, these outlinks will be treated the same as others (get scope-tested and enqueued)
2012-01-18 01:23:26 -08:00
Noah Levitt 55ec01c4e4 Fix for HER-1983 mangled dns records in w/arcs
* FetchDNS.java
    recordDNS() - use local variable for dummy read buffer, instead of member variable that was shared among threads, since RecordingInputStream.read() used the passed buffer as a work area
2012-01-11 14:38:57 -08:00
gojomo d3ea17baf5 [HER-1976] query-portion ignored when checking against robots.txt rules
(using only path)
(RobotsPolicyTest) added for case that failed pre-fix
(RobotsTxtTest) added case similar to problem (but was already OK at
RobotsTxt level)
(RobotsPolicy, *RobotsPolicy) rename method to reflect new behavior
2012-01-05 23:37:00 -08:00
gojomo 4829160c84 [HER-1981] H3: overlay setting of alternate queue-precedence (via
BaseQueuePrecedencePolicy.basePrecedence) doesn't stick
(CrawlURI) don't null overlayNames in processingCleanup
(WorkQueueFrontier) move queue precedence recalc to only in handleQueue,
not all (post-wake) reenqueues
2012-01-05 23:01:54 -08:00
Gordon Mohr 4ffb6865e1 [HER-1976] H3: query-portion ignored when checking against robots.txt rules (using only path)
* RobotsPolicy.java: use UURI.getPathQuery -- like H1 does
2011-12-22 19:04:19 -08:00
Noah Levitt a4380db177 .classpath
remove unusued, unneeded dependency asm-3.2.jar, see http://tech.groups.yahoo.com/group/archive-crawler/message/7384
2011-11-03 16:15:20 -07:00
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