2014-02-17 7 views
3

나는 행동이 의심스러워 보이는 의존성이있다. 거기에 데이터 경쟁 문제가 있다고 가정합니다. 클래스에 대한 호출 중 하나가 내부 변수를 null로 설정하고 다른 호출은 여전히 ​​처리 중입니다. 이로 인해 예외가 발생합니다.클래스에 로깅을 쉽게 삽입 할 수 있습니까?

필자는 해당 종속성의 일부 클래스에 로깅을 삽입하여 내가 옳은지 확인하고자합니다.

문제는 해당 종속성의 원본을 직접 수정할 수 없다는 것입니다. 나는 Maven을 통해 그들을 얻었고, 나의 아이디어에서 그들을 볼 수있다. 그러나 thats 모두. 내가 가진 유일한 생각은 classpath를 통해 수정 된 버전으로 클래스를 대체하는 것입니다. 하지만 아마도 더 좋은 방법이 있을까요? 이 일에 대해 일종의 "재배포"를 할 수 있습니까?

+0

병렬 처리가 필요하지 않은 경우 디스패처를이 비 스레드 안전 라이브러리와 동기화 할 수도 있습니다 . –

+1

바이트 코드를 조작하는 AOP가 있으므로 호출 등을 가로 챌 수 있습니다. 무거운 포병의 비트. –

+0

Joop 외에도 AspectJ를 살펴 보자. – nhaarman

답변

0

당신은 AOP를 사용할 수 있지만 대체 디버깅이 문제를 디버깅하고 한 번만 더 많은 제어를하는 것이 좋습니다.

메이븐 지역 .m2 디렉토리 이동의 종속성을 다운로드하고 종속성을 재 컴파일 할 귀하의 요구 사항에 따라 수정 의존성을 디 컴파일 다시 지금 받는다는 구축 지역 .m2에 설치합니다 "받는다는 설치" 프로젝트를 maven 오프라인 모드로 바꾸면 대체되지 않고 수정 중에 추가 한 로그 등을 볼 수 있습니다.

+0

좋은 생각, Jaffar, 원래 수업 전에 classpath에 수정 된 클래스를 추가하는 방법으로 수행합니다.하지만 가장 쉬운 방법은 우리 옵션과 같습니다. – KutaBeach

+0

@KutaBeach 어떤 옵션이 있습니까? –

+1

파일을 수정 한 다음 이전에했던 것처럼 클래스 패스를 통해 프로젝트에 삽입하거나 제안 된대로 로컬 Maven 저장소를 통해 삽입하십시오. – KutaBeach

관련 문제