Buggy code:
public class JPAAnnotationProcessor implements DeploymentUnitProcessor { private static final DotName PERSISTENCE_CONTEXT_ANNOTATION_NAME = DotName . createSimple ( PersistenceContext . class . getName ( ) ) ; private static final DotName PERSISTENCE_CONTEXTS_ANNOTATION_NAME = DotName . createSimple ( PersistenceContexts . class . getName ( ) ) ; private static final DotName PERSISTENCE_UNIT_ANNOTATION_NAME = DotName . createSimple ( PersistenceUnit . class . getName ( ) ) ; private static final DotName PERSISTENCE_UNITS_ANNOTATION_NAME = DotName . createSimple ( PersistenceUnits . class . getName ( ) ) ; private static final String ENTITY_MANAGER_CLASS = "javax.persistence.EntityManager" ; private static final String ENTITY_MANAGERFACTORY_CLASS = "javax.persistence.EntityManagerFactory" ; @ Override public void deploy ( DeploymentPhaseContext phaseContext ) throws DeploymentUnitProcessingException { } @ Override public void undeploy ( DeploymentUnit context ) { } private void processPersistenceAnnotations ( final DeploymentUnit deploymentUnit , final EEModuleDescription eeModuleDescription , List < AnnotationInstance > persistenceContexts , final EEApplicationClasses applicationClasses ) throws DeploymentUnitProcessingException { } private void processField ( final DeploymentUnit deploymentUnit , final AnnotationInstance annotation , final FieldInfo fieldInfo , final EEModuleClassDescription eeModuleClassDescription ) throws DeploymentUnitProcessingException { } private void processMethod ( final DeploymentUnit deploymentUnit , final AnnotationInstance annotation , final MethodInfo methodInfo , final EEModuleClassDescription eeModuleClassDescription ) throws DeploymentUnitProcessingException { } private void processClass ( final DeploymentUnit deploymentUnit , final AnnotationInstance annotation , final EEModuleClassDescription eeModuleClassDescription ) throws DeploymentUnitProcessingException { } private void bindClassSources ( final DeploymentUnit deploymentUnit , final AnnotationInstance annotation , final EEModuleClassDescription classDescription ) throws DeploymentUnitProcessingException { } private InjectionSource getBindingSource ( final DeploymentUnit deploymentUnit , final AnnotationInstance annotation , String injectionTypeName , final EEModuleClassDescription classDescription ) throws DeploymentUnitProcessingException { PersistenceUnitMetadata pu = getPersistenceUnit ( deploymentUnit , annotation , classDescription ) ; if ( pu == null ) { return null ; } String scopedPuName = pu . getScopedPersistenceUnitName ( ) ; ServiceName puServiceName = getPuServiceName ( scopedPuName ) ; if ( isPersistenceContext ( annotation ) ) { if ( ( pu . getTransactionType ( ) ) == ( PersistenceUnitTransactionType . RESOURCE_LOCAL ) ) { classDescription . setInvalid ( MESSAGES . cannotInjectResourceLocalEntityManager ( ) ) ; return null ; } AnnotationValue pcType = annotation . value ( "type" ) ; PersistenceContextType type = ( ( pcType == null ) || ( TRANSACTION . name ( ) . equals ( pcType . asString ( ) ) ) ) ? PersistenceContextType . TRANSACTION : PersistenceContextType . EXTENDED ; <START_BUG> AnnotationValue stType = annotation . value ( "synchronizationType" ) ; <END_BUG> SynchronizationType synchronizationType = ( ( stType == null ) || ( SYNCHRONIZED . name ( ) . equals ( stType . asString ( ) ) ) ) ? SynchronizationType . SYNCHRONIZED : SynchronizationType . UNSYNCHRONIZED ; Map properties ; AnnotationValue value = annotation . value ( "properties" ) ; AnnotationInstance [ ] props = ( value != null ) ? value . asNestedArray ( ) : null ; if ( props != null ) { properties = new HashMap ( ) ; for ( int source = 0 ; source < ( props . length ) ; source ++ ) { properties . put ( props [ source ] . value ( "name" ) , props [ source ] . value ( "value" ) ) ; } } else { properties = null ; } return new org . jboss . as . jpa . injectors . PersistenceContextInjectionSource ( type , synchronizationType , properties , puServiceName , deploymentUnit , scopedPuName , injectionTypeName , pu ) ; } else { return new org . jboss . as . jpa . injectors . PersistenceUnitInjectionSource ( puServiceName , deploymentUnit , injectionTypeName , pu ) ; } } private boolean isPersistenceContext ( final AnnotationInstance annotation ) { } private boolean isPersistenceUnit ( final AnnotationInstance annotation ) { } private boolean isPersistenceContexts ( final AnnotationInstance annotation ) { } private boolean isPersistenceUnits ( final AnnotationInstance annotation ) { } private String getClassLevelInjectionType ( final AnnotationInstance annotation ) { } private PersistenceUnitMetadata getPersistenceUnit ( final DeploymentUnit deploymentUnit , final AnnotationInstance annotation , EEModuleClassDescription classDescription ) throws DeploymentUnitProcessingException { } private ServiceName getPuServiceName ( String scopedPuName ) throws DeploymentUnitProcessingException { } }

Fix:
AnnotationValue stType = annotation . value ( "synchronization" ) ;