FOSDEM is the biggest free and non-commercial event organized by and for the community. Its goal is to provide Free and Open Source developers a place to meet. No registration necessary.

   
Speakers
Raoul-Gabriel Urma
Janina Voigt
Schedule
Day Saturday
Room K.4.401
Capacity 85
Start time 14:00
End time 14:30
Duration 00:30
Info
Track Free Java Devroom

Using the OpenJDK to investigate covariance in Java

The Java type system is unsafe since it allows covariant use of arrays. For example, an array of Bananas can be used where an array of Fruit is expected, given that Banana is a subclass of Fruit. This allows the following unsafe code:

Banana[] bananas = new Banana[5];
Fruit[] fruits = bananas;
fruits[0] = new Apple();  // runtime exception
bananas[0];  //  Apple?

In the above example, the programmer gets back an Apple where he was expecting Bananas, causing an undesired runtime exception.

We investigate the covariant use of arrays in open source Java programs to see whether programmers use this problematic feature of Java. We make use of the freely available OpenJDK, modifying its Java compiler to disallow covariant use of arrays, thus reporting any such uses as compile errors. We apply this compiler to a code corpus of 106 open source programs, including large and well-known programs such as Eclipse, JUnit and Ant.

Initial results of our investigation show that covariance is rarely used outside the context of legacy code and Java libraries. This leads us to question its relevance in the Java language.

In our talk, we also discuss solutions to covariance taken by other languages such as Scala and Google Dart, explain our modifications to the OpenJDK Java compiler and report the full results of our study.

Concurrent events:

When Event Track Where
13:45-14:15 Why Java for Linux Applications? CrossDesktop H.1308
13:45-14:15 GNUstep GUI GNUstep AW1.126
14:00-14:15 Linux Kernel MultiPath TCP Lightning Talks Ferrer
14:00-14:25 The Aeolus Project Virtualization and Cloud Chavanne
14:00-14:30 The state of Women & Mozilla Mozilla UD2.218A
14:00-14:30 FLOSSing for Good Legal Hygiene: Stories from the Trenches AW1.125
14:00-14:30 Deep Dive into KDE Mobile development on N9/N950 (Harmattan) Open Mobile Linux AW1.120
14:00-14:30 WebApps: Building Real-time in the Web with XMPP Jabber and XMPP H.2213
14:00-14:30 Gluon Mono K.3.601
14:00-14:30 Improving the Extensions and Template Center LibreOffice H.1309
14:00-14:50 Multi-CPU performance in PostgreSQL 9.2 PostgreSQL K.4.201
14:00-14:50 Multicore programming support in Ada Ada AW1.121
14:00-14:50 Beyond Traditional Mobile Linux Future of UI K.1.105
14:00-14:50 Ganeti: "how we did it" Hypervisors Janson
14:00-14:55 JBoss AS7 : Building JBoss AS 7 for Fedora JBoss.org K.3.201
14:00-15:00 Illumian, a new illumos based distribution CrossDistribution H.1301
14:00-15:00 Multi-OS Continuous Packaging with Project-Builder.org CrossDistribution H.1302
14:00-15:00 Deployment and Use of X.509 in Free Software Components Hardware Cryptography H.2214
14:00-15:00 License issues in Android Embedded Lameere
14:00-15:00 dma_buf buffer sharing X.org+OpenICC K.3.401
14:00-15:45 LPI Exam Session 1 Certification Guillissen
14:00-16:00 TYPO3 certification exams Certification UA2.114
14:00-16:00 BSDA certification exams Certification UA2.114
14:20-14:35 Dovecot: More than an email server Lightning Talks Ferrer
14:20-14:50 Sustainable mentorship CrossDesktop H.1308

Next (up to 3) talks in the same room (K.4.401):

When Event Track
14:30-15:00 Politics, Positives, Paperwork and Pain - Our year to date in the JCP Free Java
15:30-16:00 Java in the Age of the JVM Free Java
16:00-16:30 Introducing Mutability Detector Free Java

Events that start after this one (within 30 minutes):

When Event Track Where
14:30-15:00 Politics, Positives, Paperwork and Pain - Our year to date in the JCP Free Java K.4.401
14:30-14:55 Open Cloud Interoperability with CompatibleOne Virtualization and Cloud Chavanne
14:30-15:00 Community Qt apps repository - way forward Open Mobile Linux AW1.120
14:30-15:00 XMPP Lunch Break Jabber and XMPP H.2213
14:30-15:00 IT and Community Mozilla UD2.218A
14:30-15:00 Impress Hacking LibreOffice H.1309
14:30-15:00 Étoilé: What has been done over the past year and what's next? GNUstep AW1.126
14:30-15:00 Risks vs. Benefits on Copyright Assignment AW1.125
14:40-14:55 WebKit EFL and Testing: from 0% to 99% in 6 months Lightning Talks Ferrer
14:40-15:25 Banshee: Past, Present, Future and the Crazy stuff Mono K.3.601
14:50-15:05 Open Advice CrossDesktop H.1308
15:00-15:15 Audiveris: Optical Music Recognition Lightning Talks Ferrer
15:00-15:25 Open Clouds with Deltacloud API Virtualization and Cloud Chavanne
15:00-15:25 Lovelace: towards a full Ada OS Ada AW1.121
15:00-15:30 Social Networking: buddycloud, XMPP, and HTTP Jabber and XMPP H.2213
15:00-15:30 Web security, and how to stop the next DigiNotar Mozilla UD2.218A
15:00-15:30 Can for-profit companies enforce copyleft without becoming corrupt like MySQL AB? AW1.125
15:00-15:30 Test concepts for automated Libreoffice testing LibreOffice H.1309
15:00-15:30 Maliit - the open mobile text input project Open Mobile Linux AW1.120
15:00-15:45 Debian packaging for beginners CrossDistribution H.1302
15:00-15:45 Gnuk - OpenPGP USB Token implementation CrossDistribution H.1301
15:00-15:45 yaSSL - yet another (embedded) SSL library Hardware Cryptography H.2214
15:00-15:50 Virtualization with KVM: bottom to top, past to future Hypervisors Janson
15:00-15:50 Hooks in PostgreSQL PostgreSQL K.4.201
15:00-15:50 EFL, the toolkit for up and coming Linux mobile devices Future of UI K.1.105
15:00-15:55 JBoss Forge / Arquillian: Two Missing Links in Enterprise Java Development JBoss.org K.3.201
15:00-16:00 Nouveau: Recap, on-going and future work X.org+OpenICC K.3.401
15:00-16:00 True open hardware: Opencores and OpenRISC Embedded Lameere