| [CDO] NPE in SecurityManager$PermissionManager which leads to TimeoutRuntimeException on next commit [message #1840693] |
Thu, 22 April 2021 03:27  |
Eclipse User |
|
|
|
Hi all,
in our application, we are using CDO release R20210308-1312. In our integration-tests, we see the exception below quite often.
But before, please have a look at our SecurityManager initialization (which may be somehow wrong - I see a discouraged access warning):
InternalSecurityManager securityMngr = new SecurityManager("/security", IPluginContainer.INSTANCE);
securityMngr.addCommitHandler((CommitHandler) container.getElement("org.eclipse.emf.cdo.server.security.commitHandlers", "annotation", null));
securityMngr.setRepository((InternalRepository) repository);
LifecycleUtil.activate(securityMngr);
org.eclipse.net4j.signal.RemoteException: java.lang.NullPointerException
at org.eclipse.net4j.signal.RequestWithConfirmation.getRemoteException(RequestWithConfirmation.java:142)
at org.eclipse.net4j.signal.RequestWithConfirmation.setRemoteException(RequestWithConfirmation.java:131)
at org.eclipse.net4j.signal.SignalProtocol.handleRemoteException(SignalProtocol.java:562)
at org.eclipse.net4j.signal.RemoteExceptionIndication.indicating(RemoteExceptionIndication.java:62)
at org.eclipse.net4j.signal.Indication.doExtendedInput(Indication.java:57)
at org.eclipse.net4j.signal.Signal.doInput(Signal.java:391)
at org.eclipse.net4j.signal.Indication.execute(Indication.java:51)
at org.eclipse.net4j.signal.Signal.runSync(Signal.java:297)
at org.eclipse.net4j.signal.Signal.run(Signal.java:169)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NullPointerException
at org.eclipse.emf.cdo.server.internal.security.SecurityManager$PermissionManager.getPermission(SecurityManager.java:1287)
at org.eclipse.emf.cdo.server.internal.net4j.protocol.LoadPermissionsIndication.responding(LoadPermissionsIndication.java:81)
at org.eclipse.emf.cdo.server.internal.net4j.protocol.CDOServerIndication.responding(CDOServerIndication.java:162)
at org.eclipse.net4j.signal.IndicationWithResponse.doExtendedOutput(IndicationWithResponse.java:106)
at org.eclipse.net4j.signal.Signal.doOutput(Signal.java:360)
at org.eclipse.net4j.signal.IndicationWithResponse.execute(IndicationWithResponse.java:75)
at org.eclipse.emf.cdo.server.internal.net4j.protocol.CDOServerReadIndication.execute(CDOServerReadIndication.java:36)
... 5 more
The actual problem for us is, that the next commit seems to be affected by this. It takes a long time and ends with a TimeoutRuntimeException:
org.eclipse.net4j.util.concurrent.TimeoutRuntimeException: Did not receive an update: Transaction 1502
at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.waitForCommitInfo(CDOTransactionImpl.java:1639)
at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.commit(CDOTransactionImpl.java:1628)
at org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl.commit(CDOTransactionImpl.java:1591)
<we commit here>
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04904 seconds