• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Camelcade / Perl5-IDEA / #525521795

17 Mar 2026 06:05PM UTC coverage: 75.963% (+0.05%) from 75.914%
#525521795

push

github

hurricup
IJPL-237202 Refactored PerlNamesCache to improve reliability

- updating method is now asynchronous with a callback. Tests using semaphore
- NBRA now has a `coalesceBy` project, no manual control over duplications. We did have cases, when several actions run from different sources: queue and forceUpdate
- service stopping in tests is now implemented using test disposable, instead of manual code and atomic getter

14772 of 22636 branches covered (65.26%)

Branch coverage included in aggregate %.

18 of 23 new or added lines in 4 files covered. (78.26%)

7 existing lines in 4 files now uncovered.

31089 of 37737 relevant lines covered (82.38%)

0.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/plugin/frontend/split/src/main/java/com/perl5/lang/perl/idea/project/PerlNamesFrontendCache.kt
1
/*
2
 * Copyright 2015-2026 Alexandr Evstigneev
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 * http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16

17
package com.perl5.lang.perl.idea.project
18

19
import java.util.concurrent.atomic.AtomicBoolean
20

21
class PerlNamesFrontendCache : PerlNamesCache {
×
22
  private val isDisposed: AtomicBoolean = AtomicBoolean(false)
×
23
  override fun getSubsNamesSet(): Set<String> = emptySet()
×
24
  override fun getNamespacesNamesSet(): Set<String> = emptySet()
×
25
  override fun dispose(): Unit = isDisposed.set(true)
×
NEW
26
  override fun forceCacheUpdate(callback: () -> Unit): Unit = callback()
×
27
  override fun cleanCache(): Unit = Unit
×
28
  override fun isDisposed(): Boolean = isDisposed.get()
×
29
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc