Потерял кучу времени, просто пытаясь выяснить, что здесь происходит, но я думаю, что наконец-то понял что-то.
У нас есть довольно обычный код PicoContainer, который просто включает кеширование, которое ямысль должна была привести к одноэлементному поведению:
container.as(Characteristics.CACHE).addComponent(Service.class, ServiceImpl.class);
Однако, как мы обнаружили сегодня, у нас есть компонент, который, очевидно, создается не один, а четыре раза.Это не то, что я могу воспроизвести на своем собственном компьютере, просто на некоторых других машинах разработчика.
Мы провели дальнейшие исследования, и оказалось, что несколько потоков обращались к PicoContainer, чтобы одновременно искать один и тот же компонент, ивместо того, чтобы создавать экземпляр одной копии и заставлять другие три потока ждать, создается впечатление, что он просто создает четыре копии (а затем только запоминает, чтобы хранить одну из них).
Существует ли относительно простой способ получить истинное единственное числоповедение в PicoContainer?