- Jul 15, 2014
-
-
Jesse Glick authored
Correcting change made in #1176, which introduced an NPE, to restore original logic merely wrapped in a synchronized block. Reproduced NPE in new functional test (original bug probably very hard to reproduce).
-
Jesse Glick authored
-
Jesse Glick authored
-
Jesse Glick authored
[JENKINS-14749] Suppress warnings about expected exception from prototype.js#HAS_EXTENDED_CREATE_ELEMENT_SYNTAX.
-
Jesse Glick authored
[JENKINS-14749] Temporarily work around CSS errors by just suppressing the warnings until they can be fixed.
-
Jesse Glick authored
-
Jesse Glick authored
The JNLP port is not interesting enough to warrant logging at INFO during every startup, including the vast majority of functional tests which do not even use JNLP slaves.
-
Jesse Glick authored
-
Jesse Glick authored
-
- Jul 14, 2014
-
-
Jesse Glick authored
-
tfennelly authored
-
tfennelly authored
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
-
- Jul 13, 2014
-
-
Fernando Boaglio authored
-
- Jul 12, 2014
-
-
Daniel Beck authored
updated German translation
-
Daniel Beck authored
-
Daniel Beck authored
-
Kohsuke Kawaguchi authored
I think this is an oversight in bded790f. A random attacker wouldn't know the correct API token value, so given that it matched, I think the caller should know that it was the impersonation that failed, not the authentication. Also log this at a higher level, since this indicates a problem in SecurityRealm.
-
Kohsuke Kawaguchi authored
-
Daniel Beck authored
[FIXED JENKINS-17667] - Syncronization of InstallerTranslator::getToolHome()
-
Daniel Beck authored
Fix changelog generation in ExtractResourceWithChangesSCM
-
CloudBees DEV@Cloud authored
-
Daniel Beck authored
Break links inside pre tags
-
Jesse Glick authored
The actual implementation does not behave as nicely as one would hope, for a few reasons: 1. isEmpty actually tries to load the newestBuild, rather than simply checking whether there is some idOnDisk. Arguably this is necessary, since there could be an unloadable build record, in which case it would be technically correct for the map to be considered empty. 2. Loading AbstractLazyLoadRunMap.newestBuild calls search(MAX_VALUE, DESC), which behaves oddly, by doing a binary search, and thus perhaps loading lg(|map|) entries. You would think that it would suffice to check for the last member of idOnDisk in index.byId. 3. The iterator eagerly loads the next value before hasNext has even been called. Looks bad in a test, though it probably has little practical impact since most callers would be calling hasNext soon afterward anyway. Might cause one extra build record to be loaded unnecessarily from a limited RunList.
-
Jesse Glick authored
[JENKINS-18065] 54c08461 amendment: presumably RunMap.entrySet().iterator().next().setValue(…) should be illegal.
-
Jesse Glick authored
-
- Jul 11, 2014
-
-
Kohsuke Kawaguchi authored
-
Kevin Burke authored
Now you can draw a straight vertical line and see that the logo image, the beginning breadcrumb, and the build history are all in a straight line.
-
Jesse Glick authored
[JENKINS-22395] Taking advantage of BuildReference.clear (just introduced in b6226ad2) to simplify test by not requiring a custom build reference holder just to simulate GC. Confirmed that dropLinksAfterGC and dropLinksAfterGC2 both fail in the expected way (b1a.nextBuild == b2) after commenting out the call to createReference().clear() in dropLinks. (Also that they fail as expected in assertNotSame if the reference is not cleared at all.)
-
Kohsuke Kawaguchi authored
Just in case the previous fix didn't address the root cause of ZD-11985 (and given the time it takes for changes like this to land in LTS), I'm adding additional diagnostics that let us track how previous/next builds are getting discovered
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
-
Kohsuke Kawaguchi authored
Based on the last few commits, I proved that the original fix in f1430a25 doesn't really address the problem. That is, once b2 is deleted, and after sufficient garbage collection, we can make b2.previousBuild.get() be null, and then b2.getPreviousBuild().getNextBuild() ends up incorrectly returning b2. In this commit, I roll back that part of f1430a25, and then fix the problem differently. I started thinking that the main problem we are trying to fix here is that the deleted build object should be unreferenceable. That is, it should behave almost as if the object has already been GCed. The easiest way to do this is to clear a BuildReference object, since we always use the same BuildReference object for all inbound references. This change allows us to clear BuildReference. Code like b2.getPreviousBuild() will continue to try to update b1.nextBuildR to b2, but it will only end up wiping out the field, only to have b1.getNextBuild() recompute the correct value. This fix makes both test cases pass in LazyBuildMixInTest.
-
Kohsuke Kawaguchi authored
As I step-executed the code, I discovered b2.getPreviousBuild() was getting invoked between BRHF.drop(b1) and b2.dropLinks() call, in PeepholePermalink.RunListenerImpl.onDeleted() because Run.delete() calls RunListener.fireDeleted(this). Thus in effect the sequence of the call order was as follows: assertEquals(1, BRHF.drop(b1)); b2.getPreviousBuild(); // happens indirectly in PeepholePermalink b2.delete(); FreeStyleBuild b1a = b2.getPreviousBuild(); This defeats the purpose of the fix, because in this call sequence, by b2.dropLinks() as implemented before f1430a25 will correctly fix up b1a.nextBuildR to b3. For the test to work as intended, it is important that b2.previousBuildR.get()==null during dropLinks(). That is what causes b2.getPreviousBuild() in the next line to go load b1a, and sets up b1a.nextBuildR to b2, and trigger the assertion error. Added a code to remove all RunListeners. With this change, the test now fails without the fix in f1430a25.
-