Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plagiarism checks: Clean up results and cases in case of errors #7466

Merged

Conversation

jakubriegel
Copy link
Contributor

@jakubriegel jakubriegel commented Oct 29, 2023

Checklist

General

Server

  • Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
  • I followed the coding and design guidelines.
  • I added multiple integration tests (Spring) related to the features (with a high test coverage).
  • I documented the Java code using JavaDoc style.

Motivation and Context

The cpc leaves phantom plagiarism cases when any of its subsequent runs results in an error. Such phantom cases can lead to false positive plagiarism case notification or not removing plagiarism case after cpc detected no plagiarism. An example scenario is when there suddenly is no submissions matching the plagiarism check configuration.

Description

Now in case an exception Is thrown the cpc will remove all phantom plagiarism comparisons and cases, leaving the system in a correct state.

Steps for Testing

Prerequisites:

  • 1 Instructor
  • 2 Students
  • 1 Text Exercise
  • ⚠️ deployed brand which triggers cpc every 1 minute: plagiarism-detection-fix-cpc-when-new-short-submission-1min ⚠️
  1. Create an exercise (text, modeling or programming) with cpc enabled
    • set a future due date for the exercise
    • check the Enable Continuos plagiarism control checkbox
  2. Submit two identical submissions from two students. Each submission needs to be at least 200 words long.
  3. Wait 1min until the plagiarism case is created.
  4. Verify that plagiarism cases was created for both students.
  5. Change one of submissions to a 2-3 words long text.
  6. Wait 1min.
  7. Verify that both plagiarism case are removed.

Testserver States

Note

These badges show the state of the test servers.
Green = Currently available, Red = Currently locked







Review Progress

Performance Review

  • I (as a reviewer) confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance
  • I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Test Coverage

Class/File Line Coverage Confirmation (assert/expect)
ContinuousPlagiarismControlService 96%

@jakubriegel jakubriegel self-assigned this Oct 29, 2023
@github-actions github-actions bot added tests server Pull requests that update Java code. (Added Automatically!) labels Oct 29, 2023
@jakubriegel jakubriegel marked this pull request as ready for review October 29, 2023 18:56
@jakubriegel jakubriegel requested a review from a team as a code owner October 29, 2023 18:56
Copy link
Contributor

@MarkusPaulsen MarkusPaulsen left a comment

Choose a reason for hiding this comment

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

Code looks good, waiting for testing session.

Copy link

@vinceclifford vinceclifford left a comment

Choose a reason for hiding this comment

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

Tested on ts1

Copy link
Contributor

@aplr aplr left a comment

Choose a reason for hiding this comment

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

Tested in testing session, LGMT

Copy link
Contributor

@lennart-keller lennart-keller left a comment

Choose a reason for hiding this comment

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

Demonstrated in testing session.

Copy link
Contributor

@florian-glombik florian-glombik left a comment

Choose a reason for hiding this comment

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

Worked fine, the plagiarism message was not displayed anymore after submitting something different

@krusche krusche added this to the 6.6.5 milestone Nov 10, 2023
@krusche krusche changed the title Plagiarism checks: Clean up results and cases after cpc error Plagiarism checks: Clean up results and cases in case of errors Nov 10, 2023
@krusche krusche merged commit cbbc83f into develop Nov 10, 2023
18 of 20 checks passed
@krusche krusche deleted the plagiarism-detection-fix-cpc-when-new-short-submission branch November 10, 2023 07:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready to merge server Pull requests that update Java code. (Added Automatically!) tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants