org.ngrinder.sm.NGrinderSecurityManager System.getenv("JAVA_HOME") 사용에 따른 OSX 오류

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

org.ngrinder.sm.NGrinderSecurityManager System.getenv("JAVA_HOME") 사용에 따른 OSX 오류

soungno
안녕하세요
org.ngrinder.sm.NGrinderSecurityManager 클래스의
35번 라인의 private String javaHomeDirectory = System.getenv("JAVA_HOME");
에서 OS X(10.9.2) 환경에서는 해당 값을 읽어 오지 못해 null로 인해 오류가 발생 하네요

System.getProperty()로 변경하는게 어떨지 의견 드립니다.
private String javaHomeDirectory = System.getProperty("java.home");


Reply | Threaded
Open this post in threaded view
|

Re: org.ngrinder.sm.NGrinderSecurityManager System.getenv("JAVA_HOME") 사용에 따른 OSX 오류

junoyoon
Administrator
확인 감사합니다.

혹시 Security 모드를 활성화 하시고 테스트를 하시려고 하시는 지요?
Reply | Threaded
Open this post in threaded view
|

Re: org.ngrinder.sm.NGrinderSecurityManager System.getenv("JAVA_HOME") 사용에 따른 OSX 오류

soungno
아뇨
소스받아다가 유닛 테스트 돌리는중 발견 했어요^^
Reply | Threaded
Open this post in threaded view
|

Re: org.ngrinder.sm.NGrinderSecurityManager System.getenv("JAVA_HOME") 사용에 따른 OSX 오류

junoyoon
Administrator
말씀하신 해당 코드는 시큐리티 모드에서 자바가 특정 폴더를 읽을 수 있도록 지정할 때 사용됩니다.

그러나 자바에서 java.home과 JAVA_HOME은 서로 다른 의미로 쓰입니다.
java.home 프로퍼티는 JRE의 홈을.. JAVA_HOME은 JDK의 홈이지요.
따라서 두개를 서로 바꿔서 대치하는 것은 무리가 있습니다.

대신에 궃이 JAVA_HOME을 가지고 jre 를 찾을 필요 없이 java.home으로 직접 jre 위치를 찾으면 되겠더군요.
(사실 JAVA_HOME과 java.home의 차이점에 대해서는 이 코드를 작성한 한참뒤에 알게된 건이었습니다.)

https://github.com/nhnopensource/ngrinder/commit/855fe03136d1185b9c153034a47460fae60a649f

에 Fix 를 하였고 3.3.1 에 반영하여 릴리즈 할 예정입니다.

감사합니다.