Błąd #1875

nie działa kasowanie dokumentów w workflow.FULL

Added by Łukasz Waśkiewicz over 7 years ago. Updated about 7 years ago.

Status:ZamkniętyStart date:2017-11-22
Priority:NormalnyDue date:
Assignee:Jarosław Bąbel% Done:

100%

Category:backend
Target version:0.3
Developer:Michał Komar Rewizja zgłoszenia GIT:480e86aa
Tester:Jarosław Bąbel Rewizja rozwiązania GIT:cfe6f21e
Występuje w wersji:0.3 Rewizja testów GIT: 537a465
Waga błędu:Mała

Related issues

Copied from Jupiter - Zadanie #1836: dodanie sprawdzania poprawności danych do importu Zamknięty 2017-09-25

History

#1 Updated by Łukasz Waśkiewicz over 7 years ago

  • Copied from Zadanie #1836: dodanie sprawdzania poprawności danych do importu added

#2 Updated by Michał Komar over 7 years ago

  • Category set to backend
  • Status changed from Nowy to W toku
  • Target version set to 0.3

#3 Updated by Michał Komar over 7 years ago

  • Status changed from W toku to Rozwiązany
  • Assignee changed from Michał Komar to Łukasz Waśkiewicz
  • % Done changed from 0 to 100
  • Rewizja rozwiązania GIT set to c42a3ee
  • Tester Łukasz Waśkiewicz added

Nie zauważyłem żeby nie działało. Może w trakcie usuwania ModificationType poprawiłem.

#4 Updated by Michał Komar over 7 years ago

  • Assignee changed from Łukasz Waśkiewicz to Jarosław Bąbel
  • Tester Jarosław Bąbel added

#5 Updated by Jarosław Bąbel about 7 years ago

  • Status changed from Rozwiązany to Odpowiedź
  • Assignee changed from Jarosław Bąbel to Michał Komar
  • Rewizja testów GIT set to e75b52f

Błąd wyodrębniony z importów. Usuwanie zaimportowanych dokumentów nadal nie działa.

Brak możliwości usunięcia zaimportowanego zasobu, w konsoli leci NPE dla StateMachine

  1. zaimportować plik bwmeta bez nadpisywania, do bazy dml np. jupiter/jupiter-services/src/test/resources/import/bwmeta/sampleBwmeta.xml
  2. wylogować i uruchomić od nowa przeglądarkę (obejście problemu z blokowaniem przycisku usuń)
  3. wybrać zaimportowany zasób
  4. kliknąć usuń i "tak"
  5. zasób nie zostaje usunięty, w logu leci wyjątek
java.lang.NullPointerException: null
    at pl.edu.icm.jupiter.services.statemachine.JpaStateMachineContextRepository.getContext(JpaStateMachineContextRepository.java:86)
    at org.springframework.statemachine.persist.RepositoryStateMachinePersist.read(RepositoryStateMachinePersist.java:51)
    at org.springframework.statemachine.persist.RepositoryStateMachinePersist.read(RepositoryStateMachinePersist.java:31)
    at org.springframework.statemachine.persist.AbstractStateMachinePersister.restore(AbstractStateMachinePersister.java:70)
    at pl.edu.icm.jupiter.services.statemachine.StateMachineServiceImpl.getStateMachine(StateMachineServiceImpl.java:36)
    at pl.edu.icm.jupiter.services.statemachine.StateMachineServiceImpl$$FastClassBySpringCGLIB$$b1058561.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
    at net.bull.javamelody.MonitoringSpringInterceptor.invoke(MonitoringSpringInterceptor.java:73)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
    at pl.edu.icm.jupiter.services.statemachine.StateMachineServiceImpl$$EnhancerBySpringCGLIB$$93216d1b.getStateMachine(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:338)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
    at com.sun.proxy.$Proxy201.getStateMachine(Unknown Source)
    at pl.edu.icm.jupiter.services.storage.DocumentStateMachineServiceImpl.sendEvent(DocumentStateMachineServiceImpl.java:43)
    at pl.edu.icm.jupiter.services.storage.DocumentStateMachineServiceImpl.sendEvent(DocumentStateMachineServiceImpl.java:32)

#6 Updated by Michał Komar about 7 years ago

  • Assignee changed from Michał Komar to Jarosław Bąbel

W tej chwili mam strasznie wszystko rozgrzebane i nie mam jak odtworzyć tego błędu. Możesz u siebie zweryfikować, czy rzeczywiście ten błąd ma miejsce. Z tego co widzę w kodzie, to błąd może się pojawić tylko w przypadku, gdy mamy jakieś stare dane. Dla nowych powinno być ok.

#7 Updated by Jarosław Bąbel about 7 years ago

  • Assignee changed from Jarosław Bąbel to Łukasz Waśkiewicz

Może jednak nie chodzi o zasoby z workflow.FULL, ale o zapis zaimportowanego dokumentu. Nie znam założeń, więc trochę po omacku:

zaimportowany dokument jest zapisywany prosto do DatabaseStorage (jeśli dobrze zrozumiałem, to zapis odbywa się w DocumentImportMerger.onImportMergeRequestEvent()).

Przy usuwaniu jest próba odtworzenia StateMachine i StateMachine.context, ale to jest puste dla importowanych dokumentów (tabela w bd też jest pusta).

Co innego jak zapiszemy dokument przez UI, wtedy w tabeli jupiter_state_machine "coś" się pojawia i ma wypełniony "context".

#8 Updated by Łukasz Waśkiewicz about 7 years ago

  • Status changed from Odpowiedź to Rozwiązany
  • Assignee changed from Łukasz Waśkiewicz to Jarosław Bąbel
  • Rewizja rozwiązania GIT changed from c42a3ee to cfe6f21e
  • Rewizja testów GIT deleted (e75b52f)

już działa
faktycznie był zapis do złego StorageService -> poprawiony
i poprawione kasowanie dokumentu nie przechodzącego walidacji

#9 Updated by Jarosław Bąbel about 7 years ago

  • Status changed from Rozwiązany to Zamknięty

#10 Updated by Jarosław Bąbel about 7 years ago

  • Rewizja testów GIT set to 537a465

Also available in: Atom PDF