Commit 556af124d41251d46f9179552d5edc1b2bb7b6b7

Authored by perry.werneck@gmail.com
1 parent 7564dbba

Atualizando java

@@ -5,7 +5,7 @@ msgid "" @@ -5,7 +5,7 @@ msgid ""
5 msgstr "" 5 msgstr ""
6 "Project-Id-Version: pw3270 5.0\n" 6 "Project-Id-Version: pw3270 5.0\n"
7 "Report-Msgid-Bugs-To: \n" 7 "Report-Msgid-Bugs-To: \n"
8 -"POT-Creation-Date: 2015-07-07 08:13-0300\n" 8 +"POT-Creation-Date: 2015-07-07 09:37-0300\n"
9 "PO-Revision-Date: 2014-02-17 08:05-0300\n" 9 "PO-Revision-Date: 2014-02-17 08:05-0300\n"
10 "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" 10 "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n"
11 "Language-Team: Portugues <>\n" 11 "Language-Team: Portugues <>\n"
src/java/Makefile.in
@@ -174,7 +174,7 @@ jni3270-@host_cpu@.zip: \ @@ -174,7 +174,7 @@ jni3270-@host_cpu@.zip: \
174 174
175 @rm -fr ui 175 @rm -fr ui
176 @mkdir ui 176 @mkdir ui
177 - @cp ../../ui/*java.xml ui 177 + @cp ../../ui/*java*.xml ui
178 @zip -9 -m -r $@ ui 178 @zip -9 -m -r $@ ui
179 @rm -fr ui 179 @rm -fr ui
180 180
src/java/call.cc
@@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
31 #include "private.h" 31 #include "private.h"
32 #include <pw3270/v3270.h> 32 #include <pw3270/v3270.h>
33 #include <lib3270/trace.h> 33 #include <lib3270/trace.h>
  34 + #include <lib3270/log.h>
34 35
35 36
36 /*---[ Implement ]----------------------------------------------------------------------------------*/ 37 /*---[ Implement ]----------------------------------------------------------------------------------*/
@@ -40,6 +41,8 @@ namespace PW3270_NAMESPACE { @@ -40,6 +41,8 @@ namespace PW3270_NAMESPACE {
40 41
41 void java::call(GtkWidget *widget, const char *classname) { 42 void java::call(GtkWidget *widget, const char *classname) {
42 43
  44 + debug("%s(%s)",__FUNCTION__,classname);
  45 +
43 if(!trylock()) { 46 if(!trylock()) {
44 47
45 failed(widget, _( "Can't access java virtual machine" ), "%s", strerror(EBUSY)); 48 failed(widget, _( "Can't access java virtual machine" ), "%s", strerror(EBUSY));
src/java/plugin.cc
@@ -370,7 +370,6 @@ using namespace PW3270_NAMESPACE; @@ -370,7 +370,6 @@ using namespace PW3270_NAMESPACE;
370 extern "C" { 370 extern "C" {
371 371
372 static PW3270_NAMESPACE::session * factory(const char *name) { 372 static PW3270_NAMESPACE::session * factory(const char *name) {
373 - debug("---> %s",__FUNCTION__);  
374 return new plugin(lib3270_get_default_session_handle()); 373 return new plugin(lib3270_get_default_session_handle());
375 } 374 }
376 375
src/java/startstop.cc
@@ -212,60 +212,92 @@ extern &quot;C&quot; { @@ -212,60 +212,92 @@ extern &quot;C&quot; {
212 212
213 kernel = LoadLibrary("kernel32.dll"); 213 kernel = LoadLibrary("kernel32.dll");
214 214
215 - AddDllDirectory = (HANDLE WINAPI (*)(PCWSTR)) GetProcAddress(kernel,"AddDllDirectory");  
216 - if(AddDllDirectory) { 215 + if(kernel) {
217 216
218 - // Acrescenta mais caminhos para achar a dll  
219 - for(size_t f = 0; f < G_N_ELEMENTS(dlldir); f++) { 217 + AddDllDirectory = (HANDLE WINAPI (*)(PCWSTR)) GetProcAddress(kernel,"AddDllDirectory");
  218 + if(AddDllDirectory) {
220 219
221 - const char *env = getenv(dlldir[f].env); 220 + // Acrescenta mais caminhos para achar a dll
  221 + for(size_t f = 0; f < G_N_ELEMENTS(dlldir); f++) {
222 222
223 - debug("%s=\"%s\"",dlldir[f].env,env); 223 + const char *env = getenv(dlldir[f].env);
224 224
225 - if(env) { 225 + debug("%s=\"%s\"",dlldir[f].env,env);
226 226
227 - gchar *p = g_build_filename(env,dlldir[f].path,NULL); 227 + if(env) {
228 228
229 - debug("Adicionando diretório \"%s\"",p); 229 + gchar *p = g_build_filename(env,dlldir[f].path,NULL);
230 230
231 - wchar_t *path = (wchar_t *) malloc(4096*sizeof(wchar_t));  
232 - mbstowcs(path, p, 4095);  
233 - dlldir[f].cookie = AddDllDirectory(path);  
234 - free(path); 231 + lib3270_trace_event(v3270_get_session(widget),"Adding \"%s\" to DLL search path",p);
235 232
236 - g_free(p); 233 + wchar_t *path = (wchar_t *) malloc(4096*sizeof(wchar_t));
  234 + mbstowcs(path, p, 4095);
  235 + dlldir[f].cookie = AddDllDirectory(path);
  236 + free(path);
237 237
  238 + g_free(p);
  239 +
  240 + }
238 } 241 }
  242 +
  243 + } else {
  244 +
  245 + lib3270_trace_event(v3270_get_session(widget),"Can't find %s: %s","AddDllDirectory",session::win32_strerror(GetLastError()).c_str());
  246 +
239 } 247 }
240 248
  249 + } else {
  250 +
  251 + lib3270_trace_event(v3270_get_session(widget),"Can't load %s: %s\n","kernel32.dll",session::win32_strerror(GetLastError()).c_str());
  252 +
241 } 253 }
242 - #ifdef DEBUG  
243 - else {  
244 - debug("Can't get %s: %s","AddDllDirectory",session::win32_strerror(GetLastError()).c_str())  
245 - }  
246 - #endif // DEBUG  
247 254
248 hModule = LoadLibrary("jvm.dll"); 255 hModule = LoadLibrary("jvm.dll");
  256 + if(!hModule) {
  257 + lib3270_trace_event(v3270_get_session(widget),"Can't load %s\n","jvm.dll",session::win32_strerror(GetLastError()).c_str());
  258 +
  259 + for(size_t f = 0; !hModule && f < G_N_ELEMENTS(dlldir); f++) {
  260 +
  261 + const char *env = getenv(dlldir[f].env);
  262 +
  263 + debug("%s=\"%s\"",dlldir[f].env,env);
  264 +
  265 + if(env) {
  266 +
  267 + gchar *p = g_build_filename(env,dlldir[f].path,"jvm.dll",NULL);
  268 + hModule = LoadLibrary(p);
  269 + if(!hModule) {
  270 + lib3270_trace_event(v3270_get_session(widget),"Can't load %s: %s\n",p,session::win32_strerror(GetLastError()).c_str());
  271 + }
  272 + g_free(p);
  273 +
  274 + }
  275 + }
  276 + }
249 277
250 - if(hModule) { 278 + if(!hModule) {
251 failed(widget, _( "Can't load java virtual machine" ), "%s", session::win32_strerror(GetLastError()).c_str()); 279 failed(widget, _( "Can't load java virtual machine" ), "%s", session::win32_strerror(GetLastError()).c_str());
252 } 280 }
253 281
254 - RemoveDllDirectory = (BOOL WINAPI (*)(HANDLE)) GetProcAddress(kernel,"RemoveDllDirectory");  
255 - if(RemoveDllDirectory) { 282 + if(kernel) {
256 283
257 - for(size_t f = 0; f < G_N_ELEMENTS(dlldir); f++) { 284 + RemoveDllDirectory = (BOOL WINAPI (*)(HANDLE)) GetProcAddress(kernel,"RemoveDllDirectory");
  285 + if(RemoveDllDirectory) {
258 286
259 - if(dlldir[f].cookie) { 287 + for(size_t f = 0; f < G_N_ELEMENTS(dlldir); f++) {
260 288
261 - RemoveDllDirectory(dlldir[f].cookie); 289 + if(dlldir[f].cookie) {
262 290
  291 + RemoveDllDirectory(dlldir[f].cookie);
  292 +
  293 + }
263 } 294 }
  295 +
264 } 296 }
265 297
266 - } 298 + FreeLibrary(kernel);
267 299
268 - FreeLibrary(kernel); 300 + }
269 301
270 if(!hModule) { 302 if(!hModule) {
271 return false; 303 return false;