Skip to content

Commit 5db5cf0

Browse files
committed
---
yaml --- r: 587 b: refs/heads/travis c: b5bef9f h: refs/heads/master i: 585: f8c9733 583: b9e07c1 v: v3
1 parent a510042 commit 5db5cf0

31 files changed

Lines changed: 440 additions & 211 deletions

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
---
22
refs/heads/master: 92537786d4fa0a9fb51215f27d3d0581f4fe3a65
3-
refs/heads/travis: b013f477462aceab09a0fc16d89915ba389abf36
3+
refs/heads/travis: b5bef9f00ef96dc9f98e365579edd3da05957b74
44
refs/heads/gh-pages: 2cc964c1ecc5d653c449b81ee9e924182b221d18

branches/travis/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/target/
22
.settings
33
.idea
4+
.DS_Store
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<FindBugsFilter>
2+
</FindBugsFilter>

branches/travis/git-demo.iml

Lines changed: 200 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
1111
<excludeFolder url="file://$MODULE_DIR$/target" />
1212
</content>
13-
<orderEntry type="inheritedJdk" />
13+
<orderEntry type="jdk" jdkName="1.7 (1)" jdkType="JavaSDK" />
1414
<orderEntry type="sourceFolder" forTests="false" />
1515
<orderEntry type="library" name="Maven: com.google.http-client:google-http-client:1.19.0" level="project" />
1616
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
@@ -45,4 +45,203 @@
4545
<orderEntry type="library" scope="TEST" name="Maven: cglib:cglib-nodep:3.1" level="project" />
4646
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
4747
</component>
48+
<component name="org.twodividedbyzero.idea.findbugs">
49+
<option name="_basePreferences">
50+
<map>
51+
<entry key="property.analysisEffortLevel" value="default" />
52+
<entry key="property.analyzeAfterCompile" value="false" />
53+
<entry key="property.annotationGutterIconEnabled" value="true" />
54+
<entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
55+
<entry key="property.annotationTextRangeMarkupEnabled" value="true" />
56+
<entry key="property.exportAsHtml" value="true" />
57+
<entry key="property.exportAsXml" value="true" />
58+
<entry key="property.exportBaseDir" value="" />
59+
<entry key="property.exportCreateArchiveDir" value="false" />
60+
<entry key="property.exportOpenBrowser" value="true" />
61+
<entry key="property.minPriorityToReport" value="Medium" />
62+
<entry key="property.runAnalysisInBackground" value="false" />
63+
<entry key="property.showHiddenDetectors" value="false" />
64+
<entry key="property.toolWindowToFront" value="true" />
65+
</map>
66+
</option>
67+
<option name="_detectors">
68+
<map>
69+
<entry key="AppendingToAnObjectOutputStream" value="true" />
70+
<entry key="AtomicityProblem" value="true" />
71+
<entry key="BadAppletConstructor" value="false" />
72+
<entry key="BadResultSetAccess" value="true" />
73+
<entry key="BadSyntaxForRegularExpression" value="true" />
74+
<entry key="BadUseOfReturnValue" value="true" />
75+
<entry key="BadlyOverriddenAdapter" value="true" />
76+
<entry key="BooleanReturnNull" value="true" />
77+
<entry key="BuildInterproceduralCallGraph" value="false" />
78+
<entry key="BuildObligationPolicyDatabase" value="true" />
79+
<entry key="BuildStringPassthruGraph" value="true" />
80+
<entry key="CallToUnsupportedMethod" value="false" />
81+
<entry key="CalledMethods" value="true" />
82+
<entry key="CheckCalls" value="false" />
83+
<entry key="CheckExpectedWarnings" value="false" />
84+
<entry key="CheckImmutableAnnotation" value="true" />
85+
<entry key="CheckRelaxingNullnessAnnotation" value="true" />
86+
<entry key="CheckTypeQualifiers" value="true" />
87+
<entry key="CloneIdiom" value="true" />
88+
<entry key="ComparatorIdiom" value="true" />
89+
<entry key="ConfusedInheritance" value="true" />
90+
<entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
91+
<entry key="CrossSiteScripting" value="true" />
92+
<entry key="DefaultEncodingDetector" value="true" />
93+
<entry key="DoInsideDoPrivileged" value="true" />
94+
<entry key="DontCatchIllegalMonitorStateException" value="true" />
95+
<entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
96+
<entry key="DontUseEnum" value="true" />
97+
<entry key="DroppedException" value="true" />
98+
<entry key="DumbMethodInvocations" value="true" />
99+
<entry key="DumbMethods" value="true" />
100+
<entry key="DuplicateBranches" value="true" />
101+
<entry key="EmptyZipFileEntry" value="false" />
102+
<entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
103+
<entry key="ExplicitSerialization" value="true" />
104+
<entry key="FieldItemSummary" value="true" />
105+
<entry key="FinalizerNullsFields" value="true" />
106+
<entry key="FindBadCast2" value="true" />
107+
<entry key="FindBadForLoop" value="true" />
108+
<entry key="FindBugsSummaryStats" value="true" />
109+
<entry key="FindCircularDependencies" value="false" />
110+
<entry key="FindDeadLocalStores" value="true" />
111+
<entry key="FindDoubleCheck" value="true" />
112+
<entry key="FindEmptySynchronizedBlock" value="true" />
113+
<entry key="FindFieldSelfAssignment" value="true" />
114+
<entry key="FindFinalizeInvocations" value="true" />
115+
<entry key="FindFloatEquality" value="true" />
116+
<entry key="FindFloatMath" value="false" />
117+
<entry key="FindHEmismatch" value="true" />
118+
<entry key="FindInconsistentSync2" value="true" />
119+
<entry key="FindJSR166LockMonitorenter" value="true" />
120+
<entry key="FindLocalSelfAssignment2" value="true" />
121+
<entry key="FindMaskedFields" value="true" />
122+
<entry key="FindMismatchedWaitOrNotify" value="true" />
123+
<entry key="FindNakedNotify" value="true" />
124+
<entry key="FindNoSideEffectMethods" value="true" />
125+
<entry key="FindNonSerializableStoreIntoSession" value="false" />
126+
<entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
127+
<entry key="FindNonShortCircuit" value="true" />
128+
<entry key="FindNullDeref" value="true" />
129+
<entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
130+
<entry key="FindOpenStream" value="true" />
131+
<entry key="FindPuzzlers" value="true" />
132+
<entry key="FindRefComparison" value="true" />
133+
<entry key="FindReturnRef" value="true" />
134+
<entry key="FindRoughConstants" value="true" />
135+
<entry key="FindRunInvocations" value="true" />
136+
<entry key="FindSelfComparison" value="true" />
137+
<entry key="FindSelfComparison2" value="true" />
138+
<entry key="FindSleepWithLockHeld" value="true" />
139+
<entry key="FindSpinLoop" value="true" />
140+
<entry key="FindSqlInjection" value="true" />
141+
<entry key="FindTwoLockWait" value="true" />
142+
<entry key="FindUncalledPrivateMethods" value="true" />
143+
<entry key="FindUnconditionalWait" value="true" />
144+
<entry key="FindUninitializedGet" value="true" />
145+
<entry key="FindUnrelatedTypesInGenericContainer" value="true" />
146+
<entry key="FindUnreleasedLock" value="true" />
147+
<entry key="FindUnsatisfiedObligation" value="true" />
148+
<entry key="FindUnsyncGet" value="true" />
149+
<entry key="FindUseOfNonSerializableValue" value="true" />
150+
<entry key="FindUselessControlFlow" value="true" />
151+
<entry key="FormatStringChecker" value="true" />
152+
<entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
153+
<entry key="HugeSharedStringConstants" value="true" />
154+
<entry key="IDivResultCastToDouble" value="true" />
155+
<entry key="IncompatMask" value="true" />
156+
<entry key="InconsistentAnnotations" value="true" />
157+
<entry key="InefficientIndexOf" value="true" />
158+
<entry key="InefficientInitializationInsideLoop" value="true" />
159+
<entry key="InefficientMemberAccess" value="false" />
160+
<entry key="InefficientToArray" value="true" />
161+
<entry key="InfiniteLoop" value="true" />
162+
<entry key="InfiniteRecursiveLoop" value="true" />
163+
<entry key="InheritanceUnsafeGetResource" value="true" />
164+
<entry key="InitializationChain" value="true" />
165+
<entry key="InitializeNonnullFieldsInConstructor" value="true" />
166+
<entry key="InstantiateStaticClass" value="true" />
167+
<entry key="IntCast2LongAsInstant" value="true" />
168+
<entry key="InvalidJUnitTest" value="true" />
169+
<entry key="IteratorIdioms" value="true" />
170+
<entry key="LazyInit" value="true" />
171+
<entry key="LoadOfKnownNullValue" value="true" />
172+
<entry key="LostLoggerDueToWeakReference" value="true" />
173+
<entry key="MethodReturnCheck" value="true" />
174+
<entry key="Methods" value="true" />
175+
<entry key="MultithreadedInstanceAccess" value="true" />
176+
<entry key="MutableLock" value="true" />
177+
<entry key="MutableStaticFields" value="true" />
178+
<entry key="Naming" value="true" />
179+
<entry key="Noise" value="false" />
180+
<entry key="NoiseNullDeref" value="false" />
181+
<entry key="NoteAnnotationRetention" value="true" />
182+
<entry key="NoteCheckReturnValueAnnotations" value="true" />
183+
<entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
184+
<entry key="NoteJCIPAnnotation" value="true" />
185+
<entry key="NoteNonNullAnnotations" value="false" />
186+
<entry key="NoteNonnullReturnValues" value="false" />
187+
<entry key="NoteSuppressedWarnings" value="true" />
188+
<entry key="NoteUnconditionalParamDerefs" value="true" />
189+
<entry key="NumberConstructor" value="true" />
190+
<entry key="OptionalReturnNull" value="true" />
191+
<entry key="OverridingEqualsNotSymmetrical" value="true" />
192+
<entry key="PreferZeroLengthArrays" value="true" />
193+
<entry key="PublicSemaphores" value="false" />
194+
<entry key="QuestionableBooleanAssignment" value="true" />
195+
<entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
196+
<entry key="ReadReturnShouldBeChecked" value="true" />
197+
<entry key="RedundantInterfaces" value="true" />
198+
<entry key="ReflectiveClasses" value="true" />
199+
<entry key="RepeatedConditionals" value="true" />
200+
<entry key="ResolveAllReferences" value="false" />
201+
<entry key="RuntimeExceptionCapture" value="true" />
202+
<entry key="SerializableIdiom" value="true" />
203+
<entry key="StartInConstructor" value="true" />
204+
<entry key="StaticCalendarDetector" value="true" />
205+
<entry key="StringConcatenation" value="true" />
206+
<entry key="SuperfluousInstanceOf" value="true" />
207+
<entry key="SuspiciousThreadInterrupted" value="true" />
208+
<entry key="SwitchFallthrough" value="true" />
209+
<entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
210+
<entry key="SynchronizeAndNullCheckField" value="true" />
211+
<entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
212+
<entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
213+
<entry key="TestASM" value="false" />
214+
<entry key="TestDataflowAnalysis" value="false" />
215+
<entry key="TestingGround" value="false" />
216+
<entry key="TestingGround2" value="false" />
217+
<entry key="TrainFieldStoreTypes" value="true" />
218+
<entry key="TrainLongInstantfParams" value="true" />
219+
<entry key="TrainNonNullAnnotations" value="true" />
220+
<entry key="TrainUnconditionalDerefParams" value="true" />
221+
<entry key="URLProblems" value="true" />
222+
<entry key="UncallableMethodOfAnonymousClass" value="true" />
223+
<entry key="UnnecessaryMath" value="true" />
224+
<entry key="UnreadFields" value="true" />
225+
<entry key="UselessSubclassMethod" value="false" />
226+
<entry key="VarArgsProblems" value="true" />
227+
<entry key="VolatileUsage" value="true" />
228+
<entry key="WaitInLoop" value="true" />
229+
<entry key="WrongMapIterator" value="true" />
230+
<entry key="XMLFactoryBypass" value="true" />
231+
</map>
232+
</option>
233+
<option name="_reportCategories">
234+
<map>
235+
<entry key="BAD_PRACTICE" value="true" />
236+
<entry key="CORRECTNESS" value="true" />
237+
<entry key="EXPERIMENTAL" value="true" />
238+
<entry key="I18N" value="true" />
239+
<entry key="MALICIOUS_CODE" value="true" />
240+
<entry key="MT_CORRECTNESS" value="true" />
241+
<entry key="PERFORMANCE" value="true" />
242+
<entry key="SECURITY" value="true" />
243+
<entry key="STYLE" value="true" />
244+
</map>
245+
</option>
246+
</component>
48247
</module>

branches/travis/src/main/java/com/google/gcloud/AuthConfig.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ protected HttpRequestInitializer httpRequestInitializer(
5757
}
5858
}
5959

60-
protected abstract HttpRequestInitializer httpRequestInitializer(
61-
HttpTransport transport, Set<String> scopes);
62-
60+
protected abstract HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
61+
Set<String> scopes);
6362

6463
public static AuthConfig createForAppEngine() {
6564
return new AppEngineAuthConfig();
@@ -69,7 +68,8 @@ public static AuthConfig createForComputeEngine() throws IOException, GeneralSec
6968
final ComputeCredential cred = getComputeCredential();
7069
return new AuthConfig() {
7170
@Override
72-
protected HttpRequestInitializer httpRequestInitializer(HttpTransport ts, Set<String> sc) {
71+
protected HttpRequestInitializer httpRequestInitializer(HttpTransport transport,
72+
Set<String> scopes) {
7373
return cred;
7474
}
7575
};

branches/travis/src/main/java/com/google/gcloud/ExceptionHandler.java

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public final class ExceptionHandler implements Serializable {
2727
private final ImmutableList<Interceptor> interceptors;
2828
private final ImmutableSet<Class<? extends Exception>> retriableExceptions;
2929
private final ImmutableSet<Class<? extends Exception>> nonRetriableExceptions;
30-
private final Set<RetryInfo> retryInfos = Sets.newHashSet();
30+
private final Set<RetryInfo> retryInfo = Sets.newHashSet();
3131

3232
public interface Interceptor extends Serializable {
3333

@@ -38,7 +38,7 @@ enum RetryResult {
3838

3939
private final boolean booleanValue;
4040

41-
private RetryResult(boolean booleanValue) {
41+
RetryResult(boolean booleanValue) {
4242
this.booleanValue = booleanValue;
4343
}
4444

@@ -55,7 +55,7 @@ boolean booleanValue() {
5555
* ({@link RetryResult#RETRY}), propagated ({@link RetryResult#ABORT}),
5656
* or evaluation should proceed ({@code null}).
5757
*/
58-
RetryResult shouldRetry(Exception exception);
58+
RetryResult beforeEval(Exception exception);
5959

6060
/**
6161
* This method is called after the evaluation and could alter its result.
@@ -66,7 +66,7 @@ boolean booleanValue() {
6666
* ({@link RetryResult#RETRY}), propagated ({@link RetryResult#ABORT}),
6767
* or evaluation should proceed ({@code null}).
6868
*/
69-
RetryResult shouldRetry(Exception exception, RetryResult retryResult);
69+
RetryResult afterEval(Exception exception, RetryResult retryResult);
7070
}
7171

7272
/**
@@ -173,31 +173,30 @@ private ExceptionHandler(Builder builder) {
173173
Sets.intersection(retriableExceptions, nonRetriableExceptions).isEmpty(),
174174
"Same exception was found in both retriable and non-retriable sets");
175175
for (Class<? extends Exception> exception : retriableExceptions) {
176-
addToRetryInfos(retryInfos, new RetryInfo(exception, Interceptor.RetryResult.RETRY));
176+
addRetryInfo(new RetryInfo(exception, Interceptor.RetryResult.RETRY), retryInfo);
177177
}
178178
for (Class<? extends Exception> exception : nonRetriableExceptions) {
179-
addToRetryInfos(retryInfos, new RetryInfo(exception, Interceptor.RetryResult.ABORT));
179+
addRetryInfo(new RetryInfo(exception, Interceptor.RetryResult.ABORT), retryInfo);
180180
}
181181
}
182182

183-
private static void addToRetryInfos(Set<RetryInfo> retryInfos, RetryInfo retryInfo) {
184-
for (RetryInfo current : retryInfos) {
183+
private static void addRetryInfo(RetryInfo retryInfo, Set<RetryInfo> dest) {
184+
for (RetryInfo current : dest) {
185185
if (current.exception.isAssignableFrom(retryInfo.exception)) {
186-
addToRetryInfos(current.children, retryInfo);
186+
addRetryInfo(retryInfo, current.children);
187187
return;
188188
}
189189
if (retryInfo.exception.isAssignableFrom(current.exception)) {
190190
retryInfo.children.add(current);
191191
}
192192
}
193-
retryInfos.removeAll(retryInfo.children);
194-
retryInfos.add(retryInfo);
193+
dest.removeAll(retryInfo.children);
194+
dest.add(retryInfo);
195195
}
196196

197-
198-
private static RetryInfo findMostSpecificRetryInfo(Set<RetryInfo> retryInfos,
197+
private static RetryInfo findMostSpecificRetryInfo(Set<RetryInfo> retryInfo,
199198
Class<? extends Exception> exception) {
200-
for (RetryInfo current : retryInfos) {
199+
for (RetryInfo current : retryInfo) {
201200
if (current.exception.isAssignableFrom(exception)) {
202201
RetryInfo match = findMostSpecificRetryInfo(current.children, exception);
203202
return match == null ? current : match;
@@ -223,10 +222,10 @@ void verifyCaller(Callable<?> callable) {
223222
Method callMethod = getCallableMethod(callable.getClass());
224223
for (Class<?> exceptionOrError : callMethod.getExceptionTypes()) {
225224
Preconditions.checkArgument(Exception.class.isAssignableFrom(exceptionOrError),
226-
"Callable method exceptions must be dervied from Exception");
225+
"Callable method exceptions must be derived from Exception");
227226
@SuppressWarnings("unchecked") Class<? extends Exception> exception =
228227
(Class<? extends Exception>) exceptionOrError;
229-
Preconditions.checkArgument(findMostSpecificRetryInfo(retryInfos, exception) != null,
228+
Preconditions.checkArgument(findMostSpecificRetryInfo(retryInfo, exception) != null,
230229
"Declared exception '" + exception + "' is not covered by exception handler");
231230
}
232231
}
@@ -241,16 +240,16 @@ public Set<Class<? extends Exception>> getNonRetriableExceptions() {
241240

242241
boolean shouldRetry(Exception ex) {
243242
for (Interceptor interceptor : interceptors) {
244-
Interceptor.RetryResult retryResult = interceptor.shouldRetry(ex);
243+
Interceptor.RetryResult retryResult = interceptor.beforeEval(ex);
245244
if (retryResult != null) {
246245
return retryResult.booleanValue();
247246
}
248247
}
249-
RetryInfo retryInfo = findMostSpecificRetryInfo(retryInfos, ex.getClass());
248+
RetryInfo retryInfo = findMostSpecificRetryInfo(this.retryInfo, ex.getClass());
250249
Interceptor.RetryResult retryResult =
251250
retryInfo == null ? Interceptor.RetryResult.ABORT : retryInfo.retry;
252251
for (Interceptor interceptor : interceptors) {
253-
retryResult = firstNonNull(interceptor.shouldRetry(ex, retryResult), retryResult);
252+
retryResult = firstNonNull(interceptor.afterEval(ex, retryResult), retryResult);
254253
}
255254
return retryResult.booleanValue();
256255
}

0 commit comments

Comments
 (0)