Changeset 5293


Ignore:
Timestamp:
Aug 29, 2016, 7:41:51 PM (6 years ago)
Author:
Christian Schulte
Message:

o Merged changes up to 5292 from 'trunk' into branch 'jomc-modlet-1.x'.

See #103

Location:
jomc-modlet/branches/jomc-modlet-1.x
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • jomc-modlet/branches/jomc-modlet-1.x

  • jomc-modlet/branches/jomc-modlet-1.x/src/main/java/org/jomc/modlet/DefaultModelContext.java

    r5289 r5293  
    3838import java.io.InputStreamReader;
    3939import java.io.Reader;
     40import java.lang.reflect.UndeclaredThrowableException;
    4041import java.net.URI;
    4142import java.net.URISyntaxException;
     
    771772            else if ( e.getCause() instanceof RuntimeException )
    772773            {
    773                 throw (RuntimeException) e.getCause();
     774                // The fork-join framework breaks the exception handling contract of Callable by re-throwing any
     775                // exception caught using a runtime exception.
     776                if ( e.getCause().getCause() instanceof ModelException )
     777                {
     778                    throw (ModelException) e.getCause().getCause();
     779                }
     780                else if ( e.getCause().getCause() instanceof RuntimeException )
     781                {
     782                    throw (RuntimeException) e.getCause().getCause();
     783                }
     784                else if ( e.getCause().getCause() instanceof Error )
     785                {
     786                    throw (Error) e.getCause().getCause();
     787                }
     788                else if ( e.getCause().getCause() instanceof Exception )
     789                {
     790                    // Checked exception not declared to be thrown by the Callable's 'call' method.
     791                    throw new UndeclaredThrowableException( e.getCause().getCause() );
     792                }
     793                else
     794                {
     795                    throw (RuntimeException) e.getCause();
     796                }
    774797            }
    775798            else if ( e.getCause() instanceof Error )
     
    779802            else
    780803            {
    781                 throw new ModelException( getMessage( "failedValidatingModel", model.getIdentifier() ), e.getCause() );
     804                // Checked exception not declared to be thrown by the Callable's 'call' method.
     805                throw new UndeclaredThrowableException( e.getCause() );
    782806            }
    783807        }
     
    19751999                Collections.sort( sortedClasspathServices,
    19762000                                  new Comparator<Object>()
     2001                              {
     2002
     2003                                  public int compare( final Object o1, final Object o2 )
    19772004                                  {
    1978 
    1979                                       public int compare( final Object o1, final Object o2 )
    1980                                       {
    1981                                           return ordinalOf( o1 ) - ordinalOf( o2 );
    1982                                       }
    1983 
    1984                                   } );
     2005                                      return ordinalOf( o1 ) - ordinalOf( o2 );
     2006                                  }
     2007
     2008                              } );
    19852009
    19862010                reader.close();
  • jomc-modlet/branches/jomc-modlet-1.x/src/main/java/org/jomc/modlet/DefaultModletProcessor.java

    r5289 r5293  
    3434import java.io.ByteArrayOutputStream;
    3535import java.io.IOException;
     36import java.lang.reflect.UndeclaredThrowableException;
    3637import java.net.URI;
    3738import java.net.URISyntaxException;
     
    505506            return transformers.isEmpty() ? null : transformers;
    506507        }
     508        catch ( final CancellationException e )
     509        {
     510            throw new ModelException( getMessage( e ), e );
     511        }
     512        catch ( final InterruptedException e )
     513        {
     514            throw new ModelException( getMessage( e ), e );
     515        }
    507516        catch ( final IOException e )
    508517        {
     
    523532            throw new ModelException( message, e );
    524533        }
    525         catch ( final CancellationException e )
    526         {
    527             throw new ModelException( getMessage( e ), e );
    528         }
    529         catch ( final InterruptedException e )
    530         {
    531             throw new ModelException( getMessage( e ), e );
    532         }
    533534        catch ( final ExecutionException e )
    534535        {
    535             if ( e.getCause() instanceof ModelException )
    536             {
    537                 throw (ModelException) e.getCause();
     536            if ( e.getCause() instanceof URISyntaxException )
     537            {
     538                throw new ModelException( getMessage( e.getCause() ), e.getCause() );
    538539            }
    539540            else if ( e.getCause() instanceof TransformerConfigurationException )
     
    549550            else if ( e.getCause() instanceof RuntimeException )
    550551            {
    551                 throw (RuntimeException) e.getCause();
     552                // The fork-join framework breaks the exception handling contract of Callable by re-throwing any
     553                // exception caught using a runtime exception.
     554                if ( e.getCause().getCause() instanceof TransformerConfigurationException )
     555                {
     556                    String message = getMessage( e.getCause().getCause() );
     557                    if ( message == null
     558                             && ( (TransformerConfigurationException) e.getCause().getCause() ).getException() != null )
     559                    {
     560                        message = getMessage( ( (TransformerConfigurationException) e.getCause().getCause() ).
     561                            getException() );
     562
     563                    }
     564
     565                    throw new ModelException( message, e.getCause().getCause() );
     566                }
     567                else if ( e.getCause().getCause() instanceof URISyntaxException )
     568                {
     569                    throw new ModelException( getMessage( e.getCause().getCause() ), e.getCause().getCause() );
     570                }
     571                else if ( e.getCause().getCause() instanceof RuntimeException )
     572                {
     573                    throw (RuntimeException) e.getCause().getCause();
     574                }
     575                else if ( e.getCause().getCause() instanceof Error )
     576                {
     577                    throw (Error) e.getCause().getCause();
     578                }
     579                else if ( e.getCause().getCause() instanceof Exception )
     580                {
     581                    // Checked exception not declared to be thrown by the Callable's 'call' method.
     582                    throw new UndeclaredThrowableException( e.getCause().getCause() );
     583                }
     584                else
     585                {
     586                    throw (RuntimeException) e.getCause();
     587                }
    552588            }
    553589            else if ( e.getCause() instanceof Error )
     
    557593            else
    558594            {
    559                 throw new ModelException( getMessage( e.getCause() ), e.getCause() );
     595                // Checked exception not declared to be thrown by the Callable's 'call' method.
     596                throw new UndeclaredThrowableException( e.getCause() );
    560597            }
    561598        }
  • jomc-modlet/branches/jomc-modlet-1.x/src/main/java/org/jomc/modlet/DefaultModletProvider.java

    r5289 r5293  
    3131package org.jomc.modlet;
    3232
     33import java.lang.reflect.UndeclaredThrowableException;
    3334import java.net.MalformedURLException;
    3435import java.net.URI;
     
    652653            return modlets.getModlet().isEmpty() ? null : modlets;
    653654        }
     655        catch ( final CancellationException e )
     656        {
     657            throw new ModelException( getMessage( e ), e );
     658        }
     659        catch ( final InterruptedException e )
     660        {
     661            throw new ModelException( getMessage( e ), e );
     662        }
    654663        catch ( final URISyntaxException e )
    655664        {
     
    687696            throw new ModelException( message, e );
    688697        }
    689         catch ( final CancellationException e )
    690         {
    691             throw new ModelException( getMessage( e ), e );
    692         }
    693         catch ( final InterruptedException e )
    694         {
    695             throw new ModelException( getMessage( e ), e );
    696         }
    697698        catch ( final ExecutionException e )
    698699        {
     
    713714            else if ( e.getCause() instanceof RuntimeException )
    714715            {
    715                 throw (RuntimeException) e.getCause();
     716                // The fork-join framework breaks the exception handling contract of Callable by re-throwing any
     717                // exception caught using a runtime exception.
     718                if ( e.getCause().getCause() instanceof ModelException )
     719                {
     720                    throw (ModelException) e.getCause().getCause();
     721                }
     722                else if ( e.getCause().getCause() instanceof JAXBException )
     723                {
     724                    String message = getMessage( e.getCause().getCause() );
     725                    if ( message == null && ( (JAXBException) e.getCause().getCause() ).getLinkedException() != null )
     726                    {
     727                        message = getMessage( ( (JAXBException) e.getCause().getCause() ).getLinkedException() );
     728                    }
     729
     730                    throw new ModelException( message, e.getCause().getCause() );
     731                }
     732                else if ( e.getCause().getCause() instanceof MalformedURLException )
     733                {
     734                    throw new ModelException( getMessage( e.getCause().getCause() ), e.getCause().getCause() );
     735                }
     736                else if ( e.getCause().getCause() instanceof RuntimeException )
     737                {
     738                    throw (RuntimeException) e.getCause().getCause();
     739                }
     740                else if ( e.getCause().getCause() instanceof Error )
     741                {
     742                    throw (Error) e.getCause().getCause();
     743                }
     744                else if ( e.getCause().getCause() instanceof Exception )
     745                {
     746                    // Checked exception not declared to be thrown by the Callable's 'call' method.
     747                    throw new UndeclaredThrowableException( e.getCause().getCause() );
     748                }
     749                else
     750                {
     751                    throw (RuntimeException) e.getCause();
     752                }
    716753            }
    717754            else if ( e.getCause() instanceof Error )
     
    721758            else
    722759            {
    723                 throw new ModelException( getMessage( e.getCause() ), e.getCause() );
     760                // Checked exception not declared to be thrown by the Callable's 'call' method.
     761                throw new UndeclaredThrowableException( e.getCause() );
    724762            }
    725763        }
  • jomc-modlet/branches/jomc-modlet-1.x/src/main/java/org/jomc/modlet/DefaultServiceFactory.java

    r5287 r5293  
    3434import java.lang.reflect.Method;
    3535import java.lang.reflect.Modifier;
     36import java.lang.reflect.UndeclaredThrowableException;
    3637import java.text.MessageFormat;
    3738import java.util.ArrayList;
     
    254255            else if ( e.getCause() instanceof RuntimeException )
    255256            {
    256                 throw (RuntimeException) e.getCause();
     257                // The fork-join framework breaks the exception handling contract of Callable by re-throwing any
     258                // exception caught using a runtime exception.
     259                if ( e.getCause().getCause() instanceof ModelException )
     260                {
     261                    throw (ModelException) e.getCause().getCause();
     262                }
     263                else if ( e.getCause().getCause() instanceof RuntimeException )
     264                {
     265                    throw (RuntimeException) e.getCause().getCause();
     266                }
     267                else if ( e.getCause().getCause() instanceof Error )
     268                {
     269                    throw (Error) e.getCause().getCause();
     270                }
     271                else if ( e.getCause().getCause() instanceof Exception )
     272                {
     273                    // Checked exception not declared to be thrown by the Callable's 'call' method.
     274                    throw new UndeclaredThrowableException( e.getCause().getCause() );
     275                }
     276                else
     277                {
     278                    throw (RuntimeException) e.getCause();
     279                }
    257280            }
    258281            else if ( e.getCause() instanceof Error )
     
    262285            else
    263286            {
    264                 throw new ModelException( getMessage( "failedCreatingObject", service.getClazz() ), e.getCause() );
     287                // Checked exception not declared to be thrown by the Callable's 'call' method.
     288                throw new UndeclaredThrowableException( e.getCause() );
    265289            }
    266290        }
  • jomc-modlet/branches/jomc-modlet-1.x/src/main/java/org/jomc/modlet/ModelContext.java

    r5287 r5293  
    4545import java.util.ResourceBundle;
    4646import java.util.Set;
    47 import java.util.concurrent.Callable;
    4847import java.util.concurrent.ConcurrentHashMap;
    4948import java.util.concurrent.CopyOnWriteArrayList;
    50 import java.util.concurrent.ExecutionException;
    5149import java.util.concurrent.ExecutorService;
    52 import java.util.concurrent.Future;
    53 import java.util.concurrent.TimeUnit;
    54 import java.util.concurrent.TimeoutException;
    5550import java.util.logging.Level;
    5651import javax.xml.bind.JAXBContext;
     
    596591
    597592    /**
    598      * Gets the {@code ExecutorService} used to run tasks in parallel.
    599      *
    600      * @return The {@code ExecutorService} used to run tasks in parallel or {@code null}, if no such service has been
     593     * Gets an {@code ExecutorService} used to run tasks in parallel.
     594     *
     595     * @return An {@code ExecutorService} used to run tasks in parallel or {@code null}, if no such service has been
    601596     * provided by an application.
    602597     *
     
    627622    public final void setExecutorService( final ExecutorService value )
    628623    {
    629         if ( value != null )
    630         {
    631             this.executorService = new ExecutorService()
    632             {
    633 
    634                 public void shutdown()
    635                 {
    636                     // To protect against incorrect usage.
    637                     throw new UnsupportedOperationException();
    638                 }
    639 
    640                 public List<Runnable> shutdownNow()
    641                 {
    642                     // To protect against incorrect usage.
    643                     throw new UnsupportedOperationException();
    644                 }
    645 
    646                 public boolean isShutdown()
    647                 {
    648                     return value.isShutdown();
    649                 }
    650 
    651                 public boolean isTerminated()
    652                 {
    653                     return value.isTerminated();
    654                 }
    655 
    656                 public boolean awaitTermination( final long timeout, final TimeUnit unit ) throws InterruptedException
    657                 {
    658                     return value.awaitTermination( timeout, unit );
    659                 }
    660 
    661                 public <T> Future<T> submit( final Callable<T> task )
    662                 {
    663                     return value.submit( task );
    664                 }
    665 
    666                 public <T> Future<T> submit( final Runnable task, final T result )
    667                 {
    668                     return value.submit( task, result );
    669                 }
    670 
    671                 public Future<?> submit( final Runnable task )
    672                 {
    673                     return value.submit( task );
    674                 }
    675 
    676                 public <T> List<Future<T>> invokeAll( final Collection<? extends Callable<T>> tasks )
    677                     throws InterruptedException
    678                 {
    679                     return value.invokeAll( tasks );
    680                 }
    681 
    682                 public <T> List<Future<T>> invokeAll( final Collection<? extends Callable<T>> tasks,
    683                                                       final long timeout, final TimeUnit unit )
    684                     throws InterruptedException
    685                 {
    686                     return value.invokeAll( tasks, timeout, unit );
    687                 }
    688 
    689                 public <T> T invokeAny( final Collection<? extends Callable<T>> tasks )
    690                     throws InterruptedException, ExecutionException
    691                 {
    692                     return value.invokeAny( tasks );
    693                 }
    694 
    695                 public <T> T invokeAny( final Collection<? extends Callable<T>> tasks, final long timeout,
    696                                         final TimeUnit unit )
    697                     throws InterruptedException, ExecutionException, TimeoutException
    698                 {
    699                     return value.invokeAny( tasks, timeout, unit );
    700                 }
    701 
    702                 public void execute( final Runnable command )
    703                 {
    704                     value.execute( command );
    705                 }
    706 
    707                 @Override
    708                 public String toString()
    709                 {
    710                     return value.toString();
    711                 }
    712 
    713                 @Override
    714                 public boolean equals( final Object o )
    715                 {
    716                     return value.equals( o );
    717                 }
    718 
    719                 @Override
    720                 public int hashCode()
    721                 {
    722                     return value.hashCode();
    723                 }
    724 
    725             };
    726         }
    727         else
    728         {
    729             this.executorService = null;
    730         }
     624        this.executorService = value;
    731625    }
    732626
     
    14471341    private static String getMessage( final String key, final Object... args )
    14481342    {
    1449         return MessageFormat.format( ResourceBundle.getBundle(
    1450             ModelContext.class.getName().replace( '.', '/' ), Locale.getDefault() ).getString( key ), args );
     1343        return MessageFormat.format( ResourceBundle.getBundle( ModelContext.class.getName(), Locale.getDefault() ).
     1344            getString( key ), args );
    14511345
    14521346    }
  • jomc-modlet/branches/jomc-modlet-1.x/src/test/java/org/jomc/modlet/test/DefaultModelContextExecutorServiceTest.java

    r5273 r5293  
    5858    protected ExecutorService newExecutorService()
    5959    {
    60         return Executors.newFixedThreadPool( 32 );
     60        return Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors() * 4 );
    6161    }
    6262
  • jomc-modlet/branches/jomc-modlet-1.x/src/test/java/org/jomc/modlet/test/DefaultModletProcessorExecutorServiceTest.java

    r5273 r5293  
    5959    protected ExecutorService newExecutorService()
    6060    {
    61         return Executors.newFixedThreadPool( 32 );
     61        return Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors() * 4 );
    6262    }
    6363
  • jomc-modlet/branches/jomc-modlet-1.x/src/test/java/org/jomc/modlet/test/DefaultModletValidatorExecutorServiceTest.java

    r5273 r5293  
    5959    protected ExecutorService newExecutorService()
    6060    {
    61         return Executors.newFixedThreadPool( 32 );
     61        return Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors() * 4 );
    6262    }
    6363
  • jomc-modlet/branches/jomc-modlet-1.x/src/test/java/org/jomc/modlet/test/DefaultServiceFactoryExecutorServiceTest.java

    r5273 r5293  
    5959    protected ExecutorService newExecutorService()
    6060    {
    61         return Executors.newFixedThreadPool( 32 );
     61        return Executors.newFixedThreadPool( Runtime.getRuntime().availableProcessors() * 4 );
    6262    }
    6363
Note: See TracChangeset for help on using the changeset viewer.