From c17a31a21d342ddc4349417557bc8b63aba0ba07 Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Sun, 8 Sep 2013 21:09:49 +0800 Subject: [PATCH] fix null pointe exception #26 --- .../webmagic/selector/BaseElementSelector.java | 14 +++++++++++--- .../webmagic/model/PageModelExtractor.java | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/selector/BaseElementSelector.java b/webmagic-core/src/main/java/us/codecraft/webmagic/selector/BaseElementSelector.java index e313f24..7d9035f 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/selector/BaseElementSelector.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/selector/BaseElementSelector.java @@ -2,22 +2,30 @@ package us.codecraft.webmagic.selector; import org.jsoup.Jsoup; +import java.util.ArrayList; import java.util.List; /** * @author code4crafter@gmail.com * @since 0.3.0 */ -public abstract class BaseElementSelector implements Selector,ElementSelector { +public abstract class BaseElementSelector implements Selector, ElementSelector { @Override public String select(String text) { - return select(Jsoup.parse(text)); + if (text != null) { + return select(Jsoup.parse(text)); + } + return null; } @Override public List selectList(String text) { - return selectList(Jsoup.parse(text)); + if (text != null) { + return selectList(Jsoup.parse(text)); + } else { + return new ArrayList(); + } } } diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java index 03cd3a3..54d942c 100644 --- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java +++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java @@ -184,7 +184,7 @@ class PageModelExtractor { return null; } if (objectExtractor == null) { - return processSingle(page, null, false); + return processSingle(page, null, true); } else { if (objectExtractor.multi) { List os = new ArrayList();