Skip to content

Commit 6826c87

Browse files
authored
Merge pull request #28 from zenuo/fix_npe
Fix npe
2 parents bb176ce + 12fd8e5 commit 6826c87

File tree

7 files changed

+62
-66
lines changed

7 files changed

+62
-66
lines changed

gogo-server/pom.xml

+19-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>zenuo</groupId>
88
<artifactId>gogo</artifactId>
9-
<version>1.7.6</version>
9+
<version>1.7.7</version>
1010

1111
<packaging>jar</packaging>
1212

@@ -57,9 +57,24 @@
5757
<version>1.12.1</version>
5858
</dependency>
5959
<dependency>
60-
<groupId>ch.qos.logback</groupId>
61-
<artifactId>logback-classic</artifactId>
62-
<version>1.2.3</version>
60+
<groupId>com.lmax</groupId>
61+
<artifactId>disruptor</artifactId>
62+
<version>3.4.2</version>
63+
</dependency>
64+
<dependency>
65+
<groupId>org.apache.logging.log4j</groupId>
66+
<artifactId>log4j-slf4j18-impl</artifactId>
67+
<version>2.14.0</version>
68+
</dependency>
69+
<dependency>
70+
<groupId>org.apache.logging.log4j</groupId>
71+
<artifactId>log4j-api</artifactId>
72+
<version>2.14.0</version>
73+
</dependency>
74+
<dependency>
75+
<groupId>org.apache.logging.log4j</groupId>
76+
<artifactId>log4j-core</artifactId>
77+
<version>2.14.0</version>
6378
</dependency>
6479
<dependency>
6580
<groupId>com.fasterxml.jackson.core</groupId>

gogo-server/src/main/java/zenuo/gogo/core/processor/impl/GoogleSearchResultProviderImpl.java

+3-15
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,9 @@ public int priority() {
4545

4646
@Override
4747
public SearchResponse search(String key, int page) throws SearchException {
48-
return search0(key, page);
49-
}
50-
51-
/**
52-
* Get entries of google search0 result
53-
*
54-
* @param key keyword
55-
* @param page page number
56-
* @return entries if succeed, null otherwise
57-
*/
58-
SearchResponse search0(String key, int page) throws SearchException {
59-
//builder
6048
final SearchResponse.SearchResponseBuilder builder = SearchResponse.builder();
6149
builder.key(key);
6250
builder.page(page);
63-
//document
6451
final Document document;
6552
try {
6653
document = httpGet(key, page);
@@ -69,8 +56,9 @@ SearchResponse search0(String key, int page) throws SearchException {
6956
log.error(message, e);
7057
throw new SearchException(message, e);
7158
}
72-
final Elements webResults = document.getElementsByClass("rc");
59+
final Elements webResults = document.getElementsByClass("g");
7360
if (webResults.isEmpty()) {
61+
log.error("pattern changed");
7462
return patternChanged(builder);
7563
}
7664
final List<Entry> entries = new ArrayList<>();
@@ -79,7 +67,7 @@ SearchResponse search0(String key, int page) throws SearchException {
7967
//entry builder
8068
final Entry.EntryBuilder entryBuilder = Entry.builder();
8169
//name
82-
final Element name = result.getElementsByClass("LC20lb").first();
70+
final Element name = result.getElementsByClass("LC20lb DKV0Md").first();
8371
if (name == null) {
8472
continue;
8573
}

gogo-server/src/main/java/zenuo/gogo/core/processor/impl/SearchProcessorImpl.java

+4-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import zenuo.gogo.core.ResponseType;
99
import zenuo.gogo.core.processor.ISearchProcessor;
1010
import zenuo.gogo.core.processor.ISearchResultProvider;
11-
import zenuo.gogo.exception.SearchException;
1211
import zenuo.gogo.model.SearchResponse;
1312
import zenuo.gogo.service.ICacheService;
1413
import zenuo.gogo.util.JsonUtils;
@@ -49,12 +48,10 @@ public void process(ChannelHandlerContext ctx, FullHttpRequest request, QueryStr
4948
HttpResponseStatus.BAD_REQUEST);
5049
} else {
5150
final List<String> pages = decoder.parameters().get("p");
52-
//根据优先级调用提供者
5351
final String key = keys.get(0);
5452
final int page = pages == null || "".equals(pages.get(0)) ? 1 : Integer.parseInt(pages.get(0));
5553

5654
SearchResponse response = null;
57-
SearchException searchException = null;
5855

5956
if (page < 1) {
6057
response = SearchResponse.builder().error("page must be greater than zero!")
@@ -75,9 +72,8 @@ public void process(ChannelHandlerContext ctx, FullHttpRequest request, QueryStr
7572
// if response entries is not empty
7673
break;
7774
}
78-
} catch (SearchException e) {
79-
//忽略
80-
searchException = e;
75+
} catch (Exception e) {
76+
log.error("exception {}", srp, e);
8177
}
8278
}
8379
// cache
@@ -91,8 +87,8 @@ public void process(ChannelHandlerContext ctx, FullHttpRequest request, QueryStr
9187
response(ctx,
9288
request,
9389
responseType,
94-
responseType == ResponseType.API ? ("{\"error\": \"" + searchException.getMessage() + "\"}").getBytes(StandardCharsets.UTF_8)
95-
: resultPageBuilder.build(SearchResponse.builder().key(key).error(searchException.getMessage()).build()),
90+
responseType == ResponseType.API ? ("{\"error\": \"try again later\"}").getBytes(StandardCharsets.UTF_8)
91+
: resultPageBuilder.build(SearchResponse.builder().key(key).error("try again later").build()),
9692
HttpResponseStatus.OK);
9793

9894
} else {
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
zenuo.gogo.core.processor.impl.GoogleSearchResultProviderImpl
2-
zenuo.gogo.core.processor.impl.StartPageSearchResultProviderImpl
2+
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Configuration status="WARN">
3+
<Properties>
4+
<property name="PATTERN">%d [%t] %-5level %logger{36} - %msg%n</property>
5+
<Property name="filename">./log/gogo.log</Property>
6+
</Properties>
7+
8+
<Appenders>
9+
<Console name="Console" target="SYSTEM_OUT">
10+
<PatternLayout pattern="${PATTERN}"/>
11+
</Console>
12+
13+
<RollingRandomAccessFile name="File" filePattern="${filename}.%d.log.gz">
14+
<PatternLayout pattern="${PATTERN}"/>
15+
<Policies>
16+
<TimeBasedTriggeringPolicy />
17+
</Policies>
18+
</RollingRandomAccessFile>
19+
</Appenders>
20+
21+
<Loggers>
22+
<Root level="INFO">
23+
<AppenderRef ref="Console"/>
24+
<AppenderRef ref="File"/>
25+
</Root>
26+
27+
<AsyncLogger name="gogo" additivity="false">
28+
<AppenderRef ref="Console"/>
29+
<AppenderRef ref="File"/>
30+
</AsyncLogger>
31+
</Loggers>
32+
33+
</Configuration>

gogo-server/src/main/resources/logback.xml

-36
This file was deleted.

gogo-server/src/test/java/zenuo/gogo/core/processor/impl/GoogleSearchResultProviderImplTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ public void request() throws IOException {
2828

2929
@Test
3030
public void search() throws SearchException {
31-
final SearchResponse response = searchResultProvider.search0("udp", 1);
31+
final SearchResponse response = searchResultProvider.search("udp", 1);
3232
if (response.getEntries().isPresent()) {
3333
response.getEntries().get().forEach(e -> System.out.println(e.getName()));
3434
}
3535
}
3636

3737
@Test
3838
public void response() throws SearchException {
39-
final SearchResponse searchResponse = searchResultProvider.search0("udp", 2);
39+
final SearchResponse searchResponse = searchResultProvider.search("udp", 2);
4040
final byte[] json = JsonUtils.toJsonBytes(searchResponse);
4141
System.out.println(Arrays.toString(json));
4242
}

0 commit comments

Comments
 (0)