rollback transaction when mapping exception to responses with Jersey ExceptionMapper2019 Community Moderator ElectionSpring transactional dont rollback when exception is mapped by ExceptionMapperTransaction-per-request and JerseyJersey/Jackson Exception problem with ExceptionMapperSpring transaction REQUIRED vs REQUIRES_NEW : Rollback TransactionHow to rollback Spring Transaction when an Exception is thrownTransaction rollback in OSGiWhy Jersey send a 403 status when an exception is not caught in my code?Jersey Custom Exception not caught by ExceptionMapperExceptionMapper for WebApplicationExceptions thrown with entity?Spring boot and Jersey, can't make ExceptionMapper workSpring-tx: Rollback only if exception is uncaught by outmost method

Built-In Shelves/Bookcases - IKEA vs Built

If the Captain's screens are out, does he switch seats with the co-pilot?

Should I take out a loan for a friend to invest on my behalf?

What is the chance of making a successful appeal to dismissal decision from a PhD program after failing the qualifying exam in the 2nd attempt?

How strictly should I take "Candidates must be local"?

Force user to remove USB token

How do I locate a classical quotation?

BitNot does not flip bits in the way I expected

What to do when during a meeting client people start to fight (even physically) with each others?

Is having access to past exams cheating and, if yes, could it be proven just by a good grade?

How did Alan Turing break the enigma code using the hint given by the lady in the bar?

Am I not good enough for you?

Can someone explain what is being said here in color publishing in the American Mathematical Monthly?

Algorithm to convert a fixed-length string to the smallest possible collision-free representation?

Why does Captain Marvel assume the planet where she lands would recognize her credentials?

How much stiffer are 23c tires over 28c?

How do I express some one as a black person?

Finding algorithms of QGIS commands?

Subset counting for even numbers

Do I really need to have a scientific explanation for my premise?

2×2×2 rubik's cube corner is twisted!

How do I deal with a powergamer in a game full of beginners in a school club?

Why is there a voltage between the mains ground and my radiator?

What is wrong with Escaped Shapeshifter's original wording?



rollback transaction when mapping exception to responses with Jersey ExceptionMapper



2019 Community Moderator ElectionSpring transactional dont rollback when exception is mapped by ExceptionMapperTransaction-per-request and JerseyJersey/Jackson Exception problem with ExceptionMapperSpring transaction REQUIRED vs REQUIRES_NEW : Rollback TransactionHow to rollback Spring Transaction when an Exception is thrownTransaction rollback in OSGiWhy Jersey send a 403 status when an exception is not caught in my code?Jersey Custom Exception not caught by ExceptionMapperExceptionMapper for WebApplicationExceptions thrown with entity?Spring boot and Jersey, can't make ExceptionMapper workSpring-tx: Rollback only if exception is uncaught by outmost method










2















I'm using a custom Jersey ExceptionMapper to map my unchecked exceptions into error responses (as described in the documentation). My problem is that the transaction is not rolled back, every DB modification made before the exception is persisted.



The same thing happens if, instead of using the ExceptionMapper, I throw a WebApplicationException.



How can I send an error response to the client preserving the normal behavior (rollback the transaction)?
I found a similar question here, but I don't use spring.










share|improve this question







New contributor




Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    2















    I'm using a custom Jersey ExceptionMapper to map my unchecked exceptions into error responses (as described in the documentation). My problem is that the transaction is not rolled back, every DB modification made before the exception is persisted.



    The same thing happens if, instead of using the ExceptionMapper, I throw a WebApplicationException.



    How can I send an error response to the client preserving the normal behavior (rollback the transaction)?
    I found a similar question here, but I don't use spring.










    share|improve this question







    New contributor




    Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      2












      2








      2


      3






      I'm using a custom Jersey ExceptionMapper to map my unchecked exceptions into error responses (as described in the documentation). My problem is that the transaction is not rolled back, every DB modification made before the exception is persisted.



      The same thing happens if, instead of using the ExceptionMapper, I throw a WebApplicationException.



      How can I send an error response to the client preserving the normal behavior (rollback the transaction)?
      I found a similar question here, but I don't use spring.










      share|improve this question







      New contributor




      Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I'm using a custom Jersey ExceptionMapper to map my unchecked exceptions into error responses (as described in the documentation). My problem is that the transaction is not rolled back, every DB modification made before the exception is persisted.



      The same thing happens if, instead of using the ExceptionMapper, I throw a WebApplicationException.



      How can I send an error response to the client preserving the normal behavior (rollback the transaction)?
      I found a similar question here, but I don't use spring.







      exception transactions jersey






      share|improve this question







      New contributor




      Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Mar 6 at 16:23









      MarcoMarco

      132




      132




      New contributor




      Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Marco is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          1 Answer
          1






          active

          oldest

          votes


















          0














          What you can do is use a RequestEventListener to manage the transaction throughout the lifetime of the request. You can listen for RequestEvent.Types, which includes events such as RESOURCE_METHOD_START, ON_EXCEPTION, RESOURCE_METHOD_FINISH, etc. You can begin the transaction at the beginning of the request processing and commit or rollback the transaction depending on if it a successful processing or an exception is thrown.



          This is pretty much what Dropwizard does with it's @UnitOfWork. You can see how it is all implemented in this package. Look at the UnitOfWorkApplicationEventListener. You'll see how they implement what I was talking about above.






          share|improve this answer























          • HI Paul, thanks for the hint! I also found a possible solution in keycloak source code here.. just in case someone else encounters the same problem.

            – Marco
            Mar 8 at 7:21










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );






          Marco is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55027775%2frollback-transaction-when-mapping-exception-to-responses-with-jersey-exceptionma%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          What you can do is use a RequestEventListener to manage the transaction throughout the lifetime of the request. You can listen for RequestEvent.Types, which includes events such as RESOURCE_METHOD_START, ON_EXCEPTION, RESOURCE_METHOD_FINISH, etc. You can begin the transaction at the beginning of the request processing and commit or rollback the transaction depending on if it a successful processing or an exception is thrown.



          This is pretty much what Dropwizard does with it's @UnitOfWork. You can see how it is all implemented in this package. Look at the UnitOfWorkApplicationEventListener. You'll see how they implement what I was talking about above.






          share|improve this answer























          • HI Paul, thanks for the hint! I also found a possible solution in keycloak source code here.. just in case someone else encounters the same problem.

            – Marco
            Mar 8 at 7:21















          0














          What you can do is use a RequestEventListener to manage the transaction throughout the lifetime of the request. You can listen for RequestEvent.Types, which includes events such as RESOURCE_METHOD_START, ON_EXCEPTION, RESOURCE_METHOD_FINISH, etc. You can begin the transaction at the beginning of the request processing and commit or rollback the transaction depending on if it a successful processing or an exception is thrown.



          This is pretty much what Dropwizard does with it's @UnitOfWork. You can see how it is all implemented in this package. Look at the UnitOfWorkApplicationEventListener. You'll see how they implement what I was talking about above.






          share|improve this answer























          • HI Paul, thanks for the hint! I also found a possible solution in keycloak source code here.. just in case someone else encounters the same problem.

            – Marco
            Mar 8 at 7:21













          0












          0








          0







          What you can do is use a RequestEventListener to manage the transaction throughout the lifetime of the request. You can listen for RequestEvent.Types, which includes events such as RESOURCE_METHOD_START, ON_EXCEPTION, RESOURCE_METHOD_FINISH, etc. You can begin the transaction at the beginning of the request processing and commit or rollback the transaction depending on if it a successful processing or an exception is thrown.



          This is pretty much what Dropwizard does with it's @UnitOfWork. You can see how it is all implemented in this package. Look at the UnitOfWorkApplicationEventListener. You'll see how they implement what I was talking about above.






          share|improve this answer













          What you can do is use a RequestEventListener to manage the transaction throughout the lifetime of the request. You can listen for RequestEvent.Types, which includes events such as RESOURCE_METHOD_START, ON_EXCEPTION, RESOURCE_METHOD_FINISH, etc. You can begin the transaction at the beginning of the request processing and commit or rollback the transaction depending on if it a successful processing or an exception is thrown.



          This is pretty much what Dropwizard does with it's @UnitOfWork. You can see how it is all implemented in this package. Look at the UnitOfWorkApplicationEventListener. You'll see how they implement what I was talking about above.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Mar 6 at 23:48









          Paul SamsothaPaul Samsotha

          153k20296487




          153k20296487












          • HI Paul, thanks for the hint! I also found a possible solution in keycloak source code here.. just in case someone else encounters the same problem.

            – Marco
            Mar 8 at 7:21

















          • HI Paul, thanks for the hint! I also found a possible solution in keycloak source code here.. just in case someone else encounters the same problem.

            – Marco
            Mar 8 at 7:21
















          HI Paul, thanks for the hint! I also found a possible solution in keycloak source code here.. just in case someone else encounters the same problem.

          – Marco
          Mar 8 at 7:21





          HI Paul, thanks for the hint! I also found a possible solution in keycloak source code here.. just in case someone else encounters the same problem.

          – Marco
          Mar 8 at 7:21












          Marco is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          Marco is a new contributor. Be nice, and check out our Code of Conduct.












          Marco is a new contributor. Be nice, and check out our Code of Conduct.











          Marco is a new contributor. Be nice, and check out our Code of Conduct.














          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55027775%2frollback-transaction-when-mapping-exception-to-responses-with-jersey-exceptionma%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

          Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

          Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved