GNU Java jni.h is non-compliant

Just a warning, and to add to the long list of things that are wrong with GNU Java, its jni.h file doesn't conform to the JNI specification. Several dozen 'const's are missing on method parameters, and jboolean and jbyte both map to the same native type. Both these can cause spurious compile errors with JNI-standard-conforming C or C++ code.

All the j* types defined in the proper jni.h have distinct types. This makes it possible to use C++ template functions creatively to unite all the various JNI calls that differ only by argument type and name, so you can forget about 90% of the JNI API completely. When GNU Classpath gets this wrong it breaks the above.

Similar Messages

  • Things that are wrong with GNU Java

    I thought I'd start this topic for reference. Contributions and corrections welcome.
    Things I've encountered or seen here over the years:
    1. Incompatible under Serialization.
    2. Incompatible under RMI.
    3. Swing support is either missing or incomplete.
    4. jni.h doesn't agree with the JNI specification (found this yesterday: dozens of 'const's missing on parameters, and jboolean and jbyte both map to the same underlying native type, unlike the real jni.h).
    I suppose it might ultimately have been more efficient to start a topic 'Things that are right with GNU Java' ...

    I can't agree with that. If anyone implements Java, for any reason, good or bad, they are supposed to get it right. IBM's Java exists and doesn't have these problems. And there are other vendors. There's only one 'vendor' with a majjor problem and that's what the thread is about.
    GNU has got it so wrong with their 'Java' that I can't see how it can possibly pass the compatibility tests, so how they can get away with calling it Java at all is another mystery ... When you look at their offerings, GCC is really their only major success. Their original goal, a GNU kernel, was never finished ...
    For the record, and the purpose of this thread, GNI Java ['supports most of the 1.4 libraries plus some 1.5 additions'|http://gcc.gnu.org/java/]. In other words they haven't finished 1.4 yet, which came out on Feb 13, 2002, and is now in end-of-life, which ['will complete October 30th, 2008'|http://java.sun.com/j2se/1.4.2/]. Let alone 1.5 which came out on Sept 29, 2004. Their target? ['GNU Classpath 1.0 will be fully compatible with the 1.1 and 1.2 API specifications, in addition to having significant (>95%) compatability with the 1.3, 1.4, 1.5 and 1.6 APIs'|http://www.gnu.org/software/classpath/]. In other words 1.0 isn't out yet.

  • Mapping struct dataype in C to Java JNI

    Do anyone have idea how to map struct datatype in C to Java JNI?
    I've got idea and examples of mapping primitive datatype and array in C to Java JNI but none for struct datatype in C?
    Hope I can got an example of it! Thanks!!!

    The first way - by the book
    Read Sheng Liang's book (downloadable from ftp://ftp.javasoft.com/docs/specs/jni.pdf )
    In brief - and explaining only the main steps - no detailed instructions - please read the book
    You want to return an array of the following objects (they have only primitive data, for easing the explanation)
    //-- C++
    struct MyData {
        int firstField;
        char *secondField;
    //-- Java
    public class MyData {
        public int firstField;
        public String secondField;
    }in the native Java method "doSomething" of the class MyProgram
    public class MyProgram {
        static {
            System.loadLibrary ("myjni");
        public static native MyData[] doSomething() ;
    }You will have to call JNI functions for creating the MyData[] array, for creating individual MyData objects, and for setting the individual fields of each MyData object. Very boring indeed.
    The second way - the hard one
    Instead of returning a Java array of Java objects, study the serialization format of Java, and return a Java array of bytes. Then use ByteArrayInputStream and ObjectInputStream, or DataInputStream, for deserializing the objects you do need to get in your program. It will be slower than creating directly the Java objects in your C++ program, but you can save a few lines of code in your C++ program. (You will maintain the program yourself, don't you?)
    The third way - the lazy one
    Instead of returning a Java array of Java objects, return a Java String (it could be a XML-formatted string, or a string using delimiters - what you think that is easier to encode in C++ and decode in Java.)
    The third way - the better way
    Use the SWIG framework ( http://www.swig.org ). Your code will be very maintenable, you will not have to deal with JNI issues (there are lots and lots of JNI details you will have to bother with, solve all that problems with SWIG). Take care with spelling - SWIG is not SWING.

  • ISE 1.2 - Posture Detail Assessment - enforcement audit mode report not show status for non-compliant

    ISE 1.2 - Posture Detail Assessment - enforcement audit mode report not show status for non-compliant.
    - For old version 1.1.4 it can be reported for non-compliant, How can I generate report for this? 
    Thanks
    Kosin Usuwanthim

    It used to be in there (id 226635 is the last one with it); should I clean it up a bit and put it back with a bit more of a disclaimer?

  • How can I get report of only non compliant clients via Fileshare or to admin mailbox each day?

    I need to figure out how to get a daily report of non compliant clients in SCCM2012 to admin email or fileshare.
    Is there any built-in report that returns only non compliant clients I could use to accomplish this,
    and create alert subscription or exchange server connector to receive the message / file once a day ?
    Do I need to use SQL Server Reporting Services for this ? New to SCCM and getting confused with all those reports,
    sorry ;-)

    Yes you need SSRS for this.
    This will help.
    http://be.enhansoft.com/post/2013/08/27/How-to-Set-up-a-Windows-File-Share-Subscription.aspx
    http://be.enhansoft.com/post/2013/08/14/How-to-Set-up-an-Email-Subscription-in-SSRS.aspx
    Non compliant for what?
    http://www.enhansoft.com/

  • PS CS5 workaround to non compliant Shader3.x/OpenGL 2.0 video cards

    Stumbled upon a possible workaround for those who want to use some of the latest CS5 PhotoShop enhancements such as 3D effects and Repoussee which is worth sharing.  Background.... home workstation is a i7-920 Windows 7 Ultimate 64-bit o/s with modest NVidia GTS250 which is fully hardware compliant Shader 3.x and OpenGL 2.0 however my company issued laptop used for traveling demo's is a standard Dell Latitude D620 with non compliant Intel GPU which was unable to create simple 3D effects with any invoked PhotoShop graphic.  Each of the 3D effects from the PhotoShop CS5 pull downs were grayed out and verified as a non compliant via Edit --> Preferences -->Performance on the Dell D620.  Finally had time to create a simple "down and dirty" 3D graphic using either the predefined hat or can 3D effect composed on the i7-920 Windows 7 Ultimate 64-bit o/s then saved as a file type PSD to a flash drive.
    Open the same created file on my Dell D620, got a warning message the built in GPU on the Dell D620 was non compliant hardware hence rendering would be via software (versus video hardware).  The 3D can opened on the Dell but more importantly I was able to successfully perform edits.  Long story short you might be able to circumvent non compliant video card issues by opening a saved 3D PSD file which will render/edit on non-compliant GPU's.  BTW, my D620 is 32-bit Windows XP Professional SP3.  If others can try my premise and feed back to this forum it would prove beneficial to all the members in this forum.  Can anyone validate this on say laptops other than a Dell D620 and Dell E6410?  I suspect once you call in a 3D PSD file composed on a non-compliant platform, it toggles a PhotoShop "on" bit to enable 3D software rendering.   Talk about being stoked on this exercise

    Forgot to mention you still have to have CS5 installed on your non-compliant laptop.  Wouldn't it be funny if this is a PS bug requiring a toggled bit to be set in order to render in 3D?

  • What is "Remediate non Compliant Rule when supported" and how to use it ?

    Hi, 
    now i have created around 10 baselines for the driver compliance check for different make and model of laptops and desktops, the os platform on the computer will be Win 7 X 64 computers 
    CI's working fine and iam curious to learn what is the  ( Remediate non Compliant Rule when supported ) option actually ment for , what all we can use it for ?
    and i need a example with complete steps too please
    all i can understand from the word Remediate is that it will either run a query or initiate a process such as install the correct version of driver etc , please correct me if iam wrong
    Thank you
    OSLM ENGINEER - SCCM 2007 & 2012

    When creating a CI you can also configure a remediation script, that script will be used to remediate a non-compliant system. Also, some simple things like change the value of an existing registry key from 0 to 1 are supported out-of-the-box for compliance
    and remediation.
    An example:
    http://www.petervanderwoude.nl/post/allow-direct-installation-of-windows-8-apps-via-compliance-settings-in-configmgr-2012/
    Another example:
    http://www.petervanderwoude.nl/post/go-to-desktop-on-sign-in-on-windows-8-1-via-compliance-settings-in-configmgr-2012/
    My Blog: http://www.petervanderwoude.nl/
    Follow me on twitter: pvanderwoude

  • Sql.Blob:   java.sql.SQLException: Funzione non supportata   .....help me

    Hello,
    I hope you can help me :-) !!!!!!
    I have a EJB, in a metod of EJB i would update a object blob in a database. So i get a old blob from database by
    resultSet rs = ****query****
    ((oracle.jdbc.oracleSet) rs ).getBLOB(1);
    but throws ClassCastException on the cast oracleSet......
    i try withthis code:
    ResultSet rs = ****query****
    Blob b = rs.getBlob(1);
    OutputStream out = b.setBinaryStream(1);
    but throws java.sql.SQLException: Funzione non supportata
    Why?????
    what's can i do?
    help me!!!!!!!
    thanks

    Hello,
    I hope you can help me :-) !!!!!!
    I have a EJB, in a metod of EJB i would update a object blob in a database. So i get a old blob from database by
    resultSet rs = ****query****
    ((oracle.jdbc.oracleSet) rs ).getBLOB(1);
    but throws ClassCastException on the cast oracleSet......
    i try withthis code:
    ResultSet rs = ****query****
    Blob b = rs.getBlob(1);
    OutputStream out = b.setBinaryStream(1);
    but throws java.sql.SQLException: Funzione non supportata
    Why?????
    what's can i do?
    help me!!!!!!!
    thanks

  • NON-COMPLIANT: ..oraInst.loc doesn't point to inventory inside ORACLE_HOME

    Hello Gurus:
    I have just migrated and upgraded EBS 11i to 12.1.1 and now having trouble with the oraInventory setup.
    I have the three $ORACLE_HOMEs for 11.2.0 rdbms, 10.1.2 & 10.1.3 for the apps.
    cat /etc/oraInst.loc
    inventory_loc=/etc/oraInventory
    inst_group=oinstall
    RDBMS:
    cat /u01/app/oracle/product/11.2.0/db_1/oraInst.loc
    inventory_loc=/etc/oraInventory
    inst_group=oinstall
    10.1.2 :
    cat /u02/applfind/apps/tech_st/10.1.2/oraInst.loc
    inventory_loc=/etc/oraInventory
    inst_group=oinstall
    10.1.3 :
    cat /u02/applfind/apps/tech_st/10.1.3/oraInst.loc
    inventory_loc=/etc/oraInventory
    inst_group=oinstall
    First there is no ouicli.pl in RDBMS home so I use ./runInstaller -silent -attachHome to add it to the inventory
    For 10.1.2 & 10.1.3 Homes, when I use ouicli.pl it give me errors:
    cd $ORACLE_HOME/appsutil/clone
    ./ouicli.pl
    Out put:
    NON-COMPLIANT: /u02/applfind/apps/tech_st/10.1.2/oraInst.loc does not point to an inventory inside the current ORACLE_HOME
    Rapid Clone only supports oraInst.loc at that location if its content points to an inventory inside the same ORACLE_HOME
    Please make the necessary changes to the following file:
    /u02/applfind/apps/tech_st/10.1.2/oraInst.loc
    running OUI CLI home cloning:
    /u02/applfind/apps/tech_st/10.1.2/oui/bin/runInstaller -debug -clone -silent -force -nolink -waitForCompletion -invPtrLoc /etc/oraInst.loc session:ORACLE_HOME=/u02/applfind/apps/tech_st/10.1.2 oracle.as.j2ee.top:s_asInstanceName=OFD1_TOOLS__u02_applfind_apps_tech_st_10_1_2 oracle.as.j2ee.top:s_adminName=ias_admin oracle.as.j2ee.top:s_adminPassword=welcome ORACLE_HOME_NAME=OFD1_TOOLS__u02_applfind_apps_tech_st_10_1_2 -J-Doracle.installer.noLink=true
    Finished OUI CLI cloning for s_tools_oh with return code: 0Sat Oct 6 04:52:49 2012
    I have followed MOS Notes to no success:
    How to create, update or rebuild the Central Inventory for Applications R12 [ID 742477.1]
    How to Recreate the Global oraInventory [ID 295185.1]
    Global and Local Inventory explained [ID 360079.1]
    1) Looking at my oraInst.loc entries above what am I missing?
    2) Should there be a local and then a Global inventory? And if so, how is each defined - especially the Local inventory?
    3) How to I get ouicli.pl to update both local and global inventories as it is supposed to do?
    4) Why is it that When I changed the entry of /u02/applfind/apps/tech_st/10.1.2/oraInst.loc to:
    inventory_loc=/u02/applfind/apps/tech_st/10.1.2/oraInventory
    The /etc/oraInventory/ContentsXML/inventory.xml will not be updated?
    Thanks
    ChoMA

    Hello Hussein,
    We are Migrating and upgrading EBS 11i on a 32 bit ULN 4 to EBS 12.1.3 on an x86-64 bit ULN following doc 557738.1 (Export/import notes ....)
    We are currently at 12.1.1 and preparing to move onto 12.1.3.
    The folder $ORACLE_HOME/appsutil/clone/bin on this new server and installation f 12.1.1 does not contain adcfgclone.pl as needed by Note 458653.1
    Note [ID 742477.1] (How to create, update or rebuild the Central Inventory for Applications R12) called for using $ORACLE_HOME/appsutil/clone/ouicli.pl in the 11.2.0 rdbms ORACLE_HOME but this file (ouicli.pl) is also not there? It is nevertheless presnet in the in 10.1.2 & 10.1.3 ORACLE_HOMEs.
    1) Looking at my three oraInst.loc entries above what am I missing?
    2) Should there be two inventories (Local & Global)? And if so, how is each defined - especially the Local inventory?
    3) How do I get ouicli.pl to update both local and global inventories as it is supposed to do? From the error (NON-COMPLIANT: /u02/applfind/apps/tech_st/10.1.2/oraInst.loc does not point to an inventory inside the current ORACLE_HOME), ouicli.pl apparenlty needs a local inventory but how do I define both?
    4) Why is it that when I changed the entry of /u02/applfind/apps/tech_st/10.1.2/oraInst.loc to:
    inventory_loc=/u02/applfind/apps/tech_st/10.1.2/oraInventory
    The /etc/oraInventory/ContentsXML/inventory.xml will not be updated?
    Thanks very much
    ChoMA

  • Using java object in a non java application

    Can you tell me how will i be able to use a java object(how can i instantiate a java class) in a non java application.I have read about COM,DCOM but these are fine only with micrososft platforms .Can anyone offer me alternative solutions...i also have read about CORBA ...kindly pour in your advice

    i have read about it thats true but had i understood it from the material i wouldnt have asked for help ..instead i would i have been working on my project..

  • Deployment Question and non-compliant

    Hi, I have a question about deployments and non-compliant systems. Since we updated to 2012 R2 I have had many patching deployments fail with non-compliant messages. If I bring up the deployment it shows many are installed and many are Required.
    Could anyone answer the following question?
    If for example I am deploying a IE 11 patch to Windows 7 machines that does not have IE 11 installed yet would that give the non-compliant error because it cannot install the IE11 patch? This would also apply to .Net 4 and 4.5 for example. We deploy Software
    Update Groups based on Operating Systems so every month I search for every patch non-expired and not superseded for the OS in question and then make the software update group based on that. I figured if the software update group had a patch for a product like
    IE 11 that was not installed on the device yet it just would not install it.
    Any help is appreciated.

    Hi,
    If the update isn't applicable let's say that IE11 is not installed it will not report it as non-compliant and it will not report it as required either so you should be fine in the reports.
    Regards,
    Jörgen
    -- My System Center blog ccmexec.com -- Twitter
    @ccmexec

  • Server showing non compliant for a no longer targeted Configuration Item

    Hi all, 
    I have a server that was removed from a collection which had a DCM baseline targeted to it.  It is still showing non compliant for Configuration items that were targeted at the old collection.  (which is correct, it isn't compliant but it isn't supposed
    to be).  I am trying to create a collection based on non compliant items but this server keeps showing up where it shouldn't be.  is there anyway to 'flush' all the compliance information and let the client rebuild it?
    thanks
    -cornasdf
    http://cornasdf.blogspot.com

    The collection is based on a WQL query that basically says, where the configuration item name = x and state <> compliant.  
    I have several of these where the servers that are non compliant fall into a collection that has an advertisement that remediates them.  
    The difficulty here is that I have a collection of BackEnd servers, based on IP Subnet.  That collection has a DCM Baseline targeted at it that checks for non compliance on specific items.  When building
    some new servers, we connected to hte wrong network for a couple of days, so they were in the included in BackEnd Servers collection which handed out the baseline.  We disconnected that link and the servers have fallen out of that collection.  The
    baseline no longer shows in teh control panel app.  
    But in my compliance collections, it still shows up as non compliant for that Conf Item.  
    I have a work around in place.  actually two.  The first was to just delete the client and let it reinstall.  That worked but seems heavy handed.  Secondarily, i narrowed my query by collection,
    ie the query for non compliance now is limited to the collection where I apply the baseline.  this is somewhat limiting for future instances (and shouldn't be necessary).
    it seems like a bad enough design flaw that I assumed I must be missing something pretty obvious.  if I remove a server from a collection w/ a baseline, it shouldn't still be non compliant for things non longer targeted to it.
    -cornasdf
    http://cornasdf.blogspot.com

  • Using java jni

    Hello,
    I'm trying to figure out a way to start small Java-Programs from within
    Labview 6.0.1. Does anybody know how to do this? Every time I use the
    call dll-function to invoke the java-jni api Labview crashes. Invoking
    Java via the active-x plugin doesn't work either.
    Any suggestions are welcome. Thanks.
    Norman Südekum

    Norman,
    Try updating to LabVIEW 6.0.2 to get all of the ActiveX fixes and try the ActiveX method again. (You cannot do this if you only have the Evaluation version.) You can also call java from the System Exec.vi if you do not need data directly back (you can transfer it many other ways: files, TCP, pipes, etc).
    Also, see the following:
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RNAME=ViewQuestion&HOID=506500000008000000102D0000&ECategory=LabVIEW.LabVIEW+General
    http://digital.ni.com/public.nsf/websearch/BEE812007BA2A9B486256BC80068A49A?OpenDocument
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://www.ni.com/ask

  • Machine shows Non compliant in SCCM 2012R2 Configuration Manager

    We are using 2012 sccm R2 and one of our client machine shows non compliant in the reports. When we check the machine , we found that all the required and approved patches are downloaded . So it should be a compliant machine .
    SCCm Clinet is ACtive and we are able to run the cycles from the machine too. Would like to know what all steps that we need to perform for solving the issue.
    Server OS 2008 R2
    Thanks
    Madhu Madhavan

    if client having wmi issues pertaining to configmgr,then it will not (most cases) send the inventory .check the inventoryagent.log .To fix WMI issues.you can try the script http://eskonr.com/2009/03/how-to-troubleshoot-the-systems-which-has-wmi-issues-rebuild-wmi-repository/
    if you are sure that,client is functioning normal and the issue is only with software update compliance,you can try refresh the compliance state using script https://msdn.microsoft.com/en-us/library/cc146437.aspx.
    Eswar Koneti | Configmgr blog:
    www.eskonr.com | Linkedin: Eswar Koneti
    | Twitter: Eskonr

  • 3560 Interconnect Cable - Port Disabled b/c non-compliant GBIC

    I purchased a CAB-SFP-50CM Catalyst Interconnect Cable to connect two 3560s. When the cable is plugged in, I receive the following error in the Cisco Network Assistant:
    Description: Gi0/1: This port has been disabled because Non Compliant Gigabit Interface Converter (GBIC) connector detected.
    Recomendation: Replace connector with cisco compliant Gigabit Interface Converter (GBIC) connector. Refer switch technical documentation to determine cisco compliant connector. Enable the port again.
    Any help? I assumed this would be a "plug and play" installation. Re-enabling the disabled port doesn't seem to help.
    Thanks in advance...

    Thanks for the response - this is a Cisco branded cable:
    Manufacturer: CISCO
    Description: CATALYST 3560 SFP INTERCONNECT CBL 50CM
    Part Number: CAB-SFP-50CM=
    I thought I had done my research...according to the 3560 data sheet
    (http://www.cisco.com/en/US/products/hw/switches/ps5528/products_data_sheet09186a00801f3d7d.html)
    "These ports also support the Cisco Catalyst 3560 SFP Interconnect Cable for establishing a low-cost Gigabit Ethernet point-to-point connection."
    However, it doesn't seem to work. Is it possible that I've got a defective cable, or is there something else that I need to do?
    Thanks again.
    Edited to add: the cable I have is pictured in the data sheet (Figure 2) and the switches I am trying to interconnect are model WS-C3560-48PS.

Maybe you are looking for