mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Fix suspicious proxy object usage (reported by new inspection IDEA-242644)
GitOrigin-RevId: 447d11436034d5208a7d2878def4a438d5c70331
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2515873511
commit
c950cba15c
+34
-20
@@ -39,9 +39,6 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Proxy;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@@ -97,25 +94,42 @@ public class ArtifactRepositoryManager {
|
||||
myRemoteRepositories.addAll(remoteRepositories);
|
||||
final DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
|
||||
if (progressConsumer != ProgressConsumer.DEAF) {
|
||||
session.setTransferListener((TransferListener)Proxy
|
||||
.newProxyInstance(session.getClass().getClassLoader(), new Class[]{TransferListener.class}, new InvocationHandler() {
|
||||
private final EnumSet<TransferEvent.EventType> checkCancelEvents = EnumSet.of(TransferEvent.EventType.INITIATED, TransferEvent.EventType.STARTED, TransferEvent.EventType.PROGRESSED);
|
||||
session.setTransferListener(new TransferListener() {
|
||||
@Override
|
||||
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
||||
final Object event = args[0];
|
||||
if (event instanceof TransferEvent) {
|
||||
final TransferEvent.EventType type = ((TransferEvent)event).getType();
|
||||
if (checkCancelEvents.contains(type) && progressConsumer.isCanceled()) {
|
||||
throw new TransferCancelledException();
|
||||
}
|
||||
progressConsumer.consume(event.toString());
|
||||
//if (type != TransferEvent.EventType.PROGRESSED) {
|
||||
// progressConsumer.consume(event.toString());
|
||||
//}
|
||||
}
|
||||
return null;
|
||||
public void transferInitiated(TransferEvent event) throws TransferCancelledException {
|
||||
handle(event);
|
||||
}
|
||||
}));
|
||||
|
||||
@Override
|
||||
public void transferStarted(TransferEvent event) throws TransferCancelledException {
|
||||
handle(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferProgressed(TransferEvent event) throws TransferCancelledException {
|
||||
handle(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferCorrupted(TransferEvent event) throws TransferCancelledException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferSucceeded(TransferEvent event) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferFailed(TransferEvent event) {
|
||||
}
|
||||
|
||||
private void handle(TransferEvent event) throws TransferCancelledException {
|
||||
if (progressConsumer.isCanceled()) {
|
||||
throw new TransferCancelledException();
|
||||
}
|
||||
progressConsumer.consume(event.toString());
|
||||
}
|
||||
});
|
||||
}
|
||||
// setup session here
|
||||
|
||||
|
||||
Reference in New Issue
Block a user