Open Source & Free  

Codename One 3.1 Release Notes

Codename One 3.1 Release Notes


Version 3.1 is the first release in our fast pace release cycle of 4 releases per year. It brings stability, bug
fixes and great new features to the table. The biggest highlights of this release are support for Java 8 and simplified
certificate generation for iOS. Check out the list below for more details.

Highlights – Click For Details

Java 8 Language Features

iOS Certificate Wizard

Authentication Framework

Font Icons

Better Crash Reporting


  • Fixed issue #1460 – made methods of PurchaseCallback run on the EDT for Android
  • Fixed issue #1465 – Error starting MyApplication5: Module ‘MyApplication5-10’ has verification error 2924 at offset cac9 (codfile version 79)
  • Fixed RFE #1477 – Added TextField password obfuscation on desktop builds
  • Fixed issue #1457 – Validator is not re-enabling submit buttons
  • Migrated the location of storage files to a new location
  • Fixed issue #1479 – OAuth2 result access token processing causes StringIndexOutOfBoundsException
  • Created native implementations for some of the heavier used String and StringBuilder methods for faster performance
  • Fixed issue #1484 – IOS GLUImage.m Memory Leak
  • Fixed issue #1410 – iOS: Animations still running while app is background
  • Fixed RFE #1430 – Added support for instantly killing connections when kill() is called on them so that they don’t continue to block the queue.
  • Fixed issue #1100 – FileSystemStorage.getLastModified() returns 0 on iOS
  • Fixed issue #1424 – Failed to fetch address from contact on iOS
  • Fixed String.indexOf() to allow for negative starting positions for the new VM
  • Fixed issue #1231 – SQL errors now throw IOExceptions on iOS
  • Fixed issue #1074 – virtual keyboard might scroll content behind statusbar on iOS7
  • Added arc() method to GeneralPath
  • Fixed issue #1488 – OnOffSwitch for android not working
  • Fixed problem with accessing static variables in the new VM
  • Fixed GC issue with static objects such as arrays of strings or multi-dimension array
  • Fixed issue #1470 – Auto-scrolling while dragging does not behave well
  • Fixed String.toUpperCase()/toLowerCase() to work with non-ascii chars
  • Fixed issue #1497 – Media Player Controls behavior on Android
  • Fixed issue #1498 – null pointer exception when attach/detach bluetooth barcode scanner
  • Fixed issue related to #1372 where NSString was failing silently on data with the wrong encoding
  • Added macros CN1_YIELD_THREAD and CN1_RESUME_THREAD that an be used in native code that blocks and could potentially cause deadlocks with the GC thread
  • Fix for issue #1505 – static final strings were removed from the GC but their internal char array was not
  • Fix for issue #1481 – FlowLayout with setFillRows, true draws contained component (button) shifted to the right
  • Added fireActionEvent to Calendar
  • Deprecated cloud storage
  • Fixed Socket available() always returning 0 on connectionEstablished() in iOS.
  • Fixed issue #1513 removing attribute that might cause an issue with appstore submission
  • Implemented Database.execute(String,Object[])
  • Fixed Database.execute to deal properly with null and blob parameters
  • Fixed nullpointer exception on apps that support Push – but are built for a platform that does not support Push
  • Fixed issue #1520 – admob shows black container
  • Fixed the admob adview which stole the focus from the main view causing it to not paint properly
  • Fixed issue #1425 – out of memory errors on iOS with large Multipart requests
  • Made it possible to find the component matching a given command if applicable
  • Fixed issue #1095 – Container.replace() with null transition does not update x, y, width and height of next component
  • Fixed issue #1007 – position of back command wrong on first call to addCommand in SideMenuBar class
  • Improved the general performance of String methods and HashMap elements.
  • Fixed issue #1526 – Android port, recent updated build server, ConnectionRequest missing sent Content-Length while POST
  • Fixed problem with arcs in the charts package on Android 4. Arcs were showing up distorted
  • Changed the requestFocus to happen only when there are ads on the Form
  • Fixed scrolling for forms with ChartComponent. Fixed label text size in charts.
  • Fixed possible infinite loop in chart rendering
  • Changed charts to use built-in arc function instead of using a path. Should improve performance on some platforms
  • Fixed issue #1519 – Synchronized block deadlock after an exceptions on iOS
  • Fixed catch all exception which wasn’t caught correctly using 0 instead of -1 class id
  • Fixed exception pointer to point at the right location after an exception in a nested try/catch was thrown so if an exception was caught then
    rethrown it wasn’t caught in the correct catch statement and initially even caused a deadlock
  • Removed deprecated maker package
  • Simplified the java.util.Timer code on the iOS port to make it function more correctly
  • Added a setChunkedStreamingMode API
  • Fixed the infinite progress caching
  • Fixed issue #1377 for regression with showing text fields in iPad on iOS 7
  • Fixed oauth2 to handle json token responses
  • Fixed issue with fillArc in iOS
  • Fix for issue with URLImage not working with ImageViewer
  • Made force revalidate work more aggressively
  • Fixed Issue #1540 – Network request is halted when the dialog cannot be shown up due to network problem.
  • Made Container Iterable to allow for-each code such as for(Component cmp : cont) { …. }
  • Improved XML parser case sensitivity
  • Fixed the app home path in the JavaSE port when the filesystem is exposed (desktop port)
  • Fixed iOS drawArc to work for both negative and positive angles properly
  • Added support for improved for each with XML element
  • Modernized some XML processing code allowing for-each on entries
  • Fixed issue with dup_x2 instruction not handling form 2 (where the ‘middle’ word is a double or long)
  • Updated facebook to version 4.4.0 and added inviteFriends