Strange generic compilation behaviour - also javac/eclipse difference

Hello!
With my friends I've stumbled upon a problem in understanding how the compiler (and Java Language Specification too) treats a specific generic declaration.
public class Main {
    public static void main(String args[]) {
        ArrayList<Integer> inParam2 = new ArrayList<Integer>();
        List<Number> returnValue2 = justDoIt(inParam2);
    public static <E extends Number> List<E> justDoIt(List<? super E> nums) {
        return null;
}The code compiles fine with javac and throws compile error in eclipse. The latter, I believe, is the proper behaviour - what am I missing? The method justDoIt could be possibly resolved in two ways:
public static List<Number> justDoIt(List<Number> nums)or
public static List<Integer> justDoIt(List<Integer> nums)both will give reasonable and well-documented compile time errors. The first is because ArrayList<Integer> can't be passed to List<Number> (and even more - Integer is not a supertype of Number, therefore <? super Number> should fail). The latter is because List<Integer> value can't be assigned to List<Number> na main() for obvious reasons. I suppose from these two the compiler would resolve the mentioned static function as the one with Number throughout the declaration... but what really happens? How come the code compiles?
I would be very grateful for any insights.
Best regards,
Mateusz

maticomp wrote:
The code compiles fine with javac and throws compile error in eclipse. Same here. Not even as much as a warning from javac with Xlint:all. Curious.
I would be very grateful for any insights.&#42;cough&#42; I believe the relevant JLS section is this one: [15.12.2.7|http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#341287]. I'll readily admit I felt a bit too flabby today to read all of it.

Similar Messages

  • CSM : Strange Round-Robin behaviour

    Hi,
    During validation tests, I am observing a strange server selection behaviour, on independent GET requests (no cookie included) : When a connection request arrives in the CSM within a time window of about 20 seconds after the previous request, then the CSM correctly selects the next real server in the farm (round-robin). However, if the second connection arrives more than 20 sec after the previous request, the CSM selects the same server as for the previous one. Everything looks like the round-robin algorithm would be "reset" after this periood of time.
    Is it a normal behaviour ?
    By the way, how is the server list organized in the CSM RR algorithm ?
    Thank you
    Yves Haemmerli

    Gilles,
    As you requested, I send you the traces showing that when sessions are established with long delay between them, the round-robin load balancing is not consistent.
    Here are some important infos :
    - Client IP address is 141.122.142.197
    - VIP address is 160.213.139.14
    - We NAT the client with the VIP address
    - Servers addresses are :
    -> 160.213.139.163
    -> 160.213.139.164
    -> 160.213.139.165
    -> 160.213.139.166
    -> 160.213.139.171
    -> 160.213.139.172
    -> 160.213.139.173
    -> 160.213.139.174
    I ran two tests. Fore each of them I send you one trace showing the frames (HTTP on TCP port 26000)between the client and the CSM, and a second trace showing the frames between the CSM and the servers. In the trace, please forget about the HTTP code 401 returned by the servers). Also, note that the sessions are kept open by my session generator, in order to do the test.
    In the first test, I sent 16 sessions in the raw without delay between them. Load balancing is perfect, each of the eight servers receives 2 sessions.
    Than, I sent 16 sessions, one after the other, with several seconds between them. As you can see, the load balancing is uneven in this case.
    I can't understand the behaviour as the GET requests in both tests are exactly the same...
    Thank you for your help,
    Yves Haemmerli

  • Strange 6i's Compiler Behaviour

    Hi all,
    I am experiencing a strange behaviour on Form Builder (patch 5). Sometime when I fix/change something and recompile (using run button or file-admin-compile file), other part of the application (ussually report) will be broken.
    For example, before I change anything, it could run the report just fine (using run_product built in). Then I change something (NOT the run_product) like the name of the button and recompile. The next time I try to run the report, it sometime display the error message or display blank report.
    To fix it, I have to open the trigger that contain the run_product built in to see the PL/SQL code, press the compile button and then recompile the whole form again.
    Anybody else experiencing the same problem?
    Regards,
    Ari

    Hi,
    I got the same problem but not in run_report built-in, in the key-next-item.
    Sometimes when I'm navigate trough my items, my application close. I do same thing that you do, I recompile the trigger and the problem appears in another item.
    We didn't find a solution yet.
    bye Roxane
    null

  • Javac / Eclipse compiler discrepancy: who's correct?

    If you compile the following code using both javac and Eclipse 3.1, the results are different.
    public class EclipseJavacDisagree
        public static <T> T method(Comparable<T> value)
            System.out.println("Method A");
            return null;
        public static <T extends Comparable<T>> T method(T value)
            System.out.println("Method B");
            return null;
        public static void main(String[] args)
            method("A Comparable String");
    }The Eclipse output is "Method A" whilst javac's is "Method B".
    Does anyone know which implementation is correct? I gather from JLS3 that both methods are applicable by subtyping, but I get lost in section 15.12.2.5 trying to figure out which of the two is most specific.
    Thanks,
    Alex.

    I believe there is a typo in your post. Shouldn't the second definition be:
    public static <T extends Comparable<T>> T method(T value)Should that even compile? I thought covariant return types were only for overloading. This is an example where the erased types method signatures are:
    Object method(Comparable)
    Comparable method(Comparable)
    How does the compiler determine which one to use? Does it base it on what type the return value is cast to? What about the situation here where the return type is not used.
    In any event, with Sun's compiler, I can't see how you can ever call the first method anyway. No matter whether you assigned the returned value in an Object or a String, it still calls version B. What does Eclispe do when the main method is:
        public static void main(String[] args)
            Object o = method("A Comparable String");
            String s = method("A Comparable String");
        }

  • Generics bounds behaviour

    Hi,
    I encountered a problem while using generics.
    Here is the code that dont compile using javac (but does using eclipse compiler).
    public interface MyThing {
    public interface MyObject<S extends MyThing>{
         public S getMyThing();
    public class MyObjectHandler{
         private MyObject<?> c;
         public MyObject<?> getHandled(){
              return c;
    public static void main(String[] args) {
         MyObjectHandler h = new MyObjectHandler();
         MyThing s = h.getHandled().getMyThing();
    }However, if i change prototypes of MyObjectHandler#getHandled() to this:
    private MyObject<? extends MyThing> c;
    public MyObject<? extends MyThing> getHandled(){
         return c;
    }Or if i turn MyThing to a class instead of interface...
    Can someone explains me what is happening there, and why does eclipse compiler allow this and not javac ?

    I'm still trying to understand it...
    I'm missing something, i guess...
    Here is the bytecode:
    Compiled from "MyObjectHandler.java"
    public class generics.MyObjectHandler extends java.lang.Object{
    public generics.MyObjectHandler();
      Code:
       0:   aload_0
       1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
       4:   return
    public generics.MyObject getHandled();
      Code:
       0:   aload_0
       1:   getfield        #2; //Field c:Lgenerics/MyObject;
       4:   areturn
    Compiled from "MyObject.java"
    public interface generics.MyObject{
    public abstract generics.MyThing getMyThing();
    }The worst is that i can't found any differences into the decompiled bytecode between this cases:
    Not Working
    public class MyObjectHandler{
         private MyObject<?> c;
         public MyObject<?> getHandled(){
              return c;
    Working
    public class MyObjectHandler{
         private MyObject<? extends MyThing> c;
         public MyObject<? extends MyThing> getHandled(){
              return c;
    }

  • Generics: compiler bug or not?

    Hi.
    I faced with some strange issue, which may be described as follows:
    import java.util.Collections;
    import java.util.List;
    public class Test<T> {
        public List<String> getStrings() {
            return Collections.emptyList();
        public static void main(String[] args) {
            Test test = new Test();
            for (String s : test.getStrings()) { // first
                System.out.println(s);
            Class aClass = test.getClass();
            Deprecated annotation = aClass.getAnnotation(Deprecated.class); // second
    }The lines commented as "first" and "second" cause compilation error "incompatible types". The problem can be fixed the following way:
            Test<?> test = new Test();
            for (String s : test.getStrings()) { // first
                System.out.println(s);
            Class<?> aClass = test.getClass();
            Deprecated annotation = aClass.getAnnotation(Deprecated.class); // secondBut why does it appearat all?
    Regards,
    Maxim

    Might be better off sticking this in the generics
    forum, since Mr von der Ahe hangs around there so
    much. Although I'm not convinced he'd concede that
    ECJ got it right where his beloved javac didn't :-)Ok, I will cross post (and flag it as a cross post). I remember that I had another thread there, a long time ago, and Eclipse was correct at that time :)
    Kaj

  • Strange screen/video behaviour Satellite Pro P100-109

    I have strange problems with my Sattelite Pro (P100-109 model pspa3e 00n009du). I have the impression the on board video card is letting me down, so if somebody has a solution then please help!
    Yesterday, while working properly since I bought the machine, I had some strange video behaviour. Black arround icon's windows not properly updating etc.
    After a reboot of the system these problems seemed resolved but this lasted only for a view minutes.
    After a while I got a blue screen (BCCode: ea BCP1... BCP4:00000001 SP: 2.0 ) searching the Internet learned that his had to do with the video driver.
    Symptoms of the display:
    - Vertical dotted lines shown on the toshiba bios screen (all kinds of colors)
    - Windows loading show some vertical lines as well
    - After loading clickable items appear black (window titles - No buttons shown/rendered)
    - Display turns black every 4 seconds
    - System responds very slow but sometimes it seems that it works normally
    - mouse dissappears
    - After some time only a black screen is shown, system does not respond anymore.
    - In windows Safe mode (so not using the nvidia drivers) the display seems to work normally
    Did the following trying to resolve my issue unsuccesfully:
    - I uninstalled/removed the nvidia drivers and installed the latest ones from the toshiba site.
    - Removed original drivers and installed drivers from Guru3D site (also used the Driverutility from the same site).
    - I uninstalled/removed the nvidia drivers and installed the original ones
    - Upgraded to SP3
    Uninstalling the driver (in safe mode) and thus using only a generic driver seems to work.
    Does anybody know how this could be resolved or are these signs that the nVidia GeForce Go 7900 has been roasted.

    Hi
    Long story. short answer....
    It could be really possible that your GPU chips malfunctions.
    I came to this conclusion because the notebook symptoms dont occur if the graphic card driver is not installed.
    If the graphic card driver would be installed then the graphic card would run with best performance and possibly the graphic issues would appear again.
    I think you cannot do anything what could solve this issue apart from contacting the ASP in your country and asking for the help.
    Good luck

  • Program with generics compiles without -source 1.5 but doesn't run.

    This could probably be considered a bug in J2SE1.5 beta 1.
    A program with generics that is compiled with JDK 1.5 beta1 without the "-source 1.5" option behaves oddly: it compiles but sometimes fails to execute. It shouldn't behave like that. It should fail in the compilation, with a complaint about using the wrong version of the language.
    This odd behaviour doesn't always occur! In the small program below, I get that behaviour when using the EnumSet.range method.
    If I only use the basic EnumSet, it does executes.
    -- Lars
    import java.util.EnumSet;
    import java.util.*;
    public class Example {
         public enum Season { WINTER, SPRING, SUMMER, FALL }
         public static EnumSet<Season> warmSeason = EnumSet.range(Season.SPRING, Season.FALL);
         public static void main(String[] args) {
              System.out.println("Season: ");     
              for (Season s : Season.values()) {
              System.out.println(s);
              System.out.println("Cold Season: ");     
              for (Season s : warmSeason) {
              System.out.println(s);

    Example.java:6: warning: as of release 1.5, 'enum' is a keyword, and may not be used as an identifier
        public enum Season { WINTER, SPRING, SUMMER, FALL }
               ^
    Example.java:6: ';' expected
        public enum Season { WINTER, SPRING, SUMMER, FALL }
                           ^
    Example.java:12: ';' expected
            for (Season s : Season.values()) {
                          ^
    Example.java:17: illegal start of expression
            for (Season s : warmSeason) {
            ^
    Example.java:20: ';' expected
        ^
    4 errors
    1 warning

  • Sun ONE - compile OK, disaster follows; Eclipse - compile fails

    I hope Sylvia won't rap my knuckles with her ruler for posting an "it won't compile" message here, but this one is more than a bit strange.
    I was running Sun ONE Studio. It compiles my program w/o errors; then the application runs and crashes my Windows Me computer. Reliably; repeatedly. Hard to make progress when your development cycle is compile, try to test, reboot. What to do?
    Maybe the problem's in S1S! Try Eclipse. It won't compile the program. It says:
    java.lang.Error: Unresolved compilation problem:
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
         at java.lang.reflect.Constructor.newInstance(Unknown Source)
         at jdb.FileViewer.main(FileViewer.java:120)
    Exception in thread "main"
    Come to think of it, that's really a compile error detected at run time, isn't it? Didn't know that was possible. Anyway, the offending line is:
      public static void main( String[] args ) {}(I simplified main() a bit trying to track this down.) If I remove main() altogether, it compiles and dies with the expected "can't find main()" error.
    Anybody can make any sense of this? (BTW, kudos to Eclipse. This beats trashing my machine. There's nothing but java here - no JNI - so trashing the OS isn't even possible, is it? So much for theory.)

    Maybe the problem's in S1S! Try Eclipse. It won't
    compile the program. It says:
    java.lang.Error: Unresolved compilation problem:
    (snipped)
    Exception in thread "main" Er... where exactly does Eclipse tell you this? Normally compilation diagnostics show up in the Task View. The above stack trace looks like nothing I have ever seen before when compiling. What Eclipse view is showing this message?
    Anybody can make any sense of this? (BTW, kudos to
    Eclipse. This beats trashing my machine. There's
    nothing but java here - no JNI - so trashing the OS
    isn't even possible, is it? So much for theory.)Eclipse uses SWT which is a native library. So theory is still valid, I guess.

  • I am able to compile a java file in eclipse inspite of compilation errors shown in eclipse and a .class file is generated

    Hi,
    I had a java file with compilation errors as shown in eclipse IDE.
    But the class file is still generated in the classes folder on building and pressing clean the project.
    I confirmed that the class file has an updated time stamp and also that a System.out.println() statement that i added was indeed printed out when this class was encountered during the running of a web application in which this class was called somewhere.
    (The java class has no subclasses and it is a single class with public modifier).
    How does it happen so?
    Regards,
    Karthik.

    As far as I know, the java code is compiled in Eclipse as soon as you save it. i.e. press CTRL+SHIFT+s
    as far as the build is concerned, in case you have a build file where you specify how to make a jar file, the location the jsr file is to be placed, only then you have to build the project. However again, as far as just simple compile is concerned as soon as you save the files are compiled. And show you the errors if any in the tasks window.

  • Strange semi-crash behaviour - iMac G4 800MHz

    Hi all. Sorry if this one has been covered, I did a search and found nothing QUITE like my problem (also tried some other forums too, to no avail).
    Sorry also for the long post, but I think it's best to give as much info and context as possible with this sort of post, saves a lot of to-and-fro later.
    I have an iMac G4 FlatPanel, 800MHz, 512Mb RAM. Yes it's old - probably nearly 5 years old now (I bought it Sep 2002 as a refurb from CanCom). It's running Tiger; I've made no hardware upgrades to it.
    I had a power cut recently and upon restoration of power, at first the iMac was really struggling just to boot up. After a few tries, it seemed to be back to normal...except all the shortcuts and icons (even the Mac Hard Drive one) off my messy desktop had disappeared, leaving only the background image and the dock. Further to this, almost all the applications on the dock won't open, you click the icon and they "bounce" quite optimistically about 3 times then settle down; nothing happens. I can't even open the Finder. All that seems to work is Text Editor, the terminal window/command shell thing, Dashboard, and Safari (which is not my default browser!). Via the command shell I've been able to ascertain that nothing's been zapped from the hard drive. Oh, System Preferences works, I tested this by changing the background image!
    I've tried rebooting in Safe Start mode (holding X whilst restarting) but this made no difference.
    Someone advised that I do a "clean install" from the "System Disc"; I have the following:
    "Software Restore" discs 1 to 6;
    Apple Hardware Test disc;
    Mac OS X Install (this is the old OS that came with the machine, I guess OSX 10.1.3...now I am running Tiger, would it be a bad idea to use this?!);
    iMac Applications
    plus iPhoto and some nonsense thing that looks like an encycopaedia or something, never used that one
    Is there a "System Disc" that I am missing? It's possible it's in a CD wallet somewhere; the above list is just what I dug out of the neat little Apple cardboard slipcase
    The "Hardware Test Disc" tells me all is well with the hardware.
    Tried running Disk Utility from the Terminal, but it looks as if I need to run the command:
    diskutil repairVolume [/Volumes/Somedisk] but I don't know where to point it for [/Volumes/Somedisk]
    A bit of googling suggested trying various versions of fsck, but this didn't do anything in the Terminal - I went for Single-User reboot (scary plain white text on black screen ! ) and tried fsck -y and fsck -f followed by a safe start reboot. Again no change, as far as I can tell.
    Tried rebooting from the OSX Tiger installation disc but it tells me it wants to erase the hard drive before proceeding, because I am running a later version (I have 10.4.8 as I used "Software Update", I think the disc is maybe 10.4.3)
    The hard drive is VERY full (60Gb drive, less than 1Gb left) - could that be part of the problem? It does need to have a load of stuff cleared off it.
    Is my best solution jsut to bite the bullet and get an external HD, back up everything to that, and wipe this one for a clean install? I'd rather not do this really; I can easily remove at least 20Gb of files from the current one.
    Thanks
    Blue Straggler

    Hi Alex. I took delivery of a Lacie 100Gb mobile hard drive (6-pin FireWire) today, and ran a couple of quick tests to check that it is working.
    I had hoped to copy my entire hard drive onto this, check it on a friend's computer,re-install Tiger onto my G4, massively tidy up the contents of the Lacie, and copy the whole lot back. I can't find how to do this from the command shell (indeed, strange things are afoot - I typed something like:
    cp R- "Macintosh HD" Lacie/BackupNov25
    and got a bit of "action" for a couple of seconds, and looking at directories via the command shell, it actually looks as if thewhole 60Gb transferred in no time at all - surely some mistake?! I'm unconvinced! As Finder isn't opening, I "explored" the LaCie via "About this Mac" and it suggests that only a few Gb has been used up. Hmm. It's as if it's copied the plain text of the filenames or something.
    You suggest booting from the Lacie and installing Tiger onto it - how will I do that? Option-Command-Shift-Delete during startup?
    Sorry for the continuing questions; I feel slightly hamstrung by working from the Command Shell which I'm not so familiar with.
    A brief search of the forums seems to indicate that I can't simply copy by using the Command Shell, but I need to get some commercial backup software, which would be a Catch-22 situation as the application probably will neither install nor open!
    Well it's getting late, I shall try again in the morning.
    Thanks
    Kenny

  • How to make netbeans compile files as javac cmd??

    hi all...
    I have a problem running my java code from netbeans, I use netbeans 6.7 with jdk 1.6.0_16 on windows XP
    when i compile the java file in netbeans and then run it, i get an exception but if i compile the same java file using the javac from cmd then run it, everything is perfect without any error.... so i think the problem is from the compiler in my netbeans,
    I want to make the netbeans compiles the java files exactely as javac CMD, and produce the same .class files... how can i do this?
    thank you...

    You should post the error message. Maybe someone can then give you some guidance.

  • Strange disc utility behaviour with windows partition

    Hi,
    I have created a 30 gig partition for windows XP (FAT32) on my macbook, which all works fine, but back on the mac volume, I tried to make an additional 10 gig partition for which I planned to save all my audio work in Logic to. It appeared to create it fine, but the volume scheme was totally messed up in Disc Utility; i.e. the windows portion took up practically the whole scheme, there was 500 MB "unused" in gray, "Macintosh HD" had a tiny portion, which overlapped the blue used "system" part (also overlapped by the unused bit). I couldn't seem to fix this problem, yet doing command-i on all volumes gave the right numbers and it added up.
    Has anyone else seen any strangeness? All I can think of is that bootcamp isn't too happy with additional partitions, so disk utility goes a bit mad so to speak! I know that bootcamp will only create a windows partition on a single un-partitioned volume. Essentially, I just wondered if I could make more partitions after installing a windows partition.
    cheers,
    David

    Hi Philip
    Before you get too alarmed I think what Zeny described is, potentially, a totally different scenario to yours and not entirely applicable. From your description it doesn't sound like your PowerBook currently has any of the symptoms commonly associated with hard drive failure.
    That said it is possible that there may be a bad sector on the drive, which an erase whilst zeroing all data will resolve. At the same time it may also just be a software glitch.
    Either way, it is worth giving the PB and hard drive a full check with the likes of DiskWarrior, Drive Genius, Apple Hardware Test, etc.
    2.0GHz MacBook, 15" 1.25GHz/12" 1GHz PBs, 2xPPC Mac minis, 12" iBook G4,   Mac OS X (10.4.8)   Cube, 2xTAMs, iPod 4G & nano 2G, 1G & 2G iPs, AEBS, AX

  • Eclipse differences versus JDeveloper

    Folks,
    Is there a rundown on the differences between developing using Eclipse and JBoss versus JDeveloper and OC4J, JBoss, WebSphere, etc....? Any pointers to docs or info. on the differences of what is available and not available via one ide and a deployment and the other?
    I've read through various docs especially the developers guide and though it makes some references to differences it doesn't seem to be comprehensive. The problem is that I seem to be running up against a wall in building services that ought to be no-brainers as described by the doc., but that do not work as discussed or seem to be incomplete or missing altogether in the JBoss/Eclipse version of the development and deployment environment I'm using.
    I may be just grasping at straws and there are no meaningful differences between the JBoss/OC4j/Websphere, etc... deployments and JDeveloper/Eclipse development environments but if there are I would appreciate not having to spend alot of time I don't have in figuring what those are on my own.
    If there were a reference like a matrix that lined up the services available via one deployment versus another and via one ide and another that would be very helpful from the get-go as anyone could make alot of setup choices from that alone.
    Thanks,

    Hi,
    WebCenter is dependent on ADF and there is no Eclipse plugin for this. However, best to ask on the WebCenter forum
    WebCenter Portal
    Frank

  • [SOLVED] Strange Openbox menu behaviour

    Hi,
    so, I've searched the forums in order to find a solution for my problem, but not found anythihg that works for me. So, problem is that my openbox menu won't execute any commands that I add to ~/.config/openbox/menu.xml file. After editing that file, I run
    openbox --reconfigure
    command (no any error messages), but again, it simply won't execute the command that I've written. I have also changed permissions, so that I have read/write access. But, strange is that if I delete menus in menu.xml that I don't need, save those changes, and run reconfigure command, those menus are not any more in openbox menu, just as it should be.
    It seems that only commands that I want to execute will not work. I' ve also installed obmenu and tried editing stuff there, but again the same problem-deleting menus works fine, but executing commands not. It is obviously that problem is not in obmenu, but in menu.xml file or somewhere else, but I don't know
    where.
    So, any ideas? Did someone experienced the same problem and found a solution? All ideas are welcome
    Last edited by brunux (2010-05-09 16:32:54)

    In my menu.xml all the programs are surrounded by <command></command> tags instead of  <execute></execute>tags.
    I've tried with your suggestion, but it doesn't work. For example, running firefox works fine with <command></command> tags, but it is the default
    part of the code, where I didn't change anything.
    <item label="Firefox">
    <action name="Execute">
    <command>firefox</command>
    <startupnotify>
    <enabled>yes</enabled>
    <wmclass>Firefox</wmclass>
    </startupnotify>
    </action>
    </item>

Maybe you are looking for

  • BO XI Release 2 - NLTM versus Kerberos Authentication

    Hello, I have some problem with Authentication. At first time I set up only in CMS Kerberos Authentication, but now I would like to change it to NLTM, but if I clear the Use Kerberos authentication and I mark off Use NTLM authentication and I set up

  • How can i put my pictures from my picture files into my iPhotos for photo streaming onto my apple tv?

    Hi, I am a new user to iMac and have now bought just about every Mac product you can think of and have just taken delivery of an Apple TV and now want to stream photos but don't know how to transfer photos from my picture files over into my iPhotos f

  • Don't have enough international facilities ?

    hi. is there any possibitly to contact apple because on mauritian itune store these is nothing good (include for ipad ipod and apple tv) i have all of them but cant really enjoy it fully. and even the reseller here is not a good one the are not proff

  • Since upgrading to 5.2 LR says it can't read CR2 files

    A couple of weeks ago I upgraded to LR 5.2 and since then LR has been unable to import my CR2 files from a memoery card that worked fine before that.

  • CD music and pictures

    I am trying to make a cd...pictures with music.  I know how to get the pictures and music but I don't know how the two are combined together so that I can burn the cd.  Is there a way to combine the two or??  I am still learning the mac mini and I do