X-Spam-Check-By: sourceware.org Message-ID: <43D8DE02.4050407@andxor.it> Date: Thu, 26 Jan 2006 15:34:42 +0100 From: Lapo Luchini User-Agent: Thunderbird 1.5 (X11/20060112) MIME-Version: 1.0 To: cygwin AT cygwin DOT com, Alessandro Premoli Subject: Java and Cygwin: a difficult relation OpenPGP: id=15046F78 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms080405070108050805060908" Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------ms080405070108050805060908 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit In the company I and Alessandro (in cc) work for there is a Java application that uses gamin in order to receive file alteration events. Main development platform is FreeBSD and, as gamin has no pure-Java client available, we used a smallish JNI wrapper around the libgamin client; it works flawlessly. The problem is now, of course, to do it all on Windows. gamin seems to compile and work, on cygwin, with a few patches; this seemed to be the hard part, but in fact reveals to be the easier one. The other problem is that from JNI you can't simply call a cygwin DLL, as it wouldn't load his cygwin1.dll dependency correctly and surely dump. I had a similar problem, a few months ago: calling a .NET managed code from Java. In that case, I reversed the approach: instead of importing an external DLL using JNI, I instantiated the Java Virtual Machine itself inside the .NET program, and "register" the local function as a static method of the Java class. This is the approach we pursued since this very morning, "almost" succeeding in it. "almost", unfortunately. Calling the C function is not a problem, it even does a couple debug printf with no problem. But as soon as the C function calls a libgamin method (FAMOpen, the very first one), it all fails miserably. Anyone has an idea why? Is it a random bug or a fundamental problem of the way cygwin1.dll works (like in the case of direct JNI)? Follows the error itself: # # An unexpected error has been detected by HotSpot Virtual Machine: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x610ad945, pid=1280, tid=1084 # # Java VM: Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode, sharing) # Problematic frame: # C [cygwin1.dll+0xad945] # # An error report file with more information is saved as hs_err_pid1280.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # And an excerpt of hs_err_pid1280.log (the relevant stack frame): Stack: [0x00030000,0x00230000), sp=0x0022e9ec, free space=2042k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [cygwin1.dll+0xad945] C [cygwin1.dll+0x8dd7f] C [launcherS.exe+0x3048] C [launcherS.exe+0x11e4] j com.andxor.gamin.FAMConnection.FAMOpen()J+0 j com.andxor.gamin.FAMConnection.()V+25 j FAMTest.main([Ljava/lang/String;)V+27 v ~StubRoutines::call_stub V [jvm.dll+0x845a9] V [jvm.dll+0xd9317] V [jvm.dll+0x8447a] V [jvm.dll+0x8b44a] C [launcherS.exe+0x1b35] C [launcherS.exe+0x1c72] C [cygwin1.dll+0x5bc8] C [cygwin1.dll+0x5eb3] Thanks in advance for any suggestion, Lapo and Alessandro --------------ms080405070108050805060908 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEH AQAAoIIJHzCCAuowggJToAMCAQICAw+xATANBgkqhkiG9w0BAQQFADBiMQsw CQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3Vp bmcgQ0EwHhcNMDUxMDE4MTI1MjE2WhcNMDYxMDE4MTI1MjE2WjBcMRAwDgYD VQQEEwdMdWNoaW5pMQ0wCwYDVQQqEwRMYXBvMRUwEwYDVQQDEwxMYXBvIEx1 Y2hpbmkxIjAgBgkqhkiG9w0BCQEWE2wubHVjaGluaUBhbmR4b3IuaXQwggEi MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIrNiX0ghRZgfK1jIbfkDd vopPA31Pj6uO9b7v4T9Hk+U6AdijkYsiZe97FXQQ8kqUbYor8ZCQyfe9ymxN Tw0sytCjlEXg94vytgAFXlq+ESuJdo7cPOR7RBBqd7MOhRhYEmsx4i0cxNZ2 WSQMB3TIc3nay1I3056htPZw7c4Jkbh9vKSDZNDfDB1gGSdmbCmD5BRyWkfV oHLdUdawU3yKneYA6Cy3Kw3jm6VK6twZaleCFgXcBlULkRXDANod7vSJxE+h n3SkwMb0n0yz9lpxGeKZ9fjuVxGIxnL6gTFFe0NpHqwJbleKPsyPmun0W13j HF/f2LFDXj09ZoOD6vptAgMBAAGjMDAuMB4GA1UdEQQXMBWBE2wubHVjaGlu aUBhbmR4b3IuaXQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQBk NpZVBNSoj0XwjszvwqUxXAjXzTSWHkc2pkQ2Zz+YIGKpOcLyeXRAVes5HaRU mQKzJtxsiLyHjCDXnWpa1hah7xWb5WZQEhcF5mCSYcivGU89toa3XAd3+ieQ lMAGFVmeh7zs58Scnxw55pyLyWmTUZc59SvmMkfgu56xpKyAxjCCAuowggJT oAMCAQICAw+xATANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMG A1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMj VGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwHhcNMDUxMDE4 MTI1MjE2WhcNMDYxMDE4MTI1MjE2WjBcMRAwDgYDVQQEEwdMdWNoaW5pMQ0w CwYDVQQqEwRMYXBvMRUwEwYDVQQDEwxMYXBvIEx1Y2hpbmkxIjAgBgkqhkiG 9w0BCQEWE2wubHVjaGluaUBhbmR4b3IuaXQwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQDIrNiX0ghRZgfK1jIbfkDdvopPA31Pj6uO9b7v4T9H k+U6AdijkYsiZe97FXQQ8kqUbYor8ZCQyfe9ymxNTw0sytCjlEXg94vytgAF Xlq+ESuJdo7cPOR7RBBqd7MOhRhYEmsx4i0cxNZ2WSQMB3TIc3nay1I3056h tPZw7c4Jkbh9vKSDZNDfDB1gGSdmbCmD5BRyWkfVoHLdUdawU3yKneYA6Cy3 Kw3jm6VK6twZaleCFgXcBlULkRXDANod7vSJxE+hn3SkwMb0n0yz9lpxGeKZ 9fjuVxGIxnL6gTFFe0NpHqwJbleKPsyPmun0W13jHF/f2LFDXj09ZoOD6vpt AgMBAAGjMDAuMB4GA1UdEQQXMBWBE2wubHVjaGluaUBhbmR4b3IuaXQwDAYD VR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQBkNpZVBNSoj0XwjszvwqUx XAjXzTSWHkc2pkQ2Zz+YIGKpOcLyeXRAVes5HaRUmQKzJtxsiLyHjCDXnWpa 1hah7xWb5WZQEhcF5mCSYcivGU89toa3XAd3+ieQlMAGFVmeh7zs58Scnxw5 5pyLyWmTUZc59SvmMkfgu56xpKyAxjCCAz8wggKooAMCAQICAQ0wDQYJKoZI hvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh cGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1 bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNp b24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkG CSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0w MzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5NTlaMGIxCzAJBgNVBAYTAlpBMSUw IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQD EyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzANBgkq hkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me 7L3N9VvyGna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688 Cwfn8R+RNiQqE88r1fOCdz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/ p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEA MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3 dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNVHREE IjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcN AQEFBQADgYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2f Ni/A9BxQIJNwPP2t4WFiw9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amc OY6MIE9lX5Xa9/eH1sYITq726jTlEBpbNU1341YheILcIRk13iSx0x1G/11f ZU8xggM7MIIDNwIBATBpMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3 dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVy c29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIDD7EBMAkGBSsOAwIaBQCgggGn MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA2 MDEyNjE0MzQ0MlowIwYJKoZIhvcNAQkEMRYEFONOjZluxlqA7qythS8Km+EZ KpsGMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwIC AgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMHgG CSsGAQQBgjcQBDFrMGkwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0 ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJz b25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAgMPsQEwegYLKoZIhvcNAQkQAgsx a6BpMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGlu ZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1h aWwgSXNzdWluZyBDQQIDD7EBMA0GCSqGSIb3DQEBAQUABIIBADtLXf6ICJcP jTU32LX9fkdieCzu3Ugdh/uZA9WWn74xQbjk8f4J7WGHrsdF/fdoy6xQ/Q+l cQlPDkeuvNujr4sZIFKydkDMUdZnoD8sFxSO1/OhlPYe1tK+aFtWcY3x4wdv lRys9biffrj811n/W0A7CmDHLtzYGGwP7tP+Wtowk1lEYNTNHQBnbtWPuv9w Sz7XGhdZiRDpIxlg7dFMB6f9KeQIGz7GuAog23R7z91mKr1tyDKeC5/rzN4p 8oo5h8qadmxvZAgyJDBPNznhi/qeohCrmrHteF0MuXPo3yurYsUG9YZwEhsK xecI8NG3acLfXMjv+5IJ+gvDyWT4zmwAAAAAAAA= --------------ms080405070108050805060908--