Skip to content

Commit

Permalink
Merge branch '__rultor'
Browse files Browse the repository at this point in the history
  • Loading branch information
rultor committed Mar 28, 2024
2 parents d7b0961 + e83b03e commit 82b5710
Show file tree
Hide file tree
Showing 86 changed files with 585 additions and 183 deletions.
5 changes: 5 additions & 0 deletions eo-maven-plugin/pom.xml
Expand Up @@ -212,6 +212,11 @@ SOFTWARE.
<!-- This dependency must precede jcabi-maven-slf4j in order
to enable configurable Log4j logging during testing -->
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
Expand Down
2 changes: 2 additions & 0 deletions eo-maven-plugin/src/main/java/org/eolang/maven/Moja.java
Expand Up @@ -85,6 +85,7 @@ public Moja<T> with(final String attr, final Object value) {
* @param mojo Another mojo
* @return Itself
*/
@SuppressWarnings("PMD.AvoidAccessibilityAlteration")
public Moja<T> copy(final Object mojo) {
final Collection<String> mine = new ListOf<>(
new Mapped<>(
Expand Down Expand Up @@ -157,6 +158,7 @@ private static Collection<Field> fields(final Class<?> cls) {
* can't be set to the Mojo, we can't just remove Logger.warn. On the other hand, we will
* see warnings all the time during unit testing, which can be an insignificant problem.
*/
@SuppressWarnings("PMD.AvoidAccessibilityAlteration")
private void initField(
final Class<?> clazz,
final AbstractMojo mojo,
Expand Down
Expand Up @@ -59,7 +59,7 @@ public enum OptimizationFolder {
*
* @return The attribute name.
*/
String key() {
String getKey() {
return this.key;
}
}
Expand Up @@ -123,9 +123,9 @@ public Scalar<Integer> value(
private Path make(final XML xml, final Path file) throws IOException {
final String name = new XMLDocument(file).xpath("/program/@name").get(0);
final Place place = new Place(name);
final Path dir = this.paths.get(OptimizationFolder.TARGET.key());
final Path dir = this.paths.get(OptimizationFolder.TARGET.getKey());
final Path target = place.make(
dir.resolve(this.dirs.get(OptimizationFolder.TARGET.key())), TranspileMojo.EXT
dir.resolve(this.dirs.get(OptimizationFolder.TARGET.getKey())), TranspileMojo.EXT
);
new HmBase(dir).save(
xml.toString(),
Expand Down Expand Up @@ -153,8 +153,8 @@ private Optimization optimization(final ForeignTojo tojo, final Optimization com
res = new OptCached(
common,
this.paths.get(
OptimizationFolder.CACHE.key()
).resolve(this.dirs.get(OptimizationFolder.CACHE.key())).resolve(tojo.hash()),
OptimizationFolder.CACHE.getKey()
).resolve(this.dirs.get(OptimizationFolder.CACHE.getKey())).resolve(tojo.hash()),
this.source.apply(tojo)
);
} else {
Expand Down
Expand Up @@ -70,9 +70,10 @@ public final class OptimizeMojo extends SafeMojo {
* The map with directories of OptimizeMojo.
* @checkstyle DiamondOperatorCheck (10 lines)
*/
@SuppressWarnings("PMD.UseDiamondOperator")
private static final Map<String, String> DIRECTORIES = new MapOf<String, String>(
new MapEntry<>(OptimizationFolder.TARGET.key(), OptimizeMojo.DIR),
new MapEntry<>(OptimizationFolder.CACHE.key(), OptimizeMojo.OPTIMIZED)
new MapEntry<>(OptimizationFolder.TARGET.getKey(), OptimizeMojo.DIR),
new MapEntry<>(OptimizationFolder.CACHE.getKey(), OptimizeMojo.OPTIMIZED)
);

/**
Expand All @@ -96,8 +97,8 @@ public void exec() {
this.optimization(),
new OptimizationTask(
new MapOf<String, Path>(
new MapEntry<>(OptimizationFolder.TARGET.key(), this.targetDir.toPath()),
new MapEntry<>(OptimizationFolder.CACHE.key(), this.cache)
new MapEntry<>(OptimizationFolder.TARGET.getKey(), this.targetDir.toPath()),
new MapEntry<>(OptimizationFolder.CACHE.getKey(), this.cache)
),
OptimizeMojo.DIRECTORIES,
ForeignTojo::withOptimized,
Expand Down
Expand Up @@ -98,6 +98,7 @@ public final class ProbeMojo extends SafeMojo {
);

@Override
@SuppressWarnings("PMD.CognitiveComplexity")
public void exec() throws IOException {
if (this.hash == null) {
this.hash = new ChCached(
Expand Down
51 changes: 27 additions & 24 deletions eo-maven-plugin/src/main/java/org/eolang/maven/SafeMojo.java
Expand Up @@ -259,6 +259,7 @@ abstract class SafeMojo extends AbstractMojo {
* @checkstyle CyclomaticComplexityCheck (70 lines)
*/
@Override
@SuppressWarnings("PMD.CognitiveComplexity")
public final void execute() throws MojoFailureException {
StaticLoggerBinder.getSingleton().setMavenLog(this.getLog());
if (this.skip) {
Expand Down Expand Up @@ -327,6 +328,7 @@ protected final ForeignTojos scopedTojos() {
* @throws ExecutionException If unexpected exception happened during execution
* @throws TimeoutException If timeout limit reached
*/
@SuppressWarnings("PMD.CloseResource")
private void execWithTimeout() throws ExecutionException, TimeoutException {
final ExecutorService service = Executors.newSingleThreadExecutor();
try {
Expand Down Expand Up @@ -383,35 +385,36 @@ private static void closeTojos(final Closeable res) throws MojoFailureException
*/
private void exitError(final String msg, final Throwable exp)
throws MojoFailureException {
if (!this.unrollExitError) {
return;
}
final MojoFailureException out = new MojoFailureException(msg, exp);
if (this.unrollExitError) {
final List<String> causes = SafeMojo.causes(exp);
for (int pos = 0; pos < causes.size(); ++pos) {
final String cause = causes.get(pos);
if (cause == null) {
causes.remove(pos);
break;
}
final List<String> causes = SafeMojo.causes(exp);
for (int pos = 0; pos < causes.size(); ++pos) {
final String cause = causes.get(pos);
if (cause == null) {
causes.remove(pos);
break;
}
}
int idx = 0;
while (true) {
if (idx >= causes.size()) {
break;
}
int idx = 0;
while (true) {
if (idx >= causes.size()) {
final String cause = causes.get(idx);
for (int later = idx + 1; later < causes.size(); ++later) {
final String another = causes.get(later);
if (another != null && cause.contains(another)) {
causes.remove(idx);
idx -= 1;
break;
}
final String cause = causes.get(idx);
for (int later = idx + 1; later < causes.size(); ++later) {
final String another = causes.get(later);
if (another != null && cause.contains(another)) {
causes.remove(idx);
idx -= 1;
break;
}
}
idx += 1;
}
for (final String cause : new LinkedHashSet<>(causes)) {
Logger.error(this, cause);
}
idx += 1;
}
for (final String cause : new LinkedHashSet<>(causes)) {
Logger.error(this, cause);
}
throw out;
}
Expand Down
9 changes: 5 additions & 4 deletions eo-maven-plugin/src/main/java/org/eolang/maven/ShakeMojo.java
Expand Up @@ -67,9 +67,10 @@ public final class ShakeMojo extends SafeMojo {
* The map with directories of ShakeMojo.
* @checkstyle DiamondOperatorCheck (10 lines)
*/
@SuppressWarnings("PMD.UseDiamondOperator")
private static final Map<String, String> DIRECTORIES = new MapOf<String, String>(
new MapEntry<>(OptimizationFolder.TARGET.key(), ShakeMojo.DIR),
new MapEntry<>(OptimizationFolder.CACHE.key(), ShakeMojo.SHAKEN)
new MapEntry<>(OptimizationFolder.TARGET.getKey(), ShakeMojo.DIR),
new MapEntry<>(OptimizationFolder.CACHE.getKey(), ShakeMojo.SHAKEN)
);

/**
Expand All @@ -93,8 +94,8 @@ void exec() {
this.optimization(),
new OptimizationTask(
new MapOf<String, Path>(
new MapEntry<>(OptimizationFolder.TARGET.key(), this.targetDir.toPath()),
new MapEntry<>(OptimizationFolder.CACHE.key(), this.cache)
new MapEntry<>(OptimizationFolder.TARGET.getKey(), this.targetDir.toPath()),
new MapEntry<>(OptimizationFolder.CACHE.getKey(), this.cache)
),
ShakeMojo.DIRECTORIES,
ForeignTojo::withShaken,
Expand Down
Expand Up @@ -161,7 +161,7 @@ private static class Metas extends IterableEnvelope<Directive> {
meta -> {
final String[] pair = meta.split(" ", 2);
final String head = pair[0].substring(1);
if (head.equals(UnphiMojo.Metas.PACKAGE)) {
if (UnphiMojo.Metas.PACKAGE.equals(head)) {
throw new IllegalStateException(
"+package meta is prohibited for attaching to unphied XMIR"
);
Expand Down
Expand Up @@ -75,6 +75,7 @@ public final class UnplaceMojo extends SafeMojo {
private Set<String> keepBinaries = new SetOf<>();

@Override
@SuppressWarnings("PMD.AvoidAccessToStaticMembersViaThis")
public void exec() throws IOException {
if (this.placedTojos.isEmpty()) {
Logger.info(
Expand Down Expand Up @@ -105,6 +106,7 @@ private void unplaceJars() {
* Place what's necessary.
* @throws IOException If fails
*/
@SuppressWarnings("PMD.AvoidAccessToStaticMembersViaThis")
private void unplaceClasses() throws IOException {
final Collection<PlacedTojo> classes = this.placedTojos.classes();
int deleted = 0;
Expand Down Expand Up @@ -141,6 +143,7 @@ private void unplaceClasses() throws IOException {
* @return Number of files deleted
* @throws IOException If fails
*/
@SuppressWarnings("PMD.CognitiveComplexity")
private int killThem(final Iterable<PlacedTojo> all) throws IOException {
int unplaced = 0;
for (final PlacedTojo tojo : all) {
Expand Down Expand Up @@ -195,6 +198,7 @@ private int killThem(final Iterable<PlacedTojo> all) throws IOException {
* @return Number of files deleted
* @throws IOException If fails
*/
@SuppressWarnings("PMD.AvoidAccessToStaticMembersViaThis")
private int keepThem(final Iterable<? extends PlacedTojo> tojos) throws IOException {
int deleted = 0;
int remained = 0;
Expand Down
Expand Up @@ -75,12 +75,12 @@ void exec() {
this.optimization(),
new OptimizationTask(
new MapOf<String, Path>(
new MapEntry<>(OptimizationFolder.TARGET.key(), this.targetDir.toPath()),
new MapEntry<>(OptimizationFolder.CACHE.key(), this.cache)
new MapEntry<>(OptimizationFolder.TARGET.getKey(), this.targetDir.toPath()),
new MapEntry<>(OptimizationFolder.CACHE.getKey(), this.cache)
),
new MapOf<String, String>(
new MapEntry<>(OptimizationFolder.TARGET.key(), "6-verify"),
new MapEntry<>(OptimizationFolder.CACHE.key(), "verified")
new MapEntry<>(OptimizationFolder.TARGET.getKey(), "6-verify"),
new MapEntry<>(OptimizationFolder.CACHE.getKey(), "verified")
),
ForeignTojo::withVerified,
ForeignTojo::shaken
Expand Down
Expand Up @@ -162,7 +162,7 @@ private int weight(final String tag) {
*/
private int numberOfConstants() {
return (int) Stream.of(this.template.split("\\."))
.filter(s -> !s.equals("*")).count();
.filter(s -> !"*".equals(s)).count();
}

/**
Expand All @@ -173,7 +173,7 @@ private int numberOfConstants() {
private String regex() {
final List<String> keys = new LinkedList<>();
for (final String key : this.template.split("\\.")) {
if (key.equals("*")) {
if ("*".equals(key)) {
keys.add("\\w+");
} else {
keys.add(key);
Expand Down

11 comments on commit 82b5710

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-73a24c24 discovered in eo-runtime/src/test/eo/org/eolang/int-tests.eo) and submitted as #3004. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-9689d2b1 discovered in eo-runtime/src/test/eo/org/eolang/memory-tests.eo) and submitted as #3005. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-f14b83fe discovered in eo-runtime/src/test/eo/org/eolang/ram-tests.eo) and submitted as #3006. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-21b6bf5f discovered in eo-runtime/src/test/eo/org/eolang/runtime-tests.eo) and submitted as #3007. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-547e6f93 discovered in eo-runtime/src/test/eo/org/eolang/rust-tests.eo) and submitted as #3008. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-23de7471 discovered in eo-runtime/src/test/eo/org/eolang/seq-tests.eo) and submitted as #3009. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-b54627eb discovered in eo-runtime/src/test/eo/org/eolang/switch-tests.eo) and submitted as #3010. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-5e65ee7f discovered in eo-runtime/src/test/eo/org/eolang/try-tests.eo) and submitted as #3011. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-4190276f discovered in eo-runtime/src/test/eo/org/eolang/while-tests.eo) and submitted as #3012. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 2931-606d29f8 discovered in eo-runtime/src/test/java/EOorg/EOeolang/EOio/EOstdoutTest.java) and submitted as #3013. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link

@0pdd 0pdd commented on 82b5710 Mar 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to retrieve PDD puzzles from the code base and submit them to github. If you think that it's a bug on our side, please submit it to yegor256/0pdd:

POST https://api.github.com/repos/objectionary/eo/issues: 403 - You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later. If you reach out to GitHub Support for help, please include the request ID...

Please, copy and paste this stack trace to GitHub:

Octokit::TooManyRequests
POST https://api.github.com/repos/objectionary/eo/issues: 403 - You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later. If you reach out to GitHub Support for help, please include the request ID EC48:2451DA:AB0D33:1247D2B:66052936. // See: https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/response/raise_error.rb:14:in `on_complete'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/middleware.rb:18:in `block in call'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/response.rb:42:in `on_complete'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/middleware.rb:17:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/middleware/follow_redirects.rb:73:in `perform_with_redirection'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/middleware/follow_redirects.rb:61:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/rack_builder.rb:152:in `build_response'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/connection.rb:444:in `run_request'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/connection.rb:280:in `post'
/app/vendor/bundle/ruby/3.1.0/gems/sawyer-0.9.2/lib/sawyer/agent.rb:99:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/connection.rb:156:in `request'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/connection.rb:28:in `post'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/client/issues.rb:102:in `create_issue'
/app/objects/vcs/github.rb:75:in `create_issue'
/app/objects/tickets/tickets.rb:44:in `submit'
/app/objects/tickets/milestone_tickets.rb:35:in `submit'
/app/objects/tickets/logged_tickets.rb:50:in `submit'
/app/objects/tickets/tagged_tickets.rb:35:in `submit'
/app/objects/tickets/commit_tickets.rb:36:in `submit'
/app/objects/tickets/emailed_tickets.rb:35:in `submit'
/app/objects/tickets/sentry_tickets.rb:45:in `submit'
/app/objects/puzzles.rb:114:in `block in expose'
/app/objects/puzzles.rb:102:in `loop'
/app/objects/puzzles.rb:102:in `expose'
/app/objects/puzzles.rb:49:in `deploy'
/app/objects/jobs/job.rb:38:in `proceed'
/app/objects/jobs/job_starred.rb:32:in `proceed'
/app/objects/jobs/job_recorded.rb:31:in `proceed'
/app/objects/jobs/job_emailed.rb:33:in `proceed'
/app/objects/jobs/job_commiterrors.rb:33:in `proceed'
/app/objects/jobs/job_detached.rb:48:in `exclusive'
/app/objects/jobs/job_detached.rb:36:in `block in proceed'
/app/objects/jobs/job_detached.rb:36:in `fork'
/app/objects/jobs/job_detached.rb:36:in `proceed'
/app/0pdd.rb:549:in `process_request'
/app/0pdd.rb:380:in `block in <top (required)>'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `block in compile!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (3 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1089:in `route_eval'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (2 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1120:in `block in process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1069:in `block in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `each'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1190:in `block in dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1185:in `dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `block in call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:990:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/rewindable_input.rb:25:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/deflater.rb:47:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/xss_header.rb:20:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/path_traversal.rb:18:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/json_csrf.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/frame_options.rb:33:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/logger.rb:19:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/common_logger.rb:43:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:266:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:259:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/head.rb:15:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/method_override.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:224:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:2115:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `block in call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1890:in `synchronize'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rackup-2.1.0/lib/rackup/handler/webrick.rb:111:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:140:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:96:in `run'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

Please sign in to comment.